This commit is contained in:
freedakgmail
2025-11-23 09:24:14 +08:00
parent bade25ff26
commit 00cfae381b
488 changed files with 4141 additions and 1182075 deletions
@@ -19,7 +19,7 @@ var _s = __turbopack_context__.k.signature(), _s1 = __turbopack_context__.k.sign
;
;
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 }) {
function FamilyProviderInner({ children }) {
_s();
const { data: session, status } = (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$2d$auth$40$4$2e$24$2e$13_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_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useSession"])();
const searchParams = (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$navigation$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useSearchParams"])();
@@ -34,11 +34,11 @@ function FamilyProvider({ children }) {
const loadingTreeIdRef = (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$__["useRef"])(null);
// 监听 URL 和 Session 变化,加载家族树
(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": ()=>{
"FamilyProviderInner.useEffect": ()=>{
const controller = new AbortController();
const signal = controller.signal;
const loadTree = {
"FamilyProvider.useEffect.loadTree": async ()=>{
"FamilyProviderInner.useEffect.loadTree": async ()=>{
const treeId = searchParams.get('treeId');
// 如果 session 正在加载,等待
if (status === 'loading') {
@@ -61,12 +61,10 @@ function FamilyProvider({ children }) {
const targetTreeId = treeId || 'first';
// 如果正在加载相同的树,跳过
if (loadingTreeIdRef.current === targetTreeId) {
console.log('⏭️ 跳过重复加载:', targetTreeId);
return;
}
// 如果 treeId 与当前树相同,跳过
if (treeId && treeId === currentTree?.id) {
console.log('⏭️ 已加载该树,跳过:', treeId);
return;
}
// 标记正在加载
@@ -81,14 +79,6 @@ function FamilyProvider({ children }) {
throw new Error(`HTTP error! status: ${res.status}`);
}
const data = await res.json();
console.log('🌳 获取家族树响应:', {
fetchUrl,
targetTreeId,
responseData: data,
treesCount: data.trees?.length,
firstTree: data.trees?.[0],
singleTree: data.tree
});
if (signal.aborted) return;
let tree = null;
if (targetTreeId === 'first') {
@@ -96,43 +86,25 @@ function FamilyProvider({ children }) {
} else {
tree = data.tree;
}
console.log('🎯 选择的家族树:', tree);
if (tree) {
setCurrentTree(tree);
// 加载该树的成员数据
console.log('🔄 开始加载成员数据:', {
treeId: tree.id,
treeName: tree.name
});
try {
const memberRes = await fetch(`/api/trees/${tree.id}/members`, {
signal
});
console.log('📡 成员数据响应状态:', memberRes.status, memberRes.ok);
if (!memberRes.ok) {
throw new Error(`Failed to load members: ${memberRes.status}`);
}
const memberData = await memberRes.json();
console.log('📊 获取到的成员数据:', {
treeId: tree.id,
treeName: tree.name,
membersCount: memberData.members?.length || 0,
members: memberData.members,
rootId: memberData.rootId
});
if (signal.aborted) return;
if (memberData.members) {
const membersMap = memberData.members.reduce({
"FamilyProvider.useEffect.loadTree.membersMap": (acc, member)=>{
"FamilyProviderInner.useEffect.loadTree.membersMap": (acc, member)=>{
acc[member.id] = member;
return acc;
}
}["FamilyProvider.useEffect.loadTree.membersMap"], {});
console.log('✅ 设置 treeData:', {
rootId: memberData.rootId || "",
membersMapKeys: Object.keys(membersMap),
membersMapCount: Object.keys(membersMap).length
});
}["FamilyProviderInner.useEffect.loadTree.membersMap"], {});
setTreeData({
rootId: memberData.rootId || "",
members: membersMap
@@ -140,7 +112,6 @@ function FamilyProvider({ children }) {
}
} catch (err) {
if (err.name === 'AbortError') {
console.log('❌ 成员数据加载被中断');
return;
}
console.error('加载成员数据失败:', err);
@@ -159,7 +130,6 @@ function FamilyProvider({ children }) {
}
} catch (err) {
if (err.name === 'AbortError') {
console.log('❌ 家族树加载被中断');
return;
}
// 忽略 Failed to fetch 错误
@@ -180,28 +150,28 @@ function FamilyProvider({ children }) {
}
}
}
}["FamilyProvider.useEffect.loadTree"];
}["FamilyProviderInner.useEffect.loadTree"];
loadTree();
return ({
"FamilyProvider.useEffect": ()=>{
"FamilyProviderInner.useEffect": ()=>{
controller.abort();
}
})["FamilyProvider.useEffect"];
})["FamilyProviderInner.useEffect"];
}
}["FamilyProvider.useEffect"], [
}["FamilyProviderInner.useEffect"], [
searchParams,
session?.user?.id,
status
]);
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)=>{
"FamilyProviderInner.useCallback[getMember]": (id)=>{
return treeData.members[id];
}
}["FamilyProvider.useCallback[getMember]"], [
}["FamilyProviderInner.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)=>{
"FamilyProviderInner.useCallback[addMember]": async (member)=>{
if (!currentTree?.id) throw new Error('没有选择家族树');
const response = await fetch(`/api/trees/${currentTree.id}/members`, {
method: 'POST',
@@ -217,20 +187,20 @@ function FamilyProvider({ children }) {
const data = await response.json();
// 更新本地状态
setTreeData({
"FamilyProvider.useCallback[addMember]": (prev)=>({
"FamilyProviderInner.useCallback[addMember]": (prev)=>({
...prev,
members: {
...prev.members,
[data.member.id]: data.member
}
})
}["FamilyProvider.useCallback[addMember]"]);
}["FamilyProviderInner.useCallback[addMember]"]);
}
}["FamilyProvider.useCallback[addMember]"], [
}["FamilyProviderInner.useCallback[addMember]"], [
currentTree?.id
]);
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)=>{
"FamilyProviderInner.useCallback[updateMember]": async (id, updates)=>{
if (!currentTree?.id) throw new Error('没有选择家族树');
const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {
method: 'PATCH',
@@ -246,20 +216,20 @@ function FamilyProvider({ children }) {
const data = await response.json();
// 更新本地状态
setTreeData({
"FamilyProvider.useCallback[updateMember]": (prev)=>({
"FamilyProviderInner.useCallback[updateMember]": (prev)=>({
...prev,
members: {
...prev.members,
[id]: data.member
}
})
}["FamilyProvider.useCallback[updateMember]"]);
}["FamilyProviderInner.useCallback[updateMember]"]);
}
}["FamilyProvider.useCallback[updateMember]"], [
}["FamilyProviderInner.useCallback[updateMember]"], [
currentTree?.id
]);
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)=>{
"FamilyProviderInner.useCallback[deleteMember]": async (id)=>{
if (!currentTree?.id) throw new Error('没有选择家族树');
const response = await fetch(`/api/trees/${currentTree.id}/members/${id}`, {
method: 'DELETE'
@@ -270,7 +240,7 @@ function FamilyProvider({ children }) {
}
// 更新本地状态
setTreeData({
"FamilyProvider.useCallback[deleteMember]": (prev)=>{
"FamilyProviderInner.useCallback[deleteMember]": (prev)=>{
const newMembers = {
...prev.members
};
@@ -280,13 +250,13 @@ function FamilyProvider({ children }) {
members: newMembers
};
}
}["FamilyProvider.useCallback[deleteMember]"]);
}["FamilyProviderInner.useCallback[deleteMember]"]);
}
}["FamilyProvider.useCallback[deleteMember]"], [
}["FamilyProviderInner.useCallback[deleteMember]"], [
currentTree?.id
]);
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)=>{
"FamilyProviderInner.useCallback[loadData]": async (data)=>{
if (!currentTree?.id) throw new Error('没有选择家族树');
// 导入数据到服务器
const response = await fetch(`/api/trees/${currentTree.id}/import`, {
@@ -305,31 +275,31 @@ function FamilyProvider({ children }) {
const membersData = await membersResponse.json();
if (membersData.members) {
const membersMap = membersData.members.reduce({
"FamilyProvider.useCallback[loadData].membersMap": (acc, member)=>{
"FamilyProviderInner.useCallback[loadData].membersMap": (acc, member)=>{
acc[member.id] = member;
return acc;
}
}["FamilyProvider.useCallback[loadData].membersMap"], {});
}["FamilyProviderInner.useCallback[loadData].membersMap"], {});
setTreeData({
rootId: membersData.rootId || "",
members: membersMap
});
}
}
}["FamilyProvider.useCallback[loadData]"], [
}["FamilyProviderInner.useCallback[loadData]"], [
currentTree?.id
]);
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 ()=>{
"FamilyProviderInner.useCallback[resetData]": async ()=>{
// 重置为空数据
setTreeData({
rootId: "",
members: {}
});
}
}["FamilyProvider.useCallback[resetData]"], []);
}["FamilyProviderInner.useCallback[resetData]"], []);
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)=>{
"FamilyProviderInner.useCallback[searchMembers]": (query)=>{
if (!query.trim()) {
setSearchResults([]);
return;
@@ -338,44 +308,39 @@ function FamilyProvider({ children }) {
// 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"]);
"FamilyProviderInner.useCallback[searchMembers].results": (member)=>member.fullName.includes(lowerQuery) || member.givenName.includes(lowerQuery) || member.courtesyName?.includes(lowerQuery) || member.artName?.includes(lowerQuery)
}["FamilyProviderInner.useCallback[searchMembers].results"]);
setSearchResults(results);
}
}["FamilyProvider.useCallback[searchMembers]"], [
}["FamilyProviderInner.useCallback[searchMembers]"], [
treeData
]);
// Listen for import events
(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": ()=>{
"FamilyProviderInner.useEffect": ()=>{
const handleImport = {
"FamilyProvider.useEffect.handleImport": (e)=>{
"FamilyProviderInner.useEffect.handleImport": (e)=>{
loadData(e.detail);
}
}["FamilyProvider.useEffect.handleImport"];
}["FamilyProviderInner.useEffect.handleImport"];
window.addEventListener("family-data-import", handleImport);
return ({
"FamilyProvider.useEffect": ()=>window.removeEventListener("family-data-import", handleImport)
})["FamilyProvider.useEffect"];
"FamilyProviderInner.useEffect": ()=>window.removeEventListener("family-data-import", handleImport)
})["FamilyProviderInner.useEffect"];
}
}["FamilyProvider.useEffect"], [
}["FamilyProviderInner.useEffect"], [
loadData
]);
// 监听 treeData 变化
(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": ()=>{
console.log('🔄 FamilyContext treeData 更新:', {
rootId: treeData.rootId,
membersCount: Object.keys(treeData.members).length,
memberIds: Object.keys(treeData.members),
currentTreeId: currentTree?.id,
currentTreeName: currentTree?.name
});
}
}["FamilyProvider.useEffect"], [
treeData,
currentTree
]);
// useEffect(() => {
// console.log('🔄 FamilyContext treeData 更新:', {
// rootId: treeData.rootId,
// membersCount: Object.keys(treeData.members).length,
// memberIds: Object.keys(treeData.members),
// currentTreeId: currentTree?.id,
// currentTreeName: currentTree?.name
// })
// }, [treeData, currentTree])
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,
@@ -395,17 +360,40 @@ function FamilyProvider({ children }) {
children: children
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx",
lineNumber: 371,
lineNumber: 341,
columnNumber: 5
}, this);
}
_s(FamilyProvider, "E5Rg+7I2bH4acmJWQlkkkztGjjo=", false, function() {
_s(FamilyProviderInner, "vVNlNNWFeqeqDd0A0U0BrvzHQAE=", 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$next$2d$auth$40$4$2e$24$2e$13_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_$5f$nodemailer$40$7_3c43d6bc4ecce810d1d16651fe207b00$2f$node_modules$2f$next$2d$auth$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useSession"],
__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$navigation$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useSearchParams"]
];
});
_c = FamilyProvider;
_c = FamilyProviderInner;
function FamilyProvider({ children }) {
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"])(__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$__["Suspense"], {
fallback: /*#__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"])("div", {
children: "Loading..."
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx",
lineNumber: 365,
columnNumber: 25
}, void 0),
children: /*#__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"])(FamilyProviderInner, {
children: children
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx",
lineNumber: 366,
columnNumber: 7
}, this)
}, void 0, false, {
fileName: "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx",
lineNumber: 365,
columnNumber: 5
}, this);
}
_c1 = 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);
@@ -415,8 +403,9 @@ function useFamily() {
return context;
}
_s1(useFamily, "b9L3QQ+jgeyIrH0NfHrJ8nn7VMU=");
var _c;
__turbopack_context__.k.register(_c, "FamilyProvider");
var _c, _c1;
__turbopack_context__.k.register(_c, "FamilyProviderInner");
__turbopack_context__.k.register(_c1, "FamilyProvider");
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
}