1359 lines
96 KiB
JavaScript
1359 lines
96 KiB
JavaScript
module.exports = [
|
|
"[externals]/next/dist/compiled/next-server/app-page-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-page-turbo.runtime.dev.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/compiled/next-server/app-page-turbo.runtime.dev.js", () => require("next/dist/compiled/next-server/app-page-turbo.runtime.dev.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/action-async-storage.external.js [external] (next/dist/server/app-render/action-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/action-async-storage.external.js", () => require("next/dist/server/app-render/action-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/work-unit-async-storage.external.js", () => require("next/dist/server/app-render/work-unit-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/work-async-storage.external.js", () => require("next/dist/server/app-render/work-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/lib/mock-data.ts [app-ssr] (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 = {
|
|
// ========== 第一代 (曾祖父母辈,1920年代出生) ==========
|
|
"1": createMember("1", "国强", "male", 1, {
|
|
ancestralHome: "广东省广州市",
|
|
bio: "李氏家族第一代,抗战时期参加革命工作,新中国成立后在政府部门工作,为人正直,深受敬重。",
|
|
tags: [
|
|
"革命干部",
|
|
"始祖"
|
|
],
|
|
birthDate: "1925-03-15",
|
|
deathDate: "2008-08-20",
|
|
spouseIds: [
|
|
"2"
|
|
],
|
|
childrenIds: [
|
|
"3",
|
|
"4",
|
|
"5"
|
|
]
|
|
}),
|
|
"2": createMember("2", "秀芳", "female", 1, {
|
|
fullName: "王秀芳",
|
|
surname: "王",
|
|
givenName: "秀芳",
|
|
ancestralHome: "广东省广州市",
|
|
bio: "知识分子家庭出身,建国后在学校任教,相夫教子,育有三子。",
|
|
birthDate: "1928-07-08",
|
|
deathDate: "2015-12-10",
|
|
spouseIds: [
|
|
"1"
|
|
],
|
|
childrenIds: [
|
|
"3",
|
|
"4",
|
|
"5"
|
|
]
|
|
}),
|
|
// ========== 第二代 (祖父母辈,1950年代出生) ==========
|
|
"3": createMember("3", "建华", "male", 2, {
|
|
fatherId: "1",
|
|
motherId: "2",
|
|
ancestralHome: "广东省深圳市",
|
|
birthPlace: "广东省深圳市",
|
|
bio: "国强长子,改革开放后下海经商,迁往深圳创办家族企业,事业有成。",
|
|
tags: [
|
|
"企业家"
|
|
],
|
|
birthDate: "1952-05-20",
|
|
deathDate: "2020-03-15",
|
|
spouseIds: [
|
|
"6"
|
|
],
|
|
childrenIds: [
|
|
"9",
|
|
"10"
|
|
]
|
|
}),
|
|
"4": createMember("4", "建国", "male", 2, {
|
|
fatherId: "1",
|
|
motherId: "2",
|
|
generationName: "建",
|
|
rank: 2,
|
|
bio: "次子,大学教授,追随教育事业迁往北京,从事教育工作四十余年,桃李满天下。",
|
|
tags: [
|
|
"教授",
|
|
"次子"
|
|
],
|
|
birthDate: "1955-11-03",
|
|
ancestralHome: "北京市",
|
|
birthPlace: "北京市",
|
|
spouseIds: [
|
|
"7"
|
|
],
|
|
childrenIds: [
|
|
"11",
|
|
"12",
|
|
"13"
|
|
]
|
|
}),
|
|
"5": createMember("5", "建军", "male", 2, {
|
|
fatherId: "1",
|
|
motherId: "2",
|
|
generationName: "建",
|
|
rank: 3,
|
|
bio: "三子,医生,支援西部建设迁往上海,从医三十余年,救死扶伤。",
|
|
tags: [
|
|
"医生",
|
|
"三子"
|
|
],
|
|
birthDate: "1958-11-03",
|
|
ancestralHome: "上海市",
|
|
birthPlace: "上海市",
|
|
spouseIds: [
|
|
"8"
|
|
],
|
|
childrenIds: [
|
|
"14"
|
|
]
|
|
}),
|
|
// 第二代配偶
|
|
"6": createMember("6", "丽华", "female", 2, {
|
|
fullName: "陈丽华",
|
|
surname: "陈",
|
|
givenName: "丽华",
|
|
ancestralHome: "广东省深圳市",
|
|
bio: "建华之妻,企业管理者,协助丈夫打理家族企业。",
|
|
birthDate: "1955-05-20",
|
|
deathDate: "2021-11-05",
|
|
spouseIds: [
|
|
"3"
|
|
],
|
|
childrenIds: [
|
|
"9",
|
|
"10"
|
|
]
|
|
}),
|
|
"7": createMember("7", "美玲", "female", 2, {
|
|
fullName: "张美玲",
|
|
surname: "张",
|
|
givenName: "美玲",
|
|
ancestralHome: "广东省广州市",
|
|
bio: "建国之妻,中学教师,与丈夫志同道合,共同从事教育事业。",
|
|
birthDate: "1957-01-15",
|
|
spouseIds: [
|
|
"4"
|
|
],
|
|
childrenIds: [
|
|
"11",
|
|
"12",
|
|
"13"
|
|
]
|
|
}),
|
|
"8": createMember("8", "雅琴", "female", 2, {
|
|
fullName: "林雅琴",
|
|
surname: "林",
|
|
givenName: "雅琴",
|
|
ancestralHome: "福建省厦门市",
|
|
bio: "建军之妻,护士长,温柔贤惠,善于持家。",
|
|
birthDate: "1960-08-10",
|
|
spouseIds: [
|
|
"5"
|
|
],
|
|
childrenIds: [
|
|
"14"
|
|
]
|
|
}),
|
|
// ========== 第三代 (父母辈,1980年代出生) ==========
|
|
"9": createMember("9", "志远", "male", 3, {
|
|
fatherId: "3",
|
|
motherId: "6",
|
|
generationName: "志",
|
|
rank: 1,
|
|
ancestralHome: "广东省深圳市",
|
|
birthPlace: "广东省深圳市",
|
|
bio: "建华长子,留学归国,接管家族企业,推动企业转型升级。",
|
|
tags: [
|
|
"企业家",
|
|
"海归"
|
|
],
|
|
birthDate: "1980-03-08",
|
|
phone: "13800138001",
|
|
email: "zhiyuan.li@company.com",
|
|
address: "广东省广州市天河区珠江新城XX路XX号",
|
|
spouseIds: [
|
|
"15"
|
|
],
|
|
childrenIds: [
|
|
"17",
|
|
"18"
|
|
]
|
|
}),
|
|
"10": createMember("10", "志强", "male", 3, {
|
|
fatherId: "3",
|
|
motherId: "6",
|
|
generationName: "志",
|
|
rank: 2,
|
|
ancestralHome: "北京市",
|
|
birthPlace: "北京市",
|
|
bio: "建华次子,互联网创业者,北上创业,创办科技公司。",
|
|
tags: [
|
|
"创业者",
|
|
"科技"
|
|
],
|
|
birthDate: "1983-07-22",
|
|
phone: "13900139002",
|
|
email: "zhiqiang.li@techco.com",
|
|
address: "北京市朝阳区望京SOHO",
|
|
spouseIds: [
|
|
"16"
|
|
],
|
|
childrenIds: [
|
|
"19"
|
|
]
|
|
}),
|
|
"11": createMember("11", "志明", "male", 3, {
|
|
fatherId: "4",
|
|
motherId: "7",
|
|
generationName: "志",
|
|
rank: 1,
|
|
ancestralHome: "广东省广州市",
|
|
birthPlace: "广东省广州市",
|
|
bio: "建国长子,大学副教授,从北京返回广州从事教育研究工作。",
|
|
tags: [
|
|
"副教授",
|
|
"学者"
|
|
],
|
|
birthDate: "1982-01-18",
|
|
phone: "13700137003",
|
|
telephone: "020-8888-8888",
|
|
email: "zhiming.li@university.edu.cn",
|
|
address: "广东省广州市海珠区大学城",
|
|
spouseIds: [
|
|
"20"
|
|
],
|
|
childrenIds: [
|
|
"21",
|
|
"22"
|
|
]
|
|
}),
|
|
"12": createMember("12", "志文", "male", 3, {
|
|
fatherId: "4",
|
|
motherId: "7",
|
|
generationName: "志",
|
|
rank: 2,
|
|
bio: "建国次子,作家,追求文学梦想迁往成都,出版多部文学作品。",
|
|
tags: [
|
|
"作家",
|
|
"文学"
|
|
],
|
|
birthDate: "1985-09-12",
|
|
ancestralHome: "四川省成都市",
|
|
birthPlace: "四川省成都市",
|
|
phone: "13600136004",
|
|
email: "zhiwen.li@writer.com"
|
|
}),
|
|
"13": createMember("13", "志勇", "male", 3, {
|
|
fatherId: "4",
|
|
motherId: "7",
|
|
generationName: "志",
|
|
rank: 3,
|
|
ancestralHome: "上海市",
|
|
birthPlace: "上海市",
|
|
bio: "建国三子,律师,从北京迁往上海,执业于知名律师事务所。",
|
|
tags: [
|
|
"律师"
|
|
],
|
|
birthDate: "1988-11-05",
|
|
phone: "13500135005",
|
|
email: "zhiyong.li@lawfirm.com",
|
|
address: "上海市浦东新区陆家嘴金融中心"
|
|
}),
|
|
"14": createMember("14", "志诚", "male", 3, {
|
|
fatherId: "5",
|
|
motherId: "8",
|
|
generationName: "志",
|
|
rank: 1,
|
|
ancestralHome: "广东省深圳市",
|
|
birthPlace: "广东省深圳市",
|
|
bio: "建军独子,医生,从上海迁往深圳,继承父业,在医院工作。",
|
|
tags: [
|
|
"医生"
|
|
],
|
|
birthDate: "1986-04-28",
|
|
phone: "13400134006",
|
|
telephone: "0755-6666-6666",
|
|
email: "zhicheng.li@hospital.com",
|
|
address: "广东省深圳市福田区人民医院",
|
|
spouseIds: [
|
|
"23"
|
|
],
|
|
childrenIds: [
|
|
"24"
|
|
]
|
|
}),
|
|
// 第三代配偶
|
|
"15": createMember("15", "晓雯", "female", 3, {
|
|
fullName: "赵晓雯",
|
|
surname: "赵",
|
|
givenName: "晓雯",
|
|
ancestralHome: "上海市",
|
|
bio: "志远之妻,金融行业从业者,MBA学位。",
|
|
birthDate: "1982-06-15",
|
|
spouseIds: [
|
|
"9"
|
|
],
|
|
childrenIds: [
|
|
"17",
|
|
"18"
|
|
]
|
|
}),
|
|
"16": createMember("16", "诗涵", "female", 3, {
|
|
fullName: "刘诗涵",
|
|
surname: "刘",
|
|
givenName: "诗涵",
|
|
ancestralHome: "北京市",
|
|
bio: "志强之妻,设计师,从事品牌设计工作。",
|
|
birthDate: "1985-10-08",
|
|
spouseIds: [
|
|
"10"
|
|
],
|
|
childrenIds: [
|
|
"19"
|
|
]
|
|
}),
|
|
"20": createMember("20", "雨欣", "female", 3, {
|
|
fullName: "周雨欣",
|
|
surname: "周",
|
|
givenName: "雨欣",
|
|
ancestralHome: "浙江省杭州市",
|
|
bio: "志明之妻,中学教师,温柔贤淑。",
|
|
birthDate: "1984-02-25",
|
|
spouseIds: [
|
|
"11"
|
|
],
|
|
childrenIds: [
|
|
"21",
|
|
"22"
|
|
]
|
|
}),
|
|
"23": createMember("23", "婉婷", "female", 3, {
|
|
fullName: "郑婉婷",
|
|
surname: "郑",
|
|
givenName: "婉婷",
|
|
ancestralHome: "广东省广州市",
|
|
bio: "志诚之妻,护士,在医院工作。",
|
|
birthDate: "1988-12-03",
|
|
spouseIds: [
|
|
"14"
|
|
],
|
|
childrenIds: [
|
|
"24"
|
|
]
|
|
}),
|
|
// ========== 第四代 (子女辈,2010年代出生) ==========
|
|
"17": createMember("17", "浩然", "male", 4, {
|
|
fatherId: "9",
|
|
motherId: "15",
|
|
generationName: "浩",
|
|
rank: 1,
|
|
bio: "志远长子,在读高中生,成绩优异。",
|
|
tags: [
|
|
"学生"
|
|
],
|
|
birthDate: "2010-05-10"
|
|
}),
|
|
"18": createMember("18", "思琪", "female", 4, {
|
|
fatherId: "9",
|
|
motherId: "15",
|
|
generationName: "思",
|
|
rank: 2,
|
|
bio: "志远次女,在读初中,喜欢绘画。",
|
|
tags: [
|
|
"学生"
|
|
],
|
|
birthDate: "2013-08-22"
|
|
}),
|
|
"19": createMember("19", "宇轩", "male", 4, {
|
|
fatherId: "10",
|
|
motherId: "16",
|
|
generationName: "宇",
|
|
rank: 1,
|
|
bio: "志强独子,在读小学,对编程感兴趣。",
|
|
tags: [
|
|
"学生"
|
|
],
|
|
birthDate: "2015-11-18"
|
|
}),
|
|
"21": createMember("21", "梓涵", "female", 4, {
|
|
fatherId: "11",
|
|
motherId: "20",
|
|
generationName: "梓",
|
|
rank: 1,
|
|
bio: "志明长女,在读大学,主修经济学。",
|
|
tags: [
|
|
"大学生"
|
|
],
|
|
birthDate: "2007-03-05"
|
|
}),
|
|
"22": createMember("22", "子轩", "male", 4, {
|
|
fatherId: "11",
|
|
motherId: "20",
|
|
generationName: "子",
|
|
rank: 2,
|
|
bio: "志明次子,在读高中,擅长数学。",
|
|
tags: [
|
|
"学生"
|
|
],
|
|
birthDate: "2010-07-14"
|
|
}),
|
|
"24": createMember("24", "欣怡", "female", 4, {
|
|
fatherId: "14",
|
|
motherId: "23",
|
|
generationName: "欣",
|
|
rank: 1,
|
|
bio: "志诚独女,在读初中,活泼可爱。",
|
|
tags: [
|
|
"学生"
|
|
],
|
|
birthDate: "2012-09-20"
|
|
})
|
|
};
|
|
const mockFamilyData = {
|
|
members,
|
|
rootId: "1"
|
|
};
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/lib/db.ts [app-ssr] (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$ssr$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-ssr] (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$ssr$5d$__$28$ecmascript$29$__["default"] {
|
|
members;
|
|
settings;
|
|
images;
|
|
constructor(){
|
|
super("FamilyTreeDB");
|
|
this.version(1).stores({
|
|
members: "id, fullName, fatherId, motherId, [fatherId+motherId]",
|
|
settings: "key",
|
|
images: "id"
|
|
});
|
|
}
|
|
}
|
|
const db = new FamilyTreeDB();
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/lib/notifications.ts [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"checkTodayAnniversaries",
|
|
()=>checkTodayAnniversaries,
|
|
"checkUpcomingAnniversaries",
|
|
()=>checkUpcomingAnniversaries,
|
|
"notifyTodayAnniversaries",
|
|
()=>notifyTodayAnniversaries,
|
|
"requestNotificationPermission",
|
|
()=>requestNotificationPermission,
|
|
"sendNotification",
|
|
()=>sendNotification,
|
|
"setupDailyNotificationCheck",
|
|
()=>setupDailyNotificationCheck
|
|
]);
|
|
async function requestNotificationPermission() {
|
|
if (("TURBOPACK compile-time value", "undefined") === "undefined" || !("Notification" in window)) {
|
|
console.warn("浏览器不支持通知");
|
|
return false;
|
|
}
|
|
//TURBOPACK unreachable
|
|
;
|
|
}
|
|
function sendNotification(title, options) {
|
|
if (("TURBOPACK compile-time value", "undefined") === "undefined" || !("Notification" in window)) {
|
|
return;
|
|
}
|
|
//TURBOPACK unreachable
|
|
;
|
|
}
|
|
function checkTodayAnniversaries(members) {
|
|
const today = new Date();
|
|
const currentMonth = today.getMonth() + 1;
|
|
const currentDay = today.getDate();
|
|
const birthdays = [];
|
|
const deathdays = [];
|
|
members.forEach((member)=>{
|
|
// 检查生日
|
|
if (member.birthDate) {
|
|
const birthDate = new Date(member.birthDate);
|
|
if (birthDate.getMonth() + 1 === currentMonth && birthDate.getDate() === currentDay) {
|
|
birthdays.push(member);
|
|
}
|
|
}
|
|
// 检查忌日
|
|
if (member.deathDate) {
|
|
const deathDate = new Date(member.deathDate);
|
|
if (deathDate.getMonth() + 1 === currentMonth && deathDate.getDate() === currentDay) {
|
|
deathdays.push(member);
|
|
}
|
|
}
|
|
});
|
|
return {
|
|
birthdays,
|
|
deathdays
|
|
};
|
|
}
|
|
function checkUpcomingAnniversaries(members, days = 7) {
|
|
const today = new Date();
|
|
const birthdays = [];
|
|
const deathdays = [];
|
|
members.forEach((member)=>{
|
|
// 检查生日
|
|
if (member.birthDate) {
|
|
const birthDate = new Date(member.birthDate);
|
|
const thisYearBirthday = new Date(today.getFullYear(), birthDate.getMonth(), birthDate.getDate());
|
|
if (thisYearBirthday < today) {
|
|
thisYearBirthday.setFullYear(today.getFullYear() + 1);
|
|
}
|
|
const daysUntil = Math.ceil((thisYearBirthday.getTime() - today.getTime()) / (1000 * 60 * 60 * 24));
|
|
if (daysUntil > 0 && daysUntil <= days) {
|
|
birthdays.push({
|
|
member,
|
|
daysUntil
|
|
});
|
|
}
|
|
}
|
|
// 检查忌日
|
|
if (member.deathDate) {
|
|
const deathDate = new Date(member.deathDate);
|
|
const thisYearDeathday = new Date(today.getFullYear(), deathDate.getMonth(), deathDate.getDate());
|
|
if (thisYearDeathday < today) {
|
|
thisYearDeathday.setFullYear(today.getFullYear() + 1);
|
|
}
|
|
const daysUntil = Math.ceil((thisYearDeathday.getTime() - today.getTime()) / (1000 * 60 * 60 * 24));
|
|
if (daysUntil > 0 && daysUntil <= days) {
|
|
deathdays.push({
|
|
member,
|
|
daysUntil
|
|
});
|
|
}
|
|
}
|
|
});
|
|
return {
|
|
birthdays,
|
|
deathdays
|
|
};
|
|
}
|
|
function notifyTodayAnniversaries(members) {
|
|
const { birthdays, deathdays } = checkTodayAnniversaries(members);
|
|
if (birthdays.length > 0) {
|
|
const names = birthdays.map((m)=>m.fullName).join("、");
|
|
sendNotification("🎂 今日生日提醒", {
|
|
body: `今天是 ${names} 的生日!`,
|
|
tag: "birthday-today"
|
|
});
|
|
}
|
|
if (deathdays.length > 0) {
|
|
const names = deathdays.map((m)=>m.fullName).join("、");
|
|
sendNotification("🕯️ 今日忌日提醒", {
|
|
body: `今天是 ${names} 的忌日,缅怀先人。`,
|
|
tag: "deathday-today"
|
|
});
|
|
}
|
|
}
|
|
function setupDailyNotificationCheck(members) {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
return;
|
|
}
|
|
//TURBOPACK unreachable
|
|
;
|
|
// 检查是否已经在今天检查过
|
|
const lastCheckDate = undefined;
|
|
const today = undefined;
|
|
}
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (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$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/mock-data.ts [app-ssr] (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$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/db.ts [app-ssr] (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$ssr$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-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$notifications$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/notifications.ts [app-ssr] (ecmascript)");
|
|
"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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"])(undefined);
|
|
function FamilyProvider({ children }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [highlightedMemberId, setHighlightedMemberId] = (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null);
|
|
// 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$ssr$5d$__$28$ecmascript$29$__["useLiveQuery"])(()=>__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$ssr$5d$__$28$ecmascript$29$__["db"].members.toArray());
|
|
// 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$ssr$5d$__$28$ecmascript$29$__["useLiveQuery"])(()=>__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$ssr$5d$__$28$ecmascript$29$__["db"].settings.get("rootId"));
|
|
// 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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
const 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$ssr$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$ssr$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$ssr$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$ssr$5d$__$28$ecmascript$29$__["db"].settings, 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$ssr$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$ssr$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$ssr$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$ssr$5d$__$28$ecmascript$29$__["mockFamilyData"].rootId
|
|
});
|
|
});
|
|
}
|
|
setIsInitialized(true);
|
|
};
|
|
initDb();
|
|
}, []);
|
|
// 设置通知检查
|
|
(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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
if (isInitialized && members && members.length > 0) {
|
|
// 检查通知权限并设置每日检查
|
|
if ("Notification" in window && Notification.permission === "granted") {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$notifications$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["setupDailyNotificationCheck"])(members);
|
|
}
|
|
}
|
|
}, [
|
|
isInitialized,
|
|
members
|
|
]);
|
|
// 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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])((id)=>{
|
|
return treeData.members[id];
|
|
}, [
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(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$ssr$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$ssr$5d$__$28$ecmascript$29$__["db"].members, 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$ssr$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$ssr$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$ssr$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$ssr$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$ssr$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$ssr$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$ssr$5d$__$28$ecmascript$29$__["db"].members.update(spouseId, {
|
|
spouseIds: [
|
|
...spouse.spouseIds,
|
|
member.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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(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$ssr$5d$__$28$ecmascript$29$__["db"].members.update(id, {
|
|
...updates,
|
|
updatedAt: new Date().toISOString()
|
|
});
|
|
}, []);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(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$ssr$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$ssr$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$ssr$5d$__$28$ecmascript$29$__["db"].settings, 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$ssr$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.
|
|
});
|
|
}, []);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(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$ssr$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$ssr$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$ssr$5d$__$28$ecmascript$29$__["db"].settings, 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$ssr$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$ssr$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$ssr$5d$__$28$ecmascript$29$__["db"].settings.put({
|
|
key: "rootId",
|
|
value: data.rootId
|
|
});
|
|
});
|
|
}, []);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(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$ssr$5d$__$28$ecmascript$29$__["mockFamilyData"]);
|
|
}, [
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])((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((member)=>member.fullName.includes(lowerQuery) || member.givenName.includes(lowerQuery) || member.courtesyName?.includes(lowerQuery) || member.artName?.includes(lowerQuery));
|
|
setSearchResults(results);
|
|
}, [
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
const handleImport = (e)=>{
|
|
loadData(e.detail);
|
|
};
|
|
window.addEventListener("family-data-import", handleImport);
|
|
return ()=>window.removeEventListener("family-data-import", handleImport);
|
|
}, [
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(FamilyContext.Provider, {
|
|
value: {
|
|
treeData,
|
|
getMember,
|
|
addMember,
|
|
updateMember,
|
|
deleteMember,
|
|
searchResults,
|
|
searchMembers,
|
|
loadData,
|
|
resetData,
|
|
isLoading: !isInitialized || !members,
|
|
highlightedMemberId,
|
|
setHighlightedMemberId
|
|
},
|
|
children: children
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx",
|
|
lineNumber: 185,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function useFamily() {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(FamilyContext);
|
|
if (context === undefined) {
|
|
throw new Error("useFamily must be used within a FamilyProvider");
|
|
}
|
|
return context;
|
|
}
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/lib/register-sw.ts [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"registerServiceWorker",
|
|
()=>registerServiceWorker,
|
|
"unregisterServiceWorker",
|
|
()=>unregisterServiceWorker
|
|
]);
|
|
function registerServiceWorker() {
|
|
if (("TURBOPACK compile-time value", "undefined") === "undefined" || !("serviceWorker" in navigator)) {
|
|
console.log("Service Worker 不被支持");
|
|
return;
|
|
}
|
|
//TURBOPACK unreachable
|
|
;
|
|
}
|
|
function unregisterServiceWorker() {
|
|
if (("TURBOPACK compile-time value", "undefined") === "undefined" || !("serviceWorker" in navigator)) {
|
|
return;
|
|
}
|
|
//TURBOPACK unreachable
|
|
;
|
|
}
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"cn",
|
|
()=>cn
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$clsx$40$2$2e$1$2e$1$2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs [app-ssr] (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$tailwind$2d$merge$40$2$2e$6$2e$0$2f$node_modules$2f$tailwind$2d$merge$2f$dist$2f$bundle$2d$mjs$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/tailwind-merge@2.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
function cn(...inputs) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$tailwind$2d$merge$40$2$2e$6$2e$0$2f$node_modules$2f$tailwind$2d$merge$2f$dist$2f$bundle$2d$mjs$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["twMerge"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$clsx$40$2$2e$1$2e$1$2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clsx"])(inputs));
|
|
}
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Button",
|
|
()=>Button,
|
|
"buttonVariants",
|
|
()=>buttonVariants
|
|
]);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-slot@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-slot/dist/index.mjs [app-ssr] (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$class$2d$variance$2d$authority$40$0$2e$7$2e$1$2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const buttonVariants = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$class$2d$variance$2d$authority$40$0$2e$7$2e$1$2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cva"])("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
|
|
variants: {
|
|
variant: {
|
|
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
|
|
destructive: 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
|
|
outline: 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
|
|
secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
|
ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',
|
|
link: 'text-primary underline-offset-4 hover:underline'
|
|
},
|
|
size: {
|
|
default: 'h-9 px-4 py-2 has-[>svg]:px-3',
|
|
sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',
|
|
lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',
|
|
icon: 'size-9',
|
|
'icon-sm': 'size-8',
|
|
'icon-lg': 'size-10'
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
variant: 'default',
|
|
size: 'default'
|
|
}
|
|
});
|
|
function Button({ className, variant, size, asChild = false, ...props }) {
|
|
const Comp = asChild ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$slot$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$slot$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Slot"] : 'button';
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(Comp, {
|
|
"data-slot": "button",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])(buttonVariants({
|
|
variant,
|
|
size,
|
|
className
|
|
})),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx",
|
|
lineNumber: 52,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
;
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Card",
|
|
()=>Card,
|
|
"CardAction",
|
|
()=>CardAction,
|
|
"CardContent",
|
|
()=>CardContent,
|
|
"CardDescription",
|
|
()=>CardDescription,
|
|
"CardFooter",
|
|
()=>CardFooter,
|
|
"CardHeader",
|
|
()=>CardHeader,
|
|
"CardTitle",
|
|
()=>CardTitle
|
|
]);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
function Card({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "card",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
|
lineNumber: 7,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function CardHeader({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "card-header",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
|
lineNumber: 20,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function CardTitle({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "card-title",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('leading-none font-semibold', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
|
lineNumber: 33,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function CardDescription({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "card-description",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('text-muted-foreground text-sm', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
|
lineNumber: 43,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function CardAction({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "card-action",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
|
lineNumber: 53,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function CardContent({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "card-content",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('px-6', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
|
lineNumber: 66,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function CardFooter({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "card-footer",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('flex items-center px-6 [.border-t]:pt-6', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx",
|
|
lineNumber: 76,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
;
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/components/ui/alert.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Alert",
|
|
()=>Alert,
|
|
"AlertDescription",
|
|
()=>AlertDescription,
|
|
"AlertTitle",
|
|
()=>AlertTitle
|
|
]);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (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$class$2d$variance$2d$authority$40$0$2e$7$2e$1$2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/utils.ts [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
const alertVariants = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$class$2d$variance$2d$authority$40$0$2e$7$2e$1$2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cva"])('relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current', {
|
|
variants: {
|
|
variant: {
|
|
default: 'bg-card text-card-foreground',
|
|
destructive: 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90'
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
variant: 'default'
|
|
}
|
|
});
|
|
function Alert({ className, variant, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "alert",
|
|
role: "alert",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])(alertVariants({
|
|
variant
|
|
}), className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/alert.tsx",
|
|
lineNumber: 28,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function AlertTitle({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "alert-title",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/alert.tsx",
|
|
lineNumber: 39,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
function AlertDescription({ className, ...props }) {
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
"data-slot": "alert-description",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$utils$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cn"])('text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/ui/alert.tsx",
|
|
lineNumber: 55,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
;
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"PWAInstaller",
|
|
()=>PWAInstaller
|
|
]);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/button.tsx [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/card.tsx [app-ssr] (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$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$download$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Download$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/download.js [app-ssr] (ecmascript) <export default as Download>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/x.js [app-ssr] (ecmascript) <export default as X>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$smartphone$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Smartphone$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/smartphone.js [app-ssr] (ecmascript) <export default as Smartphone>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$alert$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/ui/alert.tsx [app-ssr] (ecmascript)");
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function PWAInstaller() {
|
|
const [deferredPrompt, setDeferredPrompt] = (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null);
|
|
const [isInstallable, setIsInstallable] = (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [isInstalled, setIsInstalled] = (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [showPrompt, setShowPrompt] = (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
(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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
// 检查是否已安装
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
// 监听 beforeinstallprompt 事件
|
|
const handleBeforeInstallPrompt = (e)=>{
|
|
e.preventDefault();
|
|
setDeferredPrompt(e);
|
|
setIsInstallable(true);
|
|
// 延迟显示提示(给用户一些时间浏览应用)
|
|
setTimeout(()=>{
|
|
const hasSeenPrompt = localStorage.getItem('pwa-install-prompt-seen');
|
|
if (!hasSeenPrompt) {
|
|
setShowPrompt(true);
|
|
}
|
|
}, 30000); // 30秒后显示
|
|
};
|
|
// 监听安装完成事件
|
|
const handleAppInstalled = ()=>{
|
|
setIsInstalled(true);
|
|
setShowPrompt(false);
|
|
setIsInstallable(false);
|
|
};
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
}, []);
|
|
const handleInstallClick = async ()=>{
|
|
if (!deferredPrompt) return;
|
|
// 显示安装提示
|
|
deferredPrompt.prompt();
|
|
// 等待用户响应
|
|
const { outcome } = await deferredPrompt.userChoice;
|
|
if (outcome === 'accepted') {
|
|
console.log('用户接受了安装');
|
|
} else {
|
|
console.log('用户拒绝了安装');
|
|
}
|
|
setDeferredPrompt(null);
|
|
setShowPrompt(false);
|
|
localStorage.setItem('pwa-install-prompt-seen', 'true');
|
|
};
|
|
const handleDismiss = ()=>{
|
|
setShowPrompt(false);
|
|
localStorage.setItem('pwa-install-prompt-seen', 'true');
|
|
};
|
|
if (isInstalled) {
|
|
return null;
|
|
}
|
|
if (!isInstallable) {
|
|
return null;
|
|
}
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
showPrompt && /*#__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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "fixed bottom-4 right-4 z-50 max-w-sm animate-in slide-in-from-bottom-5",
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Card"], {
|
|
className: "shadow-lg border-2 border-primary",
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardHeader"], {
|
|
className: "pb-3",
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-start justify-between",
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-2",
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$smartphone$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Smartphone$3e$__["Smartphone"], {
|
|
className: "h-5 w-5 text-primary"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 102,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardTitle"], {
|
|
className: "text-base",
|
|
children: "安装应用"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 103,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 101,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], {
|
|
variant: "ghost",
|
|
size: "icon",
|
|
className: "h-6 w-6",
|
|
onClick: handleDismiss,
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__["X"], {
|
|
className: "h-4 w-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 111,
|
|
columnNumber: 19
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 105,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 100,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], {
|
|
className: "text-xs",
|
|
children: "将家谱应用添加到主屏幕,随时随地访问"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 114,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 99,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], {
|
|
className: "pt-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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: handleInstallClick,
|
|
className: "w-full",
|
|
size: "sm",
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$download$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Download$3e$__["Download"], {
|
|
className: "mr-2 h-4 w-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 124,
|
|
columnNumber: 17
|
|
}, this),
|
|
"立即安装"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 119,
|
|
columnNumber: 15
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 118,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 98,
|
|
columnNumber: 11
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 97,
|
|
columnNumber: 9
|
|
}, this),
|
|
!showPrompt && /*#__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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$alert$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Alert"], {
|
|
className: "cursor-pointer hover:bg-muted/50 transition-colors",
|
|
onClick: handleInstallClick,
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$download$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Download$3e$__["Download"], {
|
|
className: "h-4 w-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 135,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$alert$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AlertDescription"], {
|
|
className: "flex items-center justify-between",
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "将应用安装到设备"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 137,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], {
|
|
size: "sm",
|
|
variant: "outline",
|
|
children: "安装"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 138,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 136,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx",
|
|
lineNumber: 134,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true);
|
|
}
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"PWAProvider",
|
|
()=>PWAProvider
|
|
]);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$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/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$register$2d$sw$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/register-sw.ts [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$pwa$2f$pwa$2d$installer$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-installer.tsx [app-ssr] (ecmascript)");
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function PWAProvider({ children }) {
|
|
(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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$register$2d$sw$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["registerServiceWorker"])();
|
|
}, []);
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
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$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$pwa$2f$pwa$2d$installer$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PWAInstaller"], {}, void 0, false, {
|
|
fileName: "[project]/Documents/go-new/chinese-family-tree/components/pwa/pwa-provider.tsx",
|
|
lineNumber: 15,
|
|
columnNumber: 7
|
|
}, this)
|
|
]
|
|
}, void 0, true);
|
|
}
|
|
}),
|
|
"[externals]/next/dist/server/app-render/after-task-async-storage.external.js [external] (next/dist/server/app-render/after-task-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/after-task-async-storage.external.js", () => require("next/dist/server/app-render/after-task-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/dynamic-access-async-storage.external.js [external] (next/dist/server/app-render/dynamic-access-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/dynamic-access-async-storage.external.js", () => require("next/dist/server/app-render/dynamic-access-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
];
|
|
|
|
//# sourceMappingURL=%5Broot-of-the-server%5D__085f4b90._.js.map
|