web: use useCallback instead of useMemo

This commit is contained in:
Tulir Asokan 2024-10-10 02:30:40 +03:00
parent 0dc278523a
commit 097caa7717
2 changed files with 5 additions and 5 deletions

View file

@ -13,7 +13,7 @@
// //
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
import React, { use, useMemo } from "react" import React, { use, useCallback } from "react"
import type { RoomID } from "../../api/types" import type { RoomID } from "../../api/types"
import { useNonNullEventAsState } from "../../util/eventdispatcher.ts" import { useNonNullEventAsState } from "../../util/eventdispatcher.ts"
import { ClientContext } from "../ClientContext.ts" import { ClientContext } from "../ClientContext.ts"
@ -26,7 +26,7 @@ interface RoomListProps {
const RoomList = ({ setActiveRoom }: RoomListProps) => { const RoomList = ({ setActiveRoom }: RoomListProps) => {
const roomList = useNonNullEventAsState(use(ClientContext)!.store.roomList) const roomList = useNonNullEventAsState(use(ClientContext)!.store.roomList)
const clickRoom = useMemo(() => (evt: React.MouseEvent) => { const clickRoom = useCallback((evt: React.MouseEvent) => {
const roomID = evt.currentTarget.getAttribute("data-room-id") const roomID = evt.currentTarget.getAttribute("data-room-id")
if (roomID) { if (roomID) {
setActiveRoom(roomID) setActiveRoom(roomID)

View file

@ -13,7 +13,7 @@
// //
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
import { use, useEffect, useMemo, useRef } from "react" import { use, useCallback, useEffect, useRef } from "react"
import { RoomStateStore } from "../../api/statestore.ts" import { RoomStateStore } from "../../api/statestore.ts"
import { useNonNullEventAsState } from "../../util/eventdispatcher.ts" import { useNonNullEventAsState } from "../../util/eventdispatcher.ts"
import { ClientContext } from "../ClientContext.ts" import { ClientContext } from "../ClientContext.ts"
@ -27,7 +27,7 @@ interface TimelineViewProps {
const TimelineView = ({ room }: TimelineViewProps) => { const TimelineView = ({ room }: TimelineViewProps) => {
const timeline = useNonNullEventAsState(room.timeline) const timeline = useNonNullEventAsState(room.timeline)
const client = use(ClientContext)! const client = use(ClientContext)!
const loadHistory = useMemo(() => () => { const loadHistory = useCallback(() => {
client.loadMoreHistory(room.roomID) client.loadMoreHistory(room.roomID)
.catch(err => console.error("Failed to load history", err)) .catch(err => console.error("Failed to load history", err))
}, [client, room.roomID]) }, [client, room.roomID])
@ -39,7 +39,7 @@ const TimelineView = ({ room }: TimelineViewProps) => {
// When the user scrolls the timeline manually, remember if they were at the bottom, // When the user scrolls the timeline manually, remember if they were at the bottom,
// so that we can keep them at the bottom when new events are added. // so that we can keep them at the bottom when new events are added.
const handleScroll = useMemo(() => () => { const handleScroll = useCallback(() => {
if (!timelineViewRef.current) { if (!timelineViewRef.current) {
return return
} }