(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined, "[project]/Documents/go-new/chinese-family-tree/lib/mock-data.ts [app-client] (ecmascript)", ((__turbopack_context__) => { "use strict"; __turbopack_context__.s([ "mockFamilyData", ()=>mockFamilyData ]); // Helper to create a member quickly const createMember = (id, name, gender, generation, props = {})=>{ const surname = "李"; return { id, surname, givenName: name, fullName: surname + name, gender, generation, spouseIds: [], childrenIds: [], createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), ...props }; }; const members = { "1": createMember("1", "文德", "male", 1, { courtesyName: "博远", ancestralHome: "陇西", bio: "李氏入闽始祖,洪武年间迁居福建。", tags: [ "始祖", "进士" ], birthDate: "1350-01-01", deathDate: "1410-05-20" }), "2": createMember("2", "氏(王)", "female", 1, { fullName: "王氏", surname: "王", givenName: "氏", spouseIds: [ "1" ] }), // Generation 2 "3": createMember("3", "世昌", "male", 2, { fatherId: "1", motherId: "2", courtesyName: "继业" }), "4": createMember("4", "世盛", "male", 2, { fatherId: "1", motherId: "2", courtesyName: "继荣" }), // Generation 3 "5": createMember("5", "宗仁", "male", 3, { fatherId: "3", generationName: "宗" }), "6": createMember("6", "宗义", "male", 3, { fatherId: "3", generationName: "宗" }), // Generation 24 (Modern) "100": createMember("100", "建国", "male", 23, { generationName: "建" }), "101": createMember("101", "明远", "male", 24, { fatherId: "100", generationName: "明", birthDate: "1985-06-15", tags: [ "户主" ] }), "102": createMember("102", "子豪", "male", 25, { fatherId: "101", birthDate: "2015-09-01" }) }; // Link relationships bi-directionally for the mock data members["1"].spouseIds = [ "2" ]; members["1"].childrenIds = [ "3", "4" ]; members["3"].childrenIds = [ "5", "6" ]; const mockFamilyData = { members, rootId: "1" }; if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) { __turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$); } }), "[project]/Documents/go-new/chinese-family-tree/lib/db.ts [app-client] (ecmascript)", ((__turbopack_context__) => { "use strict"; __turbopack_context__.s([ "FamilyTreeDB", ()=>FamilyTreeDB, "db", ()=>db ]); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dexie@4.2.1/node_modules/dexie/import-wrapper.mjs [app-client] (ecmascript)"); ; class FamilyTreeDB extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"] { members; settings; constructor(){ super("FamilyTreeDB"); this.version(1).stores({ members: "id, fullName, fatherId, motherId, [fatherId+motherId]", settings: "key" }); } } const db = new FamilyTreeDB(); if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) { __turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$); } }), "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)", ((__turbopack_context__) => { "use strict"; __turbopack_context__.s([ "FamilyProvider", ()=>FamilyProvider, "useFamily", ()=>useFamily ]); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$mock$2d$data$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/mock-data.ts [app-client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/db.ts [app-client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$2d$react$2d$hooks$40$4$2e$2$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_dexie$40$4$2e$2$2e$1_react$40$19$2e$2$2e$0$2f$node_modules$2f$dexie$2d$react$2d$hooks$2f$dist$2f$dexie$2d$react$2d$hooks$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dexie-react-hooks@4.2.0_@types+react@19.2.6_dexie@4.2.1_react@19.2.0/node_modules/dexie-react-hooks/dist/dexie-react-hooks.mjs [app-client] (ecmascript)"); ; var _s = __turbopack_context__.k.signature(), _s1 = __turbopack_context__.k.signature(); "use client"; ; ; ; ; const FamilyContext = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["createContext"])(undefined); function FamilyProvider({ children }) { _s(); const [searchResults, setSearchResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])([]); const [isInitialized, setIsInitialized] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false); // Live query to get all members const members = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$2d$react$2d$hooks$40$4$2e$2$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_dexie$40$4$2e$2$2e$1_react$40$19$2e$2$2e$0$2f$node_modules$2f$dexie$2d$react$2d$hooks$2f$dist$2f$dexie$2d$react$2d$hooks$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useLiveQuery"])({ "FamilyProvider.useLiveQuery[members]": ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.toArray() }["FamilyProvider.useLiveQuery[members]"]); // Live query to get rootId const rootIdSetting = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$2d$react$2d$hooks$40$4$2e$2$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_dexie$40$4$2e$2$2e$1_react$40$19$2e$2$2e$0$2f$node_modules$2f$dexie$2d$react$2d$hooks$2f$dist$2f$dexie$2d$react$2d$hooks$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useLiveQuery"])({ "FamilyProvider.useLiveQuery[rootIdSetting]": ()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].settings.get("rootId") }["FamilyProvider.useLiveQuery[rootIdSetting]"]); // Initialize DB with mock data if empty (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useEffect"])({ "FamilyProvider.useEffect": ()=>{ const initDb = { "FamilyProvider.useEffect.initDb": async ()=>{ const count = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.count(); if (count === 0) { await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].transaction("rw", __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].settings, { "FamilyProvider.useEffect.initDb": async ()=>{ await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.bulkAdd(Object.values(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$mock$2d$data$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["mockFamilyData"].members)); await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].settings.put({ key: "rootId", value: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$mock$2d$data$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["mockFamilyData"].rootId }); } }["FamilyProvider.useEffect.initDb"]); } setIsInitialized(true); } }["FamilyProvider.useEffect.initDb"]; initDb(); } }["FamilyProvider.useEffect"], []); // Construct treeData from DB results const treeData = { rootId: rootIdSetting?.value || "", members: (members || []).reduce((acc, member)=>{ acc[member.id] = member; return acc; }, {}) }; const getMember = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useCallback"])({ "FamilyProvider.useCallback[getMember]": (id)=>{ return treeData.members[id]; } }["FamilyProvider.useCallback[getMember]"], [ treeData ]); const addMember = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useCallback"])({ "FamilyProvider.useCallback[addMember]": async (member)=>{ await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].transaction("rw", __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members, { "FamilyProvider.useCallback[addMember]": async ()=>{ // Add the member await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.add(member); // Update relationships (Father) if (member.fatherId) { const father = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.get(member.fatherId); if (father && !father.childrenIds.includes(member.id)) { await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.update(member.fatherId, { childrenIds: [ ...father.childrenIds, member.id ] }); } } // Update relationships (Mother) if (member.motherId) { const mother = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.get(member.motherId); if (mother && !mother.childrenIds.includes(member.id)) { await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.update(member.motherId, { childrenIds: [ ...mother.childrenIds, member.id ] }); } } // Update relationships (Spouses) if (member.spouseIds && member.spouseIds.length > 0) { for (const spouseId of member.spouseIds){ const spouse = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.get(spouseId); if (spouse && !spouse.spouseIds.includes(member.id)) { await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.update(spouseId, { spouseIds: [ ...spouse.spouseIds, member.id ] }); } } } } }["FamilyProvider.useCallback[addMember]"]); } }["FamilyProvider.useCallback[addMember]"], []); const updateMember = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useCallback"])({ "FamilyProvider.useCallback[updateMember]": async (id, updates)=>{ await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.update(id, { ...updates, updatedAt: new Date().toISOString() }); } }["FamilyProvider.useCallback[updateMember]"], []); const deleteMember = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useCallback"])({ "FamilyProvider.useCallback[deleteMember]": async (id)=>{ await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].transaction("rw", __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].settings, { "FamilyProvider.useCallback[deleteMember]": async ()=>{ // Remove from DB await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.delete(id); // Note: In a real app, we should also remove references to this ID from other members' // childrenIds, spouseIds, etc. For now, we'll keep it simple as per the original implementation. // If we deleted the root, we might want to handle that, but for now let's leave it. } }["FamilyProvider.useCallback[deleteMember]"]); } }["FamilyProvider.useCallback[deleteMember]"], []); const loadData = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useCallback"])({ "FamilyProvider.useCallback[loadData]": async (data)=>{ await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].transaction("rw", __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].settings, { "FamilyProvider.useCallback[loadData]": async ()=>{ await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.clear(); await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].members.bulkAdd(Object.values(data.members)); await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$db$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["db"].settings.put({ key: "rootId", value: data.rootId }); } }["FamilyProvider.useCallback[loadData]"]); } }["FamilyProvider.useCallback[loadData]"], []); const resetData = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useCallback"])({ "FamilyProvider.useCallback[resetData]": async ()=>{ await loadData(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$mock$2d$data$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["mockFamilyData"]); } }["FamilyProvider.useCallback[resetData]"], [ loadData ]); const searchMembers = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useCallback"])({ "FamilyProvider.useCallback[searchMembers]": (query)=>{ if (!query.trim()) { setSearchResults([]); return; } const lowerQuery = query.toLowerCase(); // Perform search on the in-memory treeData for simplicity and speed // (Dexie also supports querying, but we already have the data loaded) const results = Object.values(treeData.members).filter({ "FamilyProvider.useCallback[searchMembers].results": (member)=>member.fullName.includes(lowerQuery) || member.givenName.includes(lowerQuery) || member.courtesyName?.includes(lowerQuery) || member.artName?.includes(lowerQuery) }["FamilyProvider.useCallback[searchMembers].results"]); setSearchResults(results); } }["FamilyProvider.useCallback[searchMembers]"], [ treeData ]); // Listen for import events (legacy support for the file input in settings if needed, // but we should prefer using the context method) (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useEffect"])({ "FamilyProvider.useEffect": ()=>{ const handleImport = { "FamilyProvider.useEffect.handleImport": (e)=>{ loadData(e.detail); } }["FamilyProvider.useEffect.handleImport"]; window.addEventListener("family-data-import", handleImport); return ({ "FamilyProvider.useEffect": ()=>window.removeEventListener("family-data-import", handleImport) })["FamilyProvider.useEffect"]; } }["FamilyProvider.useEffect"], [ loadData ]); return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(FamilyContext.Provider, { value: { treeData, getMember, addMember, updateMember, deleteMember, searchResults, searchMembers, loadData, resetData, isLoading: !isInitialized || !members }, children: children }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx", lineNumber: 171, columnNumber: 5 }, this); } _s(FamilyProvider, "4aP1rNWeVZgMpJ1s4jlfi91bk4g=", false, function() { return [ __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$2d$react$2d$hooks$40$4$2e$2$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_dexie$40$4$2e$2$2e$1_react$40$19$2e$2$2e$0$2f$node_modules$2f$dexie$2d$react$2d$hooks$2f$dist$2f$dexie$2d$react$2d$hooks$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useLiveQuery"], __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$2d$react$2d$hooks$40$4$2e$2$2e$0_$40$types$2b$react$40$19$2e$2$2e$6_dexie$40$4$2e$2$2e$1_react$40$19$2e$2$2e$0$2f$node_modules$2f$dexie$2d$react$2d$hooks$2f$dist$2f$dexie$2d$react$2d$hooks$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useLiveQuery"] ]; }); _c = FamilyProvider; function useFamily() { _s1(); const context = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useContext"])(FamilyContext); if (context === undefined) { throw new Error("useFamily must be used within a FamilyProvider"); } return context; } _s1(useFamily, "b9L3QQ+jgeyIrH0NfHrJ8nn7VMU="); var _c; __turbopack_context__.k.register(_c, "FamilyProvider"); if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) { __turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$); } }), ]); //# sourceMappingURL=Documents_go-new_chinese-family-tree_da5a5998._.js.map