0.0.8.0
This commit is contained in:
@@ -1,14 +1,18 @@
|
||||
{
|
||||
"/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js",
|
||||
"/api/trees/[treeId]/activity-logs/route": "app/api/trees/[treeId]/activity-logs/route.js",
|
||||
"/api/trees/[treeId]/members/[memberId]/route": "app/api/trees/[treeId]/members/[memberId]/route.js",
|
||||
"/api/trees/[treeId]/collaborators/route": "app/api/trees/[treeId]/collaborators/route.js",
|
||||
"/api/trees/[treeId]/invite/route": "app/api/trees/[treeId]/invite/route.js",
|
||||
"/api/trees/[treeId]/members/route": "app/api/trees/[treeId]/members/route.js",
|
||||
"/api/trees/[treeId]/route": "app/api/trees/[treeId]/route.js",
|
||||
"/api/trees/route": "app/api/trees/route.js",
|
||||
"/api/user/activity-logs/route": "app/api/user/activity-logs/route.js",
|
||||
"/api/user/profile/route": "app/api/user/profile/route.js",
|
||||
"/auth/signin/page": "app/auth/signin/page.js",
|
||||
"/members/[id]/page": "app/members/[id]/page.js",
|
||||
"/members/new/page": "app/members/new/page.js",
|
||||
"/members/page": "app/members/page.js",
|
||||
"/page": "app/page.js",
|
||||
"/settings/page": "app/settings/page.js",
|
||||
"/timeline/page": "app/timeline/page.js",
|
||||
"/tree/page": "app/tree/page.js"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
var R=require("../../../../../chunks/[turbopack]_runtime.js")("server/app/api/trees/[treeId]/invite/route.js")
|
||||
R.c("server/chunks/4e98a_next_1a8f4202._.js")
|
||||
R.c("server/chunks/00caa_next-auth_0fe46a47._.js")
|
||||
R.c("server/chunks/220bc_openid-client_5e32089b._.js")
|
||||
R.c("server/chunks/36042_jose_dist_node_cjs_e602ff23._.js")
|
||||
R.c("server/chunks/e49cb_zod_v3_13ce4528._.js")
|
||||
R.c("server/chunks/cfda4_nodemailer_b9a47597._.js")
|
||||
R.c("server/chunks/a0629__pnpm_9fe4b27d._.js")
|
||||
R.c("server/chunks/[root-of-the-server]__f394cfc4._.js")
|
||||
R.c("server/chunks/168ba__next-internal_server_app_api_trees_[treeId]_invite_route_actions_bad26b87.js")
|
||||
R.m("[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/esm/build/templates/app-route.js { INNER_APP_ROUTE => \"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/invite/route.ts [app-route] (ecmascript)\" } [app-route] (ecmascript)")
|
||||
module.exports=R.m("[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/esm/build/templates/app-route.js { INNER_APP_ROUTE => \"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/invite/route.ts [app-route] (ecmascript)\" } [app-route] (ecmascript)").exports
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sections": []
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"/api/trees/[treeId]/invite/route": "app/api/trees/[treeId]/invite/route.js"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"devFiles": [],
|
||||
"ampDevFiles": [],
|
||||
"polyfillFiles": [
|
||||
"static/chunks/4e98a_next_dist_build_polyfills_polyfill-nomodule.js"
|
||||
],
|
||||
"lowPriorityFiles": [],
|
||||
"rootMainFiles": [],
|
||||
"pages": {},
|
||||
"ampFirstPages": []
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"node": {},
|
||||
"edge": {}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
|
||||
globalThis.__RSC_MANIFEST["/api/trees/[treeId]/invite/route"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"rscModuleMapping":{},"edgeRscModuleMapping":{},"entryCSSFiles":{},"entryJSFiles":{}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
|
||||
"id": "[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/echarts-for-react@3.0.5_echarts@6.0.0_react@19.2.0/node_modules/echarts-for-react/esm/index.js [app-client] (ecmascript, next/dynamic entry)",
|
||||
"files": [
|
||||
"static/chunks/a0629__pnpm_38e9b27f._.js",
|
||||
"static/chunks/6bb63_echarts-for-react_esm_index_93a4347b.js"
|
||||
"static/chunks/6bb63_echarts-for-react_esm_index_6eb1278a.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+7
@@ -0,0 +1,7 @@
|
||||
module.exports = [
|
||||
"[project]/Documents/go-new/chinese-family-tree/.next-internal/server/app/api/trees/[treeId]/invite/route/actions.js [app-rsc] (server actions loader, ecmascript)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
}),
|
||||
];
|
||||
|
||||
//# sourceMappingURL=168ba__next-internal_server_app_api_trees_%5BtreeId%5D_invite_route_actions_bad26b87.js.map
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sections": [
|
||||
{"offset": {"line": 3, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -197,10 +197,26 @@ const authOptions = {
|
||||
"use strict";
|
||||
|
||||
__turbopack_context__.s([
|
||||
"canDeleteTree",
|
||||
()=>canDeleteTree,
|
||||
"canEditTree",
|
||||
()=>canEditTree,
|
||||
"canInviteCollaborators",
|
||||
()=>canInviteCollaborators,
|
||||
"checkPermission",
|
||||
()=>checkPermission,
|
||||
"getRoleDescription",
|
||||
()=>getRoleDescription,
|
||||
"getRoleDisplayName",
|
||||
()=>getRoleDisplayName,
|
||||
"getRolePermissions",
|
||||
()=>getRolePermissions,
|
||||
"permissions",
|
||||
()=>permissions,
|
||||
"requireAuth",
|
||||
()=>requireAuth
|
||||
()=>requireAuth,
|
||||
"requirePermission",
|
||||
()=>requirePermission
|
||||
]);
|
||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/prisma.ts [app-route] (ecmascript)");
|
||||
var __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/@prisma/client [external] (@prisma/client, cjs)");
|
||||
@@ -250,6 +266,163 @@ async function requireAuth(userId) {
|
||||
}
|
||||
return userId;
|
||||
}
|
||||
const permissions = {
|
||||
// ==================== 增加权限 ====================
|
||||
/**
|
||||
* 是否可以创建/添加成员
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canCreate: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
/**
|
||||
* 是否可以创建家族树
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canCreateTree: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
// ==================== 修改权限 ====================
|
||||
/**
|
||||
* 是否可以编辑/更新成员信息
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canUpdate: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
/**
|
||||
* 是否可以导入数据
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canImport: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
// ==================== 删除权限 ====================
|
||||
/**
|
||||
* 是否可以删除成员
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canDeleteMember: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
/**
|
||||
* 是否可以删除家族树
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canDeleteTree: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
/**
|
||||
* 是否可以清空数据
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canClearData: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
// ==================== 协作者管理权限 ====================
|
||||
/**
|
||||
* 是否可以邀请协作者
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canInviteCollaborators: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
/**
|
||||
* 是否可以移除协作者
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canRemoveCollaborators: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
/**
|
||||
* 是否可以管理协作者(邀请和移除)
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canManageCollaborators: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
// ==================== 查看权限 ====================
|
||||
/**
|
||||
* 是否可以查看信息
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canView: (role)=>{
|
||||
return true //
|
||||
;
|
||||
},
|
||||
/**
|
||||
* 是否可以搜索和查询
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canSearch: (role)=>{
|
||||
return true //
|
||||
;
|
||||
},
|
||||
/**
|
||||
* 是否可以导出数据
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canExport: (role)=>{
|
||||
return true //
|
||||
;
|
||||
},
|
||||
/**
|
||||
* 是否可以打印
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canPrint: (role)=>{
|
||||
return true //
|
||||
;
|
||||
}
|
||||
};
|
||||
function canEditTree(role) {
|
||||
return permissions.canUpdate(role);
|
||||
}
|
||||
function canDeleteTree(role) {
|
||||
return permissions.canDeleteTree(role);
|
||||
}
|
||||
function canInviteCollaborators(role) {
|
||||
return permissions.canInviteCollaborators(role);
|
||||
}
|
||||
function requirePermission(role, permissionCheck, errorMessage = "您没有权限执行此操作") {
|
||||
if (!permissionCheck(role)) {
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
}
|
||||
function getRoleDisplayName(role) {
|
||||
const roleNames = {
|
||||
OWNER: "所有者",
|
||||
EDITOR: "编辑者",
|
||||
VIEWER: "查看者"
|
||||
};
|
||||
return roleNames[role] || role;
|
||||
}
|
||||
function getRoleDescription(role) {
|
||||
const descriptions = {
|
||||
OWNER: "拥有全部权限,可以管理家族树和协作者",
|
||||
EDITOR: "可以添加、编辑和删除成员,但不能删除家族树或管理协作者",
|
||||
VIEWER: "只能查看、搜索和导出数据,不能进行任何修改操作"
|
||||
};
|
||||
return descriptions[role] || "";
|
||||
}
|
||||
function getRolePermissions(role) {
|
||||
const allPermissions = {
|
||||
OWNER: [
|
||||
"查看所有信息",
|
||||
"搜索和筛选",
|
||||
"导出和打印",
|
||||
"添加成员",
|
||||
"编辑成员",
|
||||
"删除成员",
|
||||
"导入数据",
|
||||
"邀请协作者",
|
||||
"移除协作者",
|
||||
"删除家族树",
|
||||
"清空数据"
|
||||
],
|
||||
EDITOR: [
|
||||
"查看所有信息",
|
||||
"搜索和筛选",
|
||||
"导出和打印",
|
||||
"添加成员",
|
||||
"编辑成员",
|
||||
"删除成员",
|
||||
"导入数据"
|
||||
],
|
||||
VIEWER: [
|
||||
"查看所有信息",
|
||||
"搜索和筛选",
|
||||
"导出和打印"
|
||||
]
|
||||
};
|
||||
return allPermissions[role] || [];
|
||||
}
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/members/route.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
||||
"use strict";
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -197,10 +197,26 @@ const authOptions = {
|
||||
"use strict";
|
||||
|
||||
__turbopack_context__.s([
|
||||
"canDeleteTree",
|
||||
()=>canDeleteTree,
|
||||
"canEditTree",
|
||||
()=>canEditTree,
|
||||
"canInviteCollaborators",
|
||||
()=>canInviteCollaborators,
|
||||
"checkPermission",
|
||||
()=>checkPermission,
|
||||
"getRoleDescription",
|
||||
()=>getRoleDescription,
|
||||
"getRoleDisplayName",
|
||||
()=>getRoleDisplayName,
|
||||
"getRolePermissions",
|
||||
()=>getRolePermissions,
|
||||
"permissions",
|
||||
()=>permissions,
|
||||
"requireAuth",
|
||||
()=>requireAuth
|
||||
()=>requireAuth,
|
||||
"requirePermission",
|
||||
()=>requirePermission
|
||||
]);
|
||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/prisma.ts [app-route] (ecmascript)");
|
||||
var __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/@prisma/client [external] (@prisma/client, cjs)");
|
||||
@@ -250,6 +266,163 @@ async function requireAuth(userId) {
|
||||
}
|
||||
return userId;
|
||||
}
|
||||
const permissions = {
|
||||
// ==================== 增加权限 ====================
|
||||
/**
|
||||
* 是否可以创建/添加成员
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canCreate: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
/**
|
||||
* 是否可以创建家族树
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canCreateTree: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
// ==================== 修改权限 ====================
|
||||
/**
|
||||
* 是否可以编辑/更新成员信息
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canUpdate: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
/**
|
||||
* 是否可以导入数据
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canImport: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
// ==================== 删除权限 ====================
|
||||
/**
|
||||
* 是否可以删除成员
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canDeleteMember: (role)=>{
|
||||
return role === "OWNER" || role === "EDITOR";
|
||||
},
|
||||
/**
|
||||
* 是否可以删除家族树
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canDeleteTree: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
/**
|
||||
* 是否可以清空数据
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canClearData: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
// ==================== 协作者管理权限 ====================
|
||||
/**
|
||||
* 是否可以邀请协作者
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canInviteCollaborators: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
/**
|
||||
* 是否可以移除协作者
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canRemoveCollaborators: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
/**
|
||||
* 是否可以管理协作者(邀请和移除)
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canManageCollaborators: (role)=>{
|
||||
return role === "OWNER";
|
||||
},
|
||||
// ==================== 查看权限 ====================
|
||||
/**
|
||||
* 是否可以查看信息
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canView: (role)=>{
|
||||
return true //
|
||||
;
|
||||
},
|
||||
/**
|
||||
* 是否可以搜索和查询
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canSearch: (role)=>{
|
||||
return true //
|
||||
;
|
||||
},
|
||||
/**
|
||||
* 是否可以导出数据
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canExport: (role)=>{
|
||||
return true //
|
||||
;
|
||||
},
|
||||
/**
|
||||
* 是否可以打印
|
||||
* OWNER | EDITOR | VIEWER
|
||||
*/ canPrint: (role)=>{
|
||||
return true //
|
||||
;
|
||||
}
|
||||
};
|
||||
function canEditTree(role) {
|
||||
return permissions.canUpdate(role);
|
||||
}
|
||||
function canDeleteTree(role) {
|
||||
return permissions.canDeleteTree(role);
|
||||
}
|
||||
function canInviteCollaborators(role) {
|
||||
return permissions.canInviteCollaborators(role);
|
||||
}
|
||||
function requirePermission(role, permissionCheck, errorMessage = "您没有权限执行此操作") {
|
||||
if (!permissionCheck(role)) {
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
}
|
||||
function getRoleDisplayName(role) {
|
||||
const roleNames = {
|
||||
OWNER: "所有者",
|
||||
EDITOR: "编辑者",
|
||||
VIEWER: "查看者"
|
||||
};
|
||||
return roleNames[role] || role;
|
||||
}
|
||||
function getRoleDescription(role) {
|
||||
const descriptions = {
|
||||
OWNER: "拥有全部权限,可以管理家族树和协作者",
|
||||
EDITOR: "可以添加、编辑和删除成员,但不能删除家族树或管理协作者",
|
||||
VIEWER: "只能查看、搜索和导出数据,不能进行任何修改操作"
|
||||
};
|
||||
return descriptions[role] || "";
|
||||
}
|
||||
function getRolePermissions(role) {
|
||||
const allPermissions = {
|
||||
OWNER: [
|
||||
"查看所有信息",
|
||||
"搜索和筛选",
|
||||
"导出和打印",
|
||||
"添加成员",
|
||||
"编辑成员",
|
||||
"删除成员",
|
||||
"导入数据",
|
||||
"邀请协作者",
|
||||
"移除协作者",
|
||||
"删除家族树",
|
||||
"清空数据"
|
||||
],
|
||||
EDITOR: [
|
||||
"查看所有信息",
|
||||
"搜索和筛选",
|
||||
"导出和打印",
|
||||
"添加成员",
|
||||
"编辑成员",
|
||||
"删除成员",
|
||||
"导入数据"
|
||||
],
|
||||
VIEWER: [
|
||||
"查看所有信息",
|
||||
"搜索和筛选",
|
||||
"导出和打印"
|
||||
]
|
||||
};
|
||||
return allPermissions[role] || [];
|
||||
}
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/activity-logs/route.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
||||
"use strict";
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,458 @@
|
||||
module.exports = [
|
||||
"[externals]/next/dist/compiled/next-server/app-route-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-route-turbo.runtime.dev.js, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("next/dist/compiled/next-server/app-route-turbo.runtime.dev.js", () => require("next/dist/compiled/next-server/app-route-turbo.runtime.dev.js"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/next/dist/compiled/@opentelemetry/api [external] (next/dist/compiled/@opentelemetry/api, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("next/dist/compiled/@opentelemetry/api", () => require("next/dist/compiled/@opentelemetry/api"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[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/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;
|
||||
}),
|
||||
"[externals]/next/dist/shared/lib/no-fallback-error.external.js [external] (next/dist/shared/lib/no-fallback-error.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("next/dist/shared/lib/no-fallback-error.external.js", () => require("next/dist/shared/lib/no-fallback-error.external.js"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[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]/util [external] (util, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("util", () => require("util"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/url [external] (url, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("url", () => require("url"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/http [external] (http, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("http", () => require("http"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/crypto [external] (crypto, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("crypto", () => require("crypto"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/assert [external] (assert, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("assert", () => require("assert"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/querystring [external] (querystring, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("querystring", () => require("querystring"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/buffer [external] (buffer, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("buffer", () => require("buffer"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/zlib [external] (zlib, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("zlib", () => require("zlib"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/https [external] (https, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("https", () => require("https"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/events [external] (events, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("events", () => require("events"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/@prisma/client [external] (@prisma/client, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("@prisma/client", () => require("@prisma/client"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/lib/prisma.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
||||
"use strict";
|
||||
|
||||
__turbopack_context__.s([
|
||||
"prisma",
|
||||
()=>prisma
|
||||
]);
|
||||
var __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/@prisma/client [external] (@prisma/client, cjs)");
|
||||
;
|
||||
const globalForPrisma = globalThis;
|
||||
const prisma = globalForPrisma.prisma ?? new __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$29$__["PrismaClient"]();
|
||||
if ("TURBOPACK compile-time truthy", 1) globalForPrisma.prisma = prisma;
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/lib/auth.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
||||
"use strict";
|
||||
|
||||
__turbopack_context__.s([
|
||||
"authOptions",
|
||||
()=>authOptions
|
||||
]);
|
||||
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$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$providers$2f$credentials$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next-auth@4.24.13_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__nodemailer@7_3c43d6bc4ecce810d1d16651fe207b00/node_modules/next-auth/providers/credentials.js [app-route] (ecmascript)");
|
||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/prisma.ts [app-route] (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$bcryptjs$40$3$2e$0$2e$3$2f$node_modules$2f$bcryptjs$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/bcryptjs@3.0.3/node_modules/bcryptjs/index.js [app-route] (ecmascript)");
|
||||
;
|
||||
;
|
||||
;
|
||||
const authOptions = {
|
||||
providers: [
|
||||
(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$providers$2f$credentials$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"])({
|
||||
name: "credentials",
|
||||
credentials: {
|
||||
email: {
|
||||
label: "Email",
|
||||
type: "email"
|
||||
},
|
||||
password: {
|
||||
label: "Password",
|
||||
type: "password"
|
||||
}
|
||||
},
|
||||
async authorize (credentials) {
|
||||
if (!credentials?.email || !credentials?.password) {
|
||||
throw new Error("请输入邮箱和密码");
|
||||
}
|
||||
const user = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].user.findUnique({
|
||||
where: {
|
||||
email: credentials.email
|
||||
}
|
||||
});
|
||||
if (!user || !user.password) {
|
||||
throw new Error("用户不存在");
|
||||
}
|
||||
const isValid = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$bcryptjs$40$3$2e$0$2e$3$2f$node_modules$2f$bcryptjs$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].compare(credentials.password, user.password);
|
||||
if (!isValid) {
|
||||
throw new Error("密码错误");
|
||||
}
|
||||
return {
|
||||
id: user.id,
|
||||
email: user.email,
|
||||
name: user.name
|
||||
};
|
||||
}
|
||||
})
|
||||
],
|
||||
session: {
|
||||
strategy: "jwt"
|
||||
},
|
||||
pages: {
|
||||
signIn: "/auth/signin"
|
||||
},
|
||||
callbacks: {
|
||||
async jwt ({ token, user }) {
|
||||
if (user) {
|
||||
token.id = user.id;
|
||||
}
|
||||
return token;
|
||||
},
|
||||
async session ({ session, token }) {
|
||||
if (session.user) {
|
||||
session.user.id = token.id;
|
||||
}
|
||||
return session;
|
||||
}
|
||||
}
|
||||
};
|
||||
}),
|
||||
"[externals]/fs [external] (fs, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("fs", () => require("fs"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/stream [external] (stream, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("stream", () => require("stream"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/net [external] (net, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("net", () => require("net"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/dns [external] (dns, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("dns", () => require("dns"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/os [external] (os, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("os", () => require("os"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/path [external] (path, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("path", () => require("path"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/tls [external] (tls, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("tls", () => require("tls"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[externals]/child_process [external] (child_process, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("child_process", () => require("child_process"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/lib/mail.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
||||
"use strict";
|
||||
|
||||
__turbopack_context__.s([
|
||||
"sendInvitationEmail",
|
||||
()=>sendInvitationEmail
|
||||
]);
|
||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$nodemailer$40$7$2e$0$2e$10$2f$node_modules$2f$nodemailer$2f$lib$2f$nodemailer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/nodemailer@7.0.10/node_modules/nodemailer/lib/nodemailer.js [app-route] (ecmascript)");
|
||||
;
|
||||
const transporter = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$nodemailer$40$7$2e$0$2e$10$2f$node_modules$2f$nodemailer$2f$lib$2f$nodemailer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].createTransport({
|
||||
host: process.env.SMTP_HOST,
|
||||
port: parseInt(process.env.SMTP_PORT || '465'),
|
||||
secure: true,
|
||||
auth: {
|
||||
user: process.env.SMTP_USER,
|
||||
pass: process.env.SMTP_PASS
|
||||
}
|
||||
});
|
||||
async function sendInvitationEmail(to, inviterName, treeName, role, password) {
|
||||
const loginUrl = `${process.env.NEXTAUTH_URL}/auth/signin`;
|
||||
const roleText = role === 'EDITOR' ? '编辑者' : '查看者';
|
||||
let htmlContent = `
|
||||
<div style="font-family: sans-serif; padding: 20px;">
|
||||
<h2>家族树协作邀请</h2>
|
||||
<p>您好,</p>
|
||||
<p><strong>${inviterName}</strong> 邀请您作为 <strong>${roleText}</strong> 加入家族树 <strong>"${treeName}"</strong>。</p>
|
||||
`;
|
||||
if (password) {
|
||||
htmlContent += `
|
||||
<p>您的初始登录密码为:<br>
|
||||
<strong style="font-size: 18px; background: #eee; padding: 5px 10px; border-radius: 4px;">${password}</strong>
|
||||
</p>
|
||||
<p>请使用您的邮箱 (${to}) 和上述密码登录。</p>
|
||||
`;
|
||||
} else {
|
||||
htmlContent += `
|
||||
<p>您可以使用现有的账号登录查看。</p>
|
||||
`;
|
||||
}
|
||||
htmlContent += `
|
||||
<p>
|
||||
<a href="${loginUrl}" style="display: inline-block; background: #2563eb; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;">
|
||||
立即登录
|
||||
</a>
|
||||
</p>
|
||||
<p style="color: #666; font-size: 12px; margin-top: 30px;">此邮件由中华家谱系统自动发送,请勿回复。</p>
|
||||
</div>
|
||||
`;
|
||||
await transporter.sendMail({
|
||||
from: process.env.SMTP_FROM,
|
||||
to,
|
||||
subject: `[中华家谱] ${inviterName} 邀请您协作`,
|
||||
html: htmlContent
|
||||
});
|
||||
}
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/invite/route.ts [app-route] (ecmascript)", ((__turbopack_context__) => {
|
||||
"use strict";
|
||||
|
||||
__turbopack_context__.s([
|
||||
"POST",
|
||||
()=>POST
|
||||
]);
|
||||
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$server$2e$js__$5b$app$2d$route$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/server.js [app-route] (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$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$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next-auth@4.24.13_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__nodemailer@7_3c43d6bc4ecce810d1d16651fe207b00/node_modules/next-auth/index.js [app-route] (ecmascript)");
|
||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$auth$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/auth.ts [app-route] (ecmascript)");
|
||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/prisma.ts [app-route] (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$bcryptjs$40$3$2e$0$2e$3$2f$node_modules$2f$bcryptjs$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/bcryptjs@3.0.3/node_modules/bcryptjs/index.js [app-route] (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$zod$40$3$2e$25$2e$76$2f$node_modules$2f$zod$2f$v3$2f$external$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$export__$2a$__as__z$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js [app-route] (ecmascript) <export * as z>");
|
||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$mail$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/lib/mail.ts [app-route] (ecmascript)");
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
const inviteSchema = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$zod$40$3$2e$25$2e$76$2f$node_modules$2f$zod$2f$v3$2f$external$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$export__$2a$__as__z$3e$__["z"].object({
|
||||
email: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$zod$40$3$2e$25$2e$76$2f$node_modules$2f$zod$2f$v3$2f$external$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$export__$2a$__as__z$3e$__["z"].string().email("请输入有效的邮箱地址"),
|
||||
role: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$zod$40$3$2e$25$2e$76$2f$node_modules$2f$zod$2f$v3$2f$external$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$export__$2a$__as__z$3e$__["z"].enum([
|
||||
"EDITOR",
|
||||
"VIEWER"
|
||||
], {
|
||||
errorMap: ()=>({
|
||||
message: "请选择有效的角色"
|
||||
})
|
||||
}),
|
||||
password: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$zod$40$3$2e$25$2e$76$2f$node_modules$2f$zod$2f$v3$2f$external$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$export__$2a$__as__z$3e$__["z"].string().min(6, "密码至少需要6位").optional()
|
||||
});
|
||||
async function POST(req, { params }) {
|
||||
try {
|
||||
const session = await (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$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["getServerSession"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$auth$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["authOptions"]);
|
||||
if (!session?.user?.id) {
|
||||
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$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$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
||||
error: "未授权"
|
||||
}, {
|
||||
status: 401
|
||||
});
|
||||
}
|
||||
const { treeId } = await params;
|
||||
const body = await req.json();
|
||||
const { email, role, password } = inviteSchema.parse(body);
|
||||
// 1. 检查权限
|
||||
const tree = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].familyTree.findFirst({
|
||||
where: {
|
||||
id: treeId,
|
||||
ownerId: session.user.id
|
||||
}
|
||||
});
|
||||
if (!tree) {
|
||||
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$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$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
||||
error: "家族树不存在或无权邀请"
|
||||
}, {
|
||||
status: 404
|
||||
});
|
||||
}
|
||||
// 2. 检查目标用户是否存在
|
||||
let user = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].user.findUnique({
|
||||
where: {
|
||||
email
|
||||
}
|
||||
});
|
||||
let isNewUser = false;
|
||||
// 3. 如果用户不存在,创建新用户
|
||||
if (!user) {
|
||||
if (!password) {
|
||||
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$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$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
||||
error: "新用户必须设置初始密码"
|
||||
}, {
|
||||
status: 400
|
||||
});
|
||||
}
|
||||
const hashedPassword = await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$bcryptjs$40$3$2e$0$2e$3$2f$node_modules$2f$bcryptjs$2f$index$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["hash"])(password, 12);
|
||||
user = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].user.create({
|
||||
data: {
|
||||
email,
|
||||
password: hashedPassword,
|
||||
name: email.split('@')[0]
|
||||
}
|
||||
});
|
||||
isNewUser = true;
|
||||
}
|
||||
// 4. 检查是否已经是协作者或所有者
|
||||
if (user.id === tree.ownerId) {
|
||||
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$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$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
||||
error: "不能邀请自己"
|
||||
}, {
|
||||
status: 400
|
||||
});
|
||||
}
|
||||
const existingCollaborator = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].treeCollaborator.findUnique({
|
||||
where: {
|
||||
treeId_userId: {
|
||||
treeId,
|
||||
userId: user.id
|
||||
}
|
||||
}
|
||||
});
|
||||
if (existingCollaborator) {
|
||||
// 如果已存在,更新角色
|
||||
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].treeCollaborator.update({
|
||||
where: {
|
||||
id: existingCollaborator.id
|
||||
},
|
||||
data: {
|
||||
role
|
||||
}
|
||||
});
|
||||
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$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$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
||||
message: "用户已是协作者,角色已更新",
|
||||
isNewUser: false
|
||||
});
|
||||
}
|
||||
// 5. 添加协作者
|
||||
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].treeCollaborator.create({
|
||||
data: {
|
||||
treeId,
|
||||
userId: user.id,
|
||||
role,
|
||||
invitedBy: session.user.id
|
||||
}
|
||||
});
|
||||
// 6. 发送邀请邮件
|
||||
try {
|
||||
await (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$lib$2f$mail$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["sendInvitationEmail"])(email, session.user.name || session.user.email || "用户", tree.name, role, isNewUser ? password : undefined);
|
||||
} catch (emailError) {
|
||||
console.error("发送邀请邮件失败:", emailError);
|
||||
// 邮件发送失败不影响邀请结果,但记录日志
|
||||
}
|
||||
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$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$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
||||
message: isNewUser ? "新用户已创建并添加为协作者,邮件已发送" : "用户已添加为协作者,邮件已发送",
|
||||
isNewUser
|
||||
}, {
|
||||
status: 201
|
||||
});
|
||||
} catch (error) {
|
||||
if (error instanceof __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$zod$40$3$2e$25$2e$76$2f$node_modules$2f$zod$2f$v3$2f$external$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__$3c$export__$2a$__as__z$3e$__["z"].ZodError) {
|
||||
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$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$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
||||
error: error.errors[0].message
|
||||
}, {
|
||||
status: 400
|
||||
});
|
||||
}
|
||||
console.error("邀请协作者失败:", error);
|
||||
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$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$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({
|
||||
error: "邀请协作者失败"
|
||||
}, {
|
||||
status: 500
|
||||
});
|
||||
}
|
||||
}
|
||||
}),
|
||||
];
|
||||
|
||||
//# sourceMappingURL=%5Broot-of-the-server%5D__f394cfc4._.js.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -3089,7 +3089,7 @@ function DashboardPage() {
|
||||
lineNumber: 192,
|
||||
columnNumber: 15
|
||||
}, this),
|
||||
(currentTree?.currentUserRole === "OWNER" || currentTree?.currentUserRole === "EDITOR") && /*#__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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
permissions.canCreate(currentTree?.currentUserRole) && /*#__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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
href: "/members/new",
|
||||
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"], {
|
||||
className: "gap-2 bg-primary text-primary-foreground hover:bg-primary/90",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -407,7 +407,7 @@ function SiteHeader() {
|
||||
children: "所有者"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 69,
|
||||
lineNumber: 70,
|
||||
columnNumber: 16
|
||||
}, this);
|
||||
case "EDITOR":
|
||||
@@ -416,7 +416,7 @@ function SiteHeader() {
|
||||
children: "编辑"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 71,
|
||||
lineNumber: 72,
|
||||
columnNumber: 16
|
||||
}, this);
|
||||
case "VIEWER":
|
||||
@@ -425,7 +425,7 @@ function SiteHeader() {
|
||||
children: "查看"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 73,
|
||||
lineNumber: 74,
|
||||
columnNumber: 16
|
||||
}, this);
|
||||
default:
|
||||
@@ -578,26 +578,26 @@ function SiteHeader() {
|
||||
className: "h-5 w-5"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 229,
|
||||
lineNumber: 230,
|
||||
columnNumber: 15
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 228,
|
||||
lineNumber: 229,
|
||||
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"])("span", {
|
||||
className: "text-xl font-serif font-bold tracking-tight",
|
||||
children: "华夏谱"
|
||||
children: "华夏家谱"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 231,
|
||||
lineNumber: 232,
|
||||
columnNumber: 13
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 227,
|
||||
lineNumber: 228,
|
||||
columnNumber: 11
|
||||
}, this),
|
||||
session && familyTrees.length > 0 && /*#__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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], {
|
||||
@@ -613,25 +613,25 @@ function SiteHeader() {
|
||||
children: currentTree?.name || '选择家族树'
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 239,
|
||||
lineNumber: 240,
|
||||
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$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$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], {
|
||||
className: "h-4 w-4 flex-shrink-0"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 240,
|
||||
lineNumber: 241,
|
||||
columnNumber: 19
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 238,
|
||||
lineNumber: 239,
|
||||
columnNumber: 17
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 237,
|
||||
lineNumber: 238,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], {
|
||||
@@ -642,12 +642,12 @@ function SiteHeader() {
|
||||
children: "我的家族树"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 244,
|
||||
lineNumber: 245,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 245,
|
||||
lineNumber: 246,
|
||||
columnNumber: 17
|
||||
}, this),
|
||||
familyTrees.map((tree)=>/*#__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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
|
||||
@@ -667,14 +667,14 @@ function SiteHeader() {
|
||||
children: tree.name
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 258,
|
||||
lineNumber: 259,
|
||||
columnNumber: 23
|
||||
}, this),
|
||||
getRoleBadge(tree.currentUserRole)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 257,
|
||||
lineNumber: 258,
|
||||
columnNumber: 21
|
||||
}, 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"])("div", {
|
||||
@@ -685,7 +685,7 @@ function SiteHeader() {
|
||||
children: "✓"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 263,
|
||||
lineNumber: 264,
|
||||
columnNumber: 25
|
||||
}, this),
|
||||
tree.ownerId === session?.user?.id && /*#__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"], {
|
||||
@@ -698,29 +698,29 @@ function SiteHeader() {
|
||||
className: "h-3 w-3"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 273,
|
||||
lineNumber: 274,
|
||||
columnNumber: 27
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 266,
|
||||
lineNumber: 267,
|
||||
columnNumber: 25
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 261,
|
||||
lineNumber: 262,
|
||||
columnNumber: 21
|
||||
}, this)
|
||||
]
|
||||
}, tree.id, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 247,
|
||||
lineNumber: 248,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 279,
|
||||
lineNumber: 280,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
|
||||
@@ -731,32 +731,32 @@ function SiteHeader() {
|
||||
className: "h-4 w-4 mr-2"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 284,
|
||||
lineNumber: 285,
|
||||
columnNumber: 19
|
||||
}, this),
|
||||
"创建新家族树"
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 280,
|
||||
lineNumber: 281,
|
||||
columnNumber: 17
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 243,
|
||||
lineNumber: 244,
|
||||
columnNumber: 15
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 236,
|
||||
lineNumber: 237,
|
||||
columnNumber: 13
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 226,
|
||||
lineNumber: 227,
|
||||
columnNumber: 9
|
||||
}, 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"])("nav", {
|
||||
@@ -768,7 +768,7 @@ function SiteHeader() {
|
||||
children: "总览 (Overview)"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 293,
|
||||
lineNumber: 294,
|
||||
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$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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
@@ -777,7 +777,7 @@ function SiteHeader() {
|
||||
children: "族谱 (Tree)"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 299,
|
||||
lineNumber: 300,
|
||||
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$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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
@@ -786,7 +786,7 @@ function SiteHeader() {
|
||||
children: "成员 (Members)"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 302,
|
||||
lineNumber: 303,
|
||||
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$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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
@@ -795,13 +795,13 @@ function SiteHeader() {
|
||||
children: "大事记 (Timeline)"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 305,
|
||||
lineNumber: 306,
|
||||
columnNumber: 11
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 292,
|
||||
lineNumber: 293,
|
||||
columnNumber: 9
|
||||
}, 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"])("div", {
|
||||
@@ -815,7 +815,7 @@ function SiteHeader() {
|
||||
className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 312,
|
||||
lineNumber: 313,
|
||||
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$input$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Input"], {
|
||||
@@ -826,7 +826,7 @@ function SiteHeader() {
|
||||
className: "h-9 w-64 rounded-full bg-muted pl-9 text-sm focus-visible:ring-primary"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 313,
|
||||
lineNumber: 314,
|
||||
columnNumber: 13
|
||||
}, this),
|
||||
showResults && searchResults.length > 0 && /*#__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", {
|
||||
@@ -847,7 +847,7 @@ function SiteHeader() {
|
||||
children: member.fullName
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 333,
|
||||
lineNumber: 334,
|
||||
columnNumber: 27
|
||||
}, 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"])("span", {
|
||||
@@ -855,7 +855,7 @@ function SiteHeader() {
|
||||
children: member.gender === "MALE" ? "男" : "女"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 334,
|
||||
lineNumber: 335,
|
||||
columnNumber: 27
|
||||
}, 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"])("span", {
|
||||
@@ -867,13 +867,13 @@ function SiteHeader() {
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 337,
|
||||
lineNumber: 338,
|
||||
columnNumber: 27
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 332,
|
||||
lineNumber: 333,
|
||||
columnNumber: 25
|
||||
}, 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"])("p", {
|
||||
@@ -884,28 +884,28 @@ function SiteHeader() {
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 339,
|
||||
lineNumber: 340,
|
||||
columnNumber: 25
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 331,
|
||||
lineNumber: 332,
|
||||
columnNumber: 23
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 330,
|
||||
lineNumber: 331,
|
||||
columnNumber: 21
|
||||
}, this)
|
||||
}, member.id, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 325,
|
||||
lineNumber: 326,
|
||||
columnNumber: 19
|
||||
}, this))
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 323,
|
||||
lineNumber: 324,
|
||||
columnNumber: 15
|
||||
}, this),
|
||||
showResults && searchQuery && searchResults.length === 0 && /*#__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", {
|
||||
@@ -913,13 +913,13 @@ function SiteHeader() {
|
||||
children: "未找到匹配的成员"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 352,
|
||||
lineNumber: 353,
|
||||
columnNumber: 15
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 311,
|
||||
lineNumber: 312,
|
||||
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$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], {
|
||||
@@ -931,7 +931,7 @@ function SiteHeader() {
|
||||
className: "h-5 w-5"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 359,
|
||||
lineNumber: 360,
|
||||
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"])("span", {
|
||||
@@ -939,13 +939,13 @@ function SiteHeader() {
|
||||
children: "Notifications"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 360,
|
||||
lineNumber: 361,
|
||||
columnNumber: 13
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 358,
|
||||
lineNumber: 359,
|
||||
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$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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
@@ -959,7 +959,7 @@ function SiteHeader() {
|
||||
className: "h-5 w-5"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 365,
|
||||
lineNumber: 366,
|
||||
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"])("span", {
|
||||
@@ -967,18 +967,18 @@ function SiteHeader() {
|
||||
children: "Relationship Calculator"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 366,
|
||||
lineNumber: 367,
|
||||
columnNumber: 15
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 364,
|
||||
lineNumber: 365,
|
||||
columnNumber: 13
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 363,
|
||||
lineNumber: 364,
|
||||
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$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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
@@ -992,7 +992,7 @@ function SiteHeader() {
|
||||
className: "h-5 w-5"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 372,
|
||||
lineNumber: 373,
|
||||
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"])("span", {
|
||||
@@ -1000,18 +1000,18 @@ function SiteHeader() {
|
||||
children: "Settings"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 373,
|
||||
lineNumber: 374,
|
||||
columnNumber: 15
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 371,
|
||||
lineNumber: 372,
|
||||
columnNumber: 13
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 370,
|
||||
lineNumber: 371,
|
||||
columnNumber: 11
|
||||
}, this),
|
||||
status === "loading" ? /*#__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$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Avatar"], {
|
||||
@@ -1020,12 +1020,12 @@ function SiteHeader() {
|
||||
children: "..."
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 379,
|
||||
lineNumber: 380,
|
||||
columnNumber: 15
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 378,
|
||||
lineNumber: 379,
|
||||
columnNumber: 13
|
||||
}, this) : session ? /*#__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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenu"], {
|
||||
children: [
|
||||
@@ -1042,30 +1042,30 @@ function SiteHeader() {
|
||||
alt: session.user?.name || "User"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 386,
|
||||
lineNumber: 387,
|
||||
columnNumber: 21
|
||||
}, 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$avatar$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AvatarFallback"], {
|
||||
children: getUserInitial()
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 387,
|
||||
lineNumber: 388,
|
||||
columnNumber: 21
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 385,
|
||||
lineNumber: 386,
|
||||
columnNumber: 19
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 384,
|
||||
lineNumber: 385,
|
||||
columnNumber: 17
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 383,
|
||||
lineNumber: 384,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuContent"], {
|
||||
@@ -1083,7 +1083,7 @@ function SiteHeader() {
|
||||
children: session.user?.name || "用户"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 394,
|
||||
lineNumber: 395,
|
||||
columnNumber: 21
|
||||
}, 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"])("p", {
|
||||
@@ -1091,23 +1091,23 @@ function SiteHeader() {
|
||||
children: session.user?.email
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 395,
|
||||
lineNumber: 396,
|
||||
columnNumber: 21
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 393,
|
||||
lineNumber: 394,
|
||||
columnNumber: 19
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 392,
|
||||
lineNumber: 393,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 400,
|
||||
lineNumber: 401,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
|
||||
@@ -1120,30 +1120,30 @@ function SiteHeader() {
|
||||
className: "mr-2 h-4 w-4"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 403,
|
||||
lineNumber: 404,
|
||||
columnNumber: 21
|
||||
}, 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"])("span", {
|
||||
children: "系统设置"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 404,
|
||||
lineNumber: 405,
|
||||
columnNumber: 21
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 402,
|
||||
lineNumber: 403,
|
||||
columnNumber: 19
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 401,
|
||||
lineNumber: 402,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuSeparator"], {}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 407,
|
||||
lineNumber: 408,
|
||||
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$dropdown$2d$menu$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DropdownMenuItem"], {
|
||||
@@ -1154,32 +1154,32 @@ function SiteHeader() {
|
||||
className: "mr-2 h-4 w-4"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 409,
|
||||
lineNumber: 410,
|
||||
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"])("span", {
|
||||
children: "退出登录"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 410,
|
||||
lineNumber: 411,
|
||||
columnNumber: 19
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 408,
|
||||
lineNumber: 409,
|
||||
columnNumber: 17
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 391,
|
||||
lineNumber: 392,
|
||||
columnNumber: 15
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 382,
|
||||
lineNumber: 383,
|
||||
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$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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
href: "/auth/signin",
|
||||
@@ -1189,29 +1189,29 @@ function SiteHeader() {
|
||||
children: "登录"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 416,
|
||||
lineNumber: 417,
|
||||
columnNumber: 15
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 415,
|
||||
lineNumber: 416,
|
||||
columnNumber: 13
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 310,
|
||||
lineNumber: 311,
|
||||
columnNumber: 9
|
||||
}, this)
|
||||
]
|
||||
}, void 0, true, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 225,
|
||||
lineNumber: 226,
|
||||
columnNumber: 7
|
||||
}, this)
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx",
|
||||
lineNumber: 224,
|
||||
lineNumber: 225,
|
||||
columnNumber: 5
|
||||
}, this);
|
||||
}
|
||||
@@ -3441,8 +3441,8 @@ function TimelinePage() {
|
||||
columnNumber: 27
|
||||
}, 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"])("span", {
|
||||
className: `text-xs px-1.5 py-0.5 rounded ${event.member.gender === "male" ? "bg-blue-100 text-blue-700" : "bg-pink-100 text-pink-700"}`,
|
||||
children: event.member.gender === "male" ? "男" : "女"
|
||||
className: `text-xs px-1.5 py-0.5 rounded ${event.member.gender === "MALE" ? "bg-blue-100 text-blue-700" : "bg-pink-100 text-pink-700"}`,
|
||||
children: event.member.gender === "MALE" ? "男" : "女"
|
||||
}, void 0, false, {
|
||||
fileName: "[project]/Documents/go-new/chinese-family-tree/app/timeline/page.tsx",
|
||||
lineNumber: 544,
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -4591,7 +4591,7 @@ __turbopack_context__.s([
|
||||
()=>MemberProfilePage
|
||||
]);
|
||||
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$client$2f$app$2d$dir$2f$link$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/client/app-dir/link.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$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$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/navigation.js [app-ssr] (ecmascript)");
|
||||
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/context/family-context.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$site$2d$header$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/site-header.tsx [app-ssr] (ecmascript)");
|
||||
@@ -4607,7 +4607,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch
|
||||
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$images$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Images$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/images.js [app-ssr] (ecmascript) <export default as Images>");
|
||||
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$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$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/book-open.js [app-ssr] (ecmascript) <export default as BookOpen>");
|
||||
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$user$2d$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__UserPlus$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/user-plus.js [app-ssr] (ecmascript) <export default as UserPlus>");
|
||||
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$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$components$2f$members$2f$photo$2d$gallery$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/members/photo-gallery.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$members$2f$story$2d$manager$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/members/story-manager.tsx [app-ssr] (ecmascript)");
|
||||
@@ -4625,10 +4624,10 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
function MemberProfilePage() {
|
||||
const { id } = (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$ssr$5d$__$28$ecmascript$29$__["useParams"])();
|
||||
const { getMember, updateMember, deleteMember, treeData } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])();
|
||||
const { treeData, currentTree, getMember, updateMember, deleteMember } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useFamily"])();
|
||||
const role = currentTree?.currentUserRole;
|
||||
const { showConfirm } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$alert$2d$dialog$2d$custom$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useDialog"])();
|
||||
const router = (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$ssr$5d$__$28$ecmascript$29$__["useRouter"])();
|
||||
const [isEditing, setIsEditing] = (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);
|
||||
@@ -5304,7 +5303,7 @@ function MemberProfilePage() {
|
||||
lineNumber: 287,
|
||||
columnNumber: 19
|
||||
}, this),
|
||||
member.fatherId ? /*#__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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
member.fatherId ? /*#__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"])(Link, {
|
||||
href: `/members/${member.fatherId}`,
|
||||
className: "text-lg font-serif font-bold hover:underline text-primary",
|
||||
children: getMember(member.fatherId)?.fullName || member.fatherId
|
||||
@@ -5344,7 +5343,7 @@ function MemberProfilePage() {
|
||||
lineNumber: 306,
|
||||
columnNumber: 19
|
||||
}, this),
|
||||
member.motherId ? /*#__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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
member.motherId ? /*#__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"])(Link, {
|
||||
href: `/members/${member.motherId}`,
|
||||
className: "text-lg font-serif font-bold hover:underline text-primary",
|
||||
children: getMember(member.motherId)?.fullName || member.motherId
|
||||
@@ -5386,7 +5385,7 @@ function MemberProfilePage() {
|
||||
}, 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"])("div", {
|
||||
className: "flex flex-wrap gap-2",
|
||||
children: member.spouseIds?.length > 0 ? member.spouseIds.map((spouseId)=>/*#__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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
children: member.spouseIds?.length > 0 ? member.spouseIds.map((spouseId)=>/*#__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"])(Link, {
|
||||
href: `/members/${spouseId}`,
|
||||
className: "px-3 py-1 bg-muted rounded hover:bg-muted/80 text-sm font-medium",
|
||||
children: getMember(spouseId)?.fullName || spouseId
|
||||
@@ -5426,7 +5425,7 @@ function MemberProfilePage() {
|
||||
}, 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"])("div", {
|
||||
className: "flex flex-wrap gap-2",
|
||||
children: member.childrenIds?.length > 0 ? member.childrenIds.map((childId)=>/*#__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$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
||||
children: member.childrenIds?.length > 0 ? member.childrenIds.map((childId)=>/*#__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"])(Link, {
|
||||
href: `/members/${childId}`,
|
||||
className: "px-3 py-1 bg-muted rounded hover:bg-muted/80 text-sm font-medium",
|
||||
children: getMember(childId)?.fullName || childId
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
|
||||
module.exports = [
|
||||
"[externals]/next/dist/shared/lib/no-fallback-error.external.js [external] (next/dist/shared/lib/no-fallback-error.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const mod = __turbopack_context__.x("next/dist/shared/lib/no-fallback-error.external.js", () => require("next/dist/shared/lib/no-fallback-error.external.js"));
|
||||
|
||||
module.exports = mod;
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/layout.tsx [app-rsc] (ecmascript, Next.js Server Component)", ((__turbopack_context__) => {
|
||||
|
||||
__turbopack_context__.n(__turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/app/layout.tsx [app-rsc] (ecmascript)"));
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/loading.tsx [app-rsc] (ecmascript, Next.js Server Component)", ((__turbopack_context__) => {
|
||||
|
||||
__turbopack_context__.n(__turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/app/loading.tsx [app-rsc] (ecmascript)"));
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-rsc] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
||||
|
||||
const e = new Error("Could not parse module '[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx'\n\nUnterminated regexp literal");
|
||||
e.code = 'MODULE_UNPARSABLE';
|
||||
throw e;
|
||||
}),
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-rsc] (ecmascript, Next.js Server Component)", ((__turbopack_context__) => {
|
||||
|
||||
__turbopack_context__.n(__turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/app/settings/page.tsx [app-rsc] (ecmascript)"));
|
||||
}),
|
||||
];
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sections": []
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1,6 +1,31 @@
|
||||
globalThis.__BUILD_MANIFEST = {
|
||||
"pages": {
|
||||
"/_app": []
|
||||
"/_app": [
|
||||
"static/chunks/4e98a_next_dist_compiled_662da5c2._.js",
|
||||
"static/chunks/4e98a_next_dist_shared_lib_973712af._.js",
|
||||
"static/chunks/4e98a_next_dist_client_99076394._.js",
|
||||
"static/chunks/4e98a_next_dist_1a0ae50c._.js",
|
||||
"static/chunks/4e98a_next_app_020fddc2.js",
|
||||
"static/chunks/[next]_entry_page-loader_ts_97d2bbab._.js",
|
||||
"static/chunks/18ced_react-dom_797793fb._.js",
|
||||
"static/chunks/a0629__pnpm_2ca28523._.js",
|
||||
"static/chunks/[root-of-the-server]__dda05d7f._.js",
|
||||
"static/chunks/Documents_go-new_chinese-family-tree_pages__app_2da965e7._.js",
|
||||
"static/chunks/turbopack-Documents_go-new_chinese-family-tree_pages__app_424607fa._.js"
|
||||
],
|
||||
"/_error": [
|
||||
"static/chunks/4e98a_next_dist_compiled_662da5c2._.js",
|
||||
"static/chunks/4e98a_next_dist_shared_lib_1a19caea._.js",
|
||||
"static/chunks/4e98a_next_dist_client_99076394._.js",
|
||||
"static/chunks/4e98a_next_dist_c302a28c._.js",
|
||||
"static/chunks/4e98a_next_error_53e529e4.js",
|
||||
"static/chunks/[next]_entry_page-loader_ts_faadefb0._.js",
|
||||
"static/chunks/18ced_react-dom_797793fb._.js",
|
||||
"static/chunks/a0629__pnpm_2ca28523._.js",
|
||||
"static/chunks/[root-of-the-server]__d6f1a546._.js",
|
||||
"static/chunks/Documents_go-new_chinese-family-tree_pages__error_2da965e7._.js",
|
||||
"static/chunks/turbopack-Documents_go-new_chinese-family-tree_pages__error_4e6cc585._.js"
|
||||
]
|
||||
},
|
||||
"devFiles": [],
|
||||
"polyfillFiles": [
|
||||
|
||||
@@ -1 +1 @@
|
||||
self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/Documents/go-new/chinese-family-tree/app/auth/signin/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/members/new/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/members/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/tree/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}"
|
||||
self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/Documents/go-new/chinese-family-tree/app/auth/signin/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/members/[id]/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/members/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/settings/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/timeline/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ],\n \"[project]/Documents/go-new/chinese-family-tree/app/tree/page\": [\n \"static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\n \"static/media/797e433ab948586e-s.p.dbea232f.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}"
|
||||
@@ -8,10 +8,6 @@
|
||||
"static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
|
||||
"static/media/797e433ab948586e-s.p.dbea232f.woff2"
|
||||
],
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/members/new/page": [
|
||||
"static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
|
||||
"static/media/797e433ab948586e-s.p.dbea232f.woff2"
|
||||
],
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/members/page": [
|
||||
"static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
|
||||
"static/media/797e433ab948586e-s.p.dbea232f.woff2"
|
||||
@@ -20,6 +16,14 @@
|
||||
"static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
|
||||
"static/media/797e433ab948586e-s.p.dbea232f.woff2"
|
||||
],
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/settings/page": [
|
||||
"static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
|
||||
"static/media/797e433ab948586e-s.p.dbea232f.woff2"
|
||||
],
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/timeline/page": [
|
||||
"static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
|
||||
"static/media/797e433ab948586e-s.p.dbea232f.woff2"
|
||||
],
|
||||
"[project]/Documents/go-new/chinese-family-tree/app/tree/page": [
|
||||
"static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
|
||||
"static/media/797e433ab948586e-s.p.dbea232f.woff2"
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
{}
|
||||
{
|
||||
"/_app": "pages/_app.js",
|
||||
"/_document": "pages/_document.js",
|
||||
"/_error": "pages/_error.js"
|
||||
}
|
||||
Reference in New Issue
Block a user