This commit is contained in:
freedakgmail
2025-11-30 09:16:43 +08:00
parent b436ae0680
commit fd9c064749
227 changed files with 1251 additions and 912 deletions
+32 -18
View File
@@ -1,7 +1,7 @@
"use client"
import type React from "react"
import { createContext, useContext, useState, useCallback, useEffect, useRef, Suspense } from "react"
import { createContext, useContext, useState, useCallback, useEffect, useRef, Suspense, useMemo } from "react"
import type { FamilyMember, FamilyTreeData } from "@/types/family"
import { useSession } from "next-auth/react"
import { useSearchParams } from "next/navigation"
@@ -350,24 +350,38 @@ function FamilyProviderInner({ children }: { children: React.ReactNode }) {
// })
// }, [treeData, currentTree])
// 使用 useMemo 缓存 context value,避免不必要的重渲染
const contextValue = useMemo(() => ({
treeData,
currentTree,
getMember,
addMember,
updateMember,
deleteMember,
searchResults,
searchMembers,
loadData,
resetData,
isLoading,
highlightedMemberId,
setHighlightedMemberId,
}), [
treeData,
currentTree,
getMember,
addMember,
updateMember,
deleteMember,
searchResults,
searchMembers,
loadData,
resetData,
isLoading,
highlightedMemberId,
])
return (
<FamilyContext.Provider
value={{
treeData,
currentTree,
getMember,
addMember,
updateMember,
deleteMember,
searchResults,
searchMembers,
loadData,
resetData,
isLoading,
highlightedMemberId,
setHighlightedMemberId,
}}
>
<FamilyContext.Provider value={contextValue}>
{children}
</FamilyContext.Provider>
)