2330 lines
197 KiB
JavaScript
2330 lines
197 KiB
JavaScript
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
|
|
"[project]/components/ui/input.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Input",
|
|
()=>Input
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/utils.ts [app-client] (ecmascript)");
|
|
;
|
|
;
|
|
function Input({ className, type, ...props }) {
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("input", {
|
|
type: type,
|
|
"data-slot": "input",
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])('file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]', 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive', className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/ui/input.tsx",
|
|
lineNumber: 7,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
_c = Input;
|
|
;
|
|
var _c;
|
|
__turbopack_context__.k.register(_c, "Input");
|
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
|
}
|
|
}),
|
|
"[project]/components/modules/auth/auth-modal.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"AuthModal",
|
|
()=>AuthModal
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/x.js [app-client] (ecmascript) <export default as X>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$phone$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Phone$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/phone.js [app-client] (ecmascript) <export default as Phone>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/user.js [app-client] (ecmascript) <export default as User>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$gift$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Gift$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/gift.js [app-client] (ecmascript) <export default as Gift>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/ui/button.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/ui/input.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/store.ts [app-client] (ecmascript)");
|
|
;
|
|
var _s = __turbopack_context__.k.signature();
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function AuthModal({ isOpen, onClose, defaultTab = "login" }) {
|
|
_s();
|
|
const [tab, setTab] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(defaultTab);
|
|
const [phone, setPhone] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("");
|
|
const [code, setCode] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("");
|
|
const [nickname, setNickname] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("");
|
|
const [referralCode, setReferralCode] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("");
|
|
const [error, setError] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("");
|
|
const [codeSent, setCodeSent] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const { login, register } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"])();
|
|
const handleSendCode = ()=>{
|
|
if (phone.length !== 11) {
|
|
setError("请输入正确的手机号");
|
|
return;
|
|
}
|
|
// Simulate sending verification code
|
|
setCodeSent(true);
|
|
setError("");
|
|
alert("验证码已发送,测试验证码: 123456");
|
|
};
|
|
const handleLogin = async ()=>{
|
|
setError("");
|
|
const success = await login(phone, code);
|
|
if (success) {
|
|
onClose();
|
|
} else {
|
|
setError("验证码错误或用户不存在,请先注册");
|
|
}
|
|
};
|
|
const handleRegister = async ()=>{
|
|
setError("");
|
|
if (!nickname.trim()) {
|
|
setError("请输入昵称");
|
|
return;
|
|
}
|
|
const success = await register(phone, nickname, referralCode || undefined);
|
|
if (success) {
|
|
onClose();
|
|
} else {
|
|
setError("该手机号已注册");
|
|
}
|
|
};
|
|
if (!isOpen) return null;
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "fixed inset-0 z-50 flex items-center justify-center p-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "absolute inset-0 bg-black/60 backdrop-blur-sm",
|
|
onClick: onClose
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 66,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative w-full max-w-md bg-[#0f2137] rounded-2xl border border-gray-700/50 overflow-hidden",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: onClose,
|
|
className: "absolute top-4 right-4 p-2 text-gray-400 hover:text-white transition-colors",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__["X"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 75,
|
|
columnNumber: 11
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 71,
|
|
columnNumber: 9
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex border-b border-gray-700/50",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>setTab("login"),
|
|
className: `flex-1 py-4 text-center transition-colors ${tab === "login" ? "text-white border-b-2 border-[#38bdac]" : "text-gray-400 hover:text-white"}`,
|
|
children: "登录"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 80,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>setTab("register"),
|
|
className: `flex-1 py-4 text-center transition-colors ${tab === "register" ? "text-white border-b-2 border-[#38bdac]" : "text-gray-400 hover:text-white"}`,
|
|
children: "注册"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 88,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 79,
|
|
columnNumber: 9
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-6",
|
|
children: tab === "login" ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-gray-400 text-sm mb-2",
|
|
children: "手机号"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 103,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$phone$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Phone$3e$__["Phone"], {
|
|
className: "absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-500"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 105,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Input"], {
|
|
type: "tel",
|
|
value: phone,
|
|
onChange: (e)=>setPhone(e.target.value),
|
|
placeholder: "请输入手机号",
|
|
className: "pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",
|
|
maxLength: 11
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 106,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 104,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 102,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-gray-400 text-sm mb-2",
|
|
children: "验证码"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 118,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex gap-3",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Input"], {
|
|
type: "text",
|
|
value: code,
|
|
onChange: (e)=>setCode(e.target.value),
|
|
placeholder: "请输入验证码",
|
|
className: "bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",
|
|
maxLength: 6
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 120,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
type: "button",
|
|
variant: "outline",
|
|
onClick: handleSendCode,
|
|
disabled: codeSent,
|
|
className: "whitespace-nowrap border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",
|
|
children: codeSent ? "已发送" : "获取验证码"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 128,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 119,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 117,
|
|
columnNumber: 15
|
|
}, this),
|
|
error && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-red-400 text-sm",
|
|
children: error
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 140,
|
|
columnNumber: 25
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: handleLogin,
|
|
className: "w-full bg-[#38bdac] hover:bg-[#2da396] text-white py-5",
|
|
children: "登录"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 142,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 101,
|
|
columnNumber: 13
|
|
}, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-gray-400 text-sm mb-2",
|
|
children: "手机号"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 149,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$phone$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Phone$3e$__["Phone"], {
|
|
className: "absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-500"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 151,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Input"], {
|
|
type: "tel",
|
|
value: phone,
|
|
onChange: (e)=>setPhone(e.target.value),
|
|
placeholder: "请输入手机号",
|
|
className: "pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",
|
|
maxLength: 11
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 152,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 150,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 148,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-gray-400 text-sm mb-2",
|
|
children: "昵称"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 164,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__["User"], {
|
|
className: "absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-500"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 166,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Input"], {
|
|
type: "text",
|
|
value: nickname,
|
|
onChange: (e)=>setNickname(e.target.value),
|
|
placeholder: "请输入昵称",
|
|
className: "pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 167,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 165,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 163,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-gray-400 text-sm mb-2",
|
|
children: "验证码"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 178,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex gap-3",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Input"], {
|
|
type: "text",
|
|
value: code,
|
|
onChange: (e)=>setCode(e.target.value),
|
|
placeholder: "请输入验证码",
|
|
className: "bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",
|
|
maxLength: 6
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 180,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
type: "button",
|
|
variant: "outline",
|
|
onClick: handleSendCode,
|
|
disabled: codeSent,
|
|
className: "whitespace-nowrap border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",
|
|
children: codeSent ? "已发送" : "获取验证码"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 188,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 179,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 177,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-gray-400 text-sm mb-2",
|
|
children: "邀请码 (选填)"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 201,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$gift$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Gift$3e$__["Gift"], {
|
|
className: "absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-500"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 203,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$input$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Input"], {
|
|
type: "text",
|
|
value: referralCode,
|
|
onChange: (e)=>setReferralCode(e.target.value),
|
|
placeholder: "填写邀请码可获得优惠",
|
|
className: "pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 204,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 202,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 200,
|
|
columnNumber: 15
|
|
}, this),
|
|
error && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-red-400 text-sm",
|
|
children: error
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 214,
|
|
columnNumber: 25
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: handleRegister,
|
|
className: "w-full bg-[#38bdac] hover:bg-[#2da396] text-white py-5",
|
|
children: "注册"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 216,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 147,
|
|
columnNumber: 13
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 99,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 69,
|
|
columnNumber: 7
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/auth/auth-modal.tsx",
|
|
lineNumber: 64,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
_s(AuthModal, "hnNVBzNYWTS41knoWqod7nGyFVc=", false, function() {
|
|
return [
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"]
|
|
];
|
|
});
|
|
_c = AuthModal;
|
|
var _c;
|
|
__turbopack_context__.k.register(_c, "AuthModal");
|
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
|
}
|
|
}),
|
|
"[project]/components/modules/payment/payment-modal.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"PaymentModal",
|
|
()=>PaymentModal
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/x.js [app-client] (ecmascript) <export default as X>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$check$2d$big$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__CheckCircle$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/circle-check-big.js [app-client] (ecmascript) <export default as CheckCircle>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bitcoin$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Bitcoin$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/bitcoin.js [app-client] (ecmascript) <export default as Bitcoin>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$globe$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Globe$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/globe.js [app-client] (ecmascript) <export default as Globe>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$copy$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Copy$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/copy.js [app-client] (ecmascript) <export default as Copy>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Check$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/check.js [app-client] (ecmascript) <export default as Check>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/ui/button.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/store.ts [app-client] (ecmascript)");
|
|
;
|
|
var _s = __turbopack_context__.k.signature();
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const WechatIcon = ()=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("svg", {
|
|
viewBox: "0 0 24 24",
|
|
className: "w-5 h-5",
|
|
fill: "currentColor",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("path", {
|
|
d: "M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 0 1 .213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 0 0 .167-.054l1.903-1.114a.864.864 0 0 1 .717-.098 10.16 10.16 0 0 0 2.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178A1.17 1.17 0 0 1 4.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178 1.17 1.17 0 0 1-1.162-1.178c0-.651.52-1.18 1.162-1.18zm5.34 2.867c-1.797-.052-3.746.512-5.28 1.786-1.72 1.428-2.687 3.72-1.78 6.22.942 2.453 3.666 4.229 6.884 4.229.826 0 1.622-.12 2.361-.336a.722.722 0 0 1 .598.082l1.584.926a.272.272 0 0 0 .14.047c.134 0 .24-.111.24-.247 0-.06-.023-.12-.038-.177l-.327-1.233a.582.582 0 0 1-.023-.156.49.49 0 0 1 .201-.398C23.024 18.48 24 16.82 24 14.98c0-3.21-2.931-5.837-6.656-6.088V8.89c-.135-.01-.269-.03-.406-.03zm-2.53 3.274c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.97-.982zm4.844 0c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.969-.982z"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 11,
|
|
columnNumber: 5
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 10,
|
|
columnNumber: 3
|
|
}, ("TURBOPACK compile-time value", void 0));
|
|
_c = WechatIcon;
|
|
const AlipayIcon = ()=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("svg", {
|
|
viewBox: "0 0 24 24",
|
|
className: "w-5 h-5",
|
|
fill: "currentColor",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("path", {
|
|
d: "M8.77 20.62l9.92-4.33c-.12-.33-.24-.66-.38-.99-.14-.33-.3-.66-.47-.99H8.08c-2.2 0-3.99-1.79-3.99-3.99V8.08c0-2.2 1.79-3.99 3.99-3.99h7.84c2.2 0 3.99 1.79 3.99 3.99v2.24h-8.66c-.55 0-1 .45-1 1s.45 1 1 1h10.66c-.18 1.73-.71 3.36-1.53 4.83l-2.76 1.2c-.74-1.69-1.74-3.24-2.93-4.6-.52-.59-1.11-1.13-1.76-1.59H4.09v4.24c0 2.2 1.79 3.99 3.99 3.99h.69v.23z"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 17,
|
|
columnNumber: 5
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 16,
|
|
columnNumber: 3
|
|
}, ("TURBOPACK compile-time value", void 0));
|
|
_c1 = AlipayIcon;
|
|
function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, amount, onSuccess }) {
|
|
_s();
|
|
const [paymentMethod, setPaymentMethod] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("wechat");
|
|
const [isProcessing, setIsProcessing] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [isSuccess, setIsSuccess] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [showPaymentDetails, setShowPaymentDetails] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [copied, setCopied] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const { purchaseSection, purchaseFullBook, user, settings } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"])();
|
|
const paymentConfig = settings?.paymentMethods || {
|
|
wechat: {
|
|
enabled: true,
|
|
qrCode: "",
|
|
account: ""
|
|
},
|
|
alipay: {
|
|
enabled: true,
|
|
qrCode: "",
|
|
account: ""
|
|
},
|
|
usdt: {
|
|
enabled: true,
|
|
network: "TRC20",
|
|
address: "",
|
|
exchangeRate: 7.2
|
|
},
|
|
paypal: {
|
|
enabled: false,
|
|
email: "",
|
|
exchangeRate: 7.2
|
|
}
|
|
};
|
|
const usdtAmount = (amount / (paymentConfig.usdt.exchangeRate || 7.2)).toFixed(2);
|
|
const paypalAmount = (amount / (paymentConfig.paypal.exchangeRate || 7.2)).toFixed(2);
|
|
const handleCopyAddress = (address)=>{
|
|
navigator.clipboard.writeText(address);
|
|
setCopied(true);
|
|
setTimeout(()=>setCopied(false), 2000);
|
|
};
|
|
const handlePayment = async ()=>{
|
|
if (paymentMethod === "usdt" || paymentMethod === "paypal" || paymentMethod === "wechat" || paymentMethod === "alipay") {
|
|
setShowPaymentDetails(true);
|
|
return;
|
|
}
|
|
setIsProcessing(true);
|
|
await new Promise((resolve)=>setTimeout(resolve, 1500));
|
|
let success = false;
|
|
if (type === "section" && sectionId) {
|
|
success = await purchaseSection(sectionId, sectionTitle, paymentMethod);
|
|
} else if (type === "fullbook") {
|
|
success = await purchaseFullBook(paymentMethod);
|
|
}
|
|
setIsProcessing(false);
|
|
if (success) {
|
|
setIsSuccess(true);
|
|
setTimeout(()=>{
|
|
onSuccess();
|
|
onClose();
|
|
setIsSuccess(false);
|
|
}, 1500);
|
|
}
|
|
};
|
|
const confirmCryptoPayment = async ()=>{
|
|
setIsProcessing(true);
|
|
await new Promise((resolve)=>setTimeout(resolve, 1000));
|
|
let success = false;
|
|
if (type === "section" && sectionId) {
|
|
success = await purchaseSection(sectionId, sectionTitle, paymentMethod);
|
|
} else if (type === "fullbook") {
|
|
success = await purchaseFullBook(paymentMethod);
|
|
}
|
|
setIsProcessing(false);
|
|
setShowPaymentDetails(false);
|
|
if (success) {
|
|
setIsSuccess(true);
|
|
setTimeout(()=>{
|
|
onSuccess();
|
|
onClose();
|
|
setIsSuccess(false);
|
|
}, 1500);
|
|
}
|
|
};
|
|
if (!isOpen) return null;
|
|
const paymentMethods = [
|
|
{
|
|
id: "wechat",
|
|
name: "微信支付",
|
|
icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(WechatIcon, {}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 123,
|
|
columnNumber: 13
|
|
}, this),
|
|
color: "bg-[#07C160]",
|
|
enabled: paymentConfig.wechat.enabled
|
|
},
|
|
{
|
|
id: "alipay",
|
|
name: "支付宝",
|
|
icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(AlipayIcon, {}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 130,
|
|
columnNumber: 13
|
|
}, this),
|
|
color: "bg-[#1677FF]",
|
|
enabled: paymentConfig.alipay.enabled
|
|
},
|
|
{
|
|
id: "usdt",
|
|
name: `USDT (${paymentConfig.usdt.network || "TRC20"})`,
|
|
icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$bitcoin$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Bitcoin$3e$__["Bitcoin"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 137,
|
|
columnNumber: 13
|
|
}, this),
|
|
color: "bg-[#26A17B]",
|
|
enabled: paymentConfig.usdt.enabled,
|
|
extra: `≈ $${usdtAmount}`
|
|
},
|
|
{
|
|
id: "paypal",
|
|
name: "PayPal",
|
|
icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$globe$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Globe$3e$__["Globe"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 145,
|
|
columnNumber: 13
|
|
}, this),
|
|
color: "bg-[#003087]",
|
|
enabled: paymentConfig.paypal.enabled,
|
|
extra: `≈ $${paypalAmount}`
|
|
}
|
|
];
|
|
const availableMethods = paymentMethods.filter((m)=>m.enabled);
|
|
// Payment details view
|
|
if (showPaymentDetails) {
|
|
const isCrypto = paymentMethod === "usdt";
|
|
const isPayPal = paymentMethod === "paypal";
|
|
const isWechat = paymentMethod === "wechat";
|
|
const isAlipay = paymentMethod === "alipay";
|
|
let title = "";
|
|
let address = "";
|
|
let displayAmount = `¥${amount.toFixed(2)}`;
|
|
let qrCodeUrl = "";
|
|
if (isCrypto) {
|
|
title = "USDT支付";
|
|
address = paymentConfig.usdt.address;
|
|
displayAmount = `$${usdtAmount} USDT`;
|
|
} else if (isPayPal) {
|
|
title = "PayPal支付";
|
|
address = paymentConfig.paypal.email;
|
|
displayAmount = `$${paypalAmount} USD`;
|
|
} else if (isWechat) {
|
|
title = "微信支付";
|
|
qrCodeUrl = paymentConfig.wechat.qrCode || "/images/wechat-pay.png";
|
|
} else if (isAlipay) {
|
|
title = "支付宝支付";
|
|
qrCodeUrl = paymentConfig.alipay.qrCode || "/images/alipay.png";
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "fixed inset-0 z-50 flex items-center justify-center p-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "absolute inset-0 bg-black/60 backdrop-blur-sm",
|
|
onClick: onClose
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 184,
|
|
columnNumber: 9
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative w-full max-w-md bg-[#0f2137] rounded-2xl border border-gray-700/50 overflow-hidden",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: onClose,
|
|
className: "absolute top-4 right-4 p-2 text-gray-400 hover:text-white z-10",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__["X"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 187,
|
|
columnNumber: 13
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 186,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
className: "text-lg font-semibold text-white mb-4 text-center",
|
|
children: title
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 191,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-[#0a1628] rounded-xl p-4 mb-4 text-center",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm mb-2",
|
|
children: "支付金额"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 194,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-3xl font-bold text-[#38bdac]",
|
|
children: displayAmount
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 195,
|
|
columnNumber: 15
|
|
}, this),
|
|
(isCrypto || isPayPal) && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-500 text-sm",
|
|
children: [
|
|
"≈ ¥",
|
|
amount.toFixed(2)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 196,
|
|
columnNumber: 42
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 193,
|
|
columnNumber: 13
|
|
}, this),
|
|
isWechat || isAlipay ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex flex-col items-center justify-center mb-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-white p-2 rounded-xl mb-4",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("img", {
|
|
src: qrCodeUrl,
|
|
alt: title,
|
|
className: "w-48 h-48 object-contain"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 203,
|
|
columnNumber: 20
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 201,
|
|
columnNumber: 18
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm",
|
|
children: [
|
|
"请使用",
|
|
title === "微信支付" ? "微信" : "支付宝",
|
|
"扫码支付"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 205,
|
|
columnNumber: 18
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 200,
|
|
columnNumber: 16
|
|
}, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-[#0a1628] rounded-xl p-4 mb-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm mb-2",
|
|
children: isCrypto ? `收款地址 (${paymentConfig.usdt.network})` : "PayPal账户"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 209,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-white text-sm break-all flex-1 font-mono",
|
|
children: address || "请联系客服获取"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 213,
|
|
columnNumber: 19
|
|
}, this),
|
|
address && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>handleCopyAddress(address),
|
|
className: "text-[#38bdac] hover:text-[#4fd4c4]",
|
|
children: copied ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Check$3e$__["Check"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 218,
|
|
columnNumber: 33
|
|
}, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$copy$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Copy$3e$__["Copy"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 218,
|
|
columnNumber: 65
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 217,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 212,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 208,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-orange-500/10 border border-orange-500/30 rounded-xl p-4 mb-6",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-orange-400 text-sm text-center",
|
|
children: [
|
|
'支付完成后,请点击下方"我已支付"按钮,',
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("br", {}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 227,
|
|
columnNumber: 37
|
|
}, this),
|
|
"系统将自动开通阅读权限"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 226,
|
|
columnNumber: 15
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 225,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex gap-3",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: ()=>setShowPaymentDetails(false),
|
|
variant: "outline",
|
|
className: "flex-1 border-gray-600 text-white hover:bg-gray-700/50 bg-transparent",
|
|
children: "返回"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 232,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: confirmCryptoPayment,
|
|
disabled: isProcessing,
|
|
className: "flex-1 bg-[#38bdac] hover:bg-[#2da396] text-white",
|
|
children: isProcessing ? "处理中..." : "已完成支付"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 239,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 231,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 190,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 185,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 183,
|
|
columnNumber: 7
|
|
}, this);
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "fixed inset-0 z-50 flex items-center justify-center p-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "absolute inset-0 bg-black/60 backdrop-blur-sm",
|
|
onClick: onClose
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 255,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative w-full max-w-md bg-[#0f2137] rounded-2xl border border-gray-700/50 overflow-hidden",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: onClose,
|
|
className: "absolute top-4 right-4 p-2 text-gray-400 hover:text-white transition-colors",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__["X"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 261,
|
|
columnNumber: 11
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 257,
|
|
columnNumber: 9
|
|
}, this),
|
|
isSuccess ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-8 text-center",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "w-20 h-20 mx-auto mb-4 rounded-full bg-[#38bdac]/20 flex items-center justify-center",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$check$2d$big$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__CheckCircle$3e$__["CheckCircle"], {
|
|
className: "w-10 h-10 text-[#38bdac]"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 267,
|
|
columnNumber: 15
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 266,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
className: "text-xl font-semibold text-white mb-2",
|
|
children: "支付成功"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 269,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400",
|
|
children: type === "fullbook" ? "您已解锁全部内容" : "您已解锁本节内容"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 270,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 265,
|
|
columnNumber: 11
|
|
}, this) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-6 border-b border-gray-700/50",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
className: "text-lg font-semibold text-white mb-1",
|
|
children: "确认支付"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 275,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm",
|
|
children: type === "fullbook" ? "购买整本书,解锁全部内容" : `购买: ${sectionTitle}`
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 276,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 274,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-6 border-b border-gray-700/50 text-center",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm mb-1",
|
|
children: "支付金额"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 282,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-4xl font-bold text-white",
|
|
children: [
|
|
"¥",
|
|
amount.toFixed(2)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 283,
|
|
columnNumber: 15
|
|
}, this),
|
|
(paymentMethod === "usdt" || paymentMethod === "paypal") && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-[#38bdac] text-sm mt-1",
|
|
children: [
|
|
"≈ $",
|
|
paymentMethod === "usdt" ? usdtAmount : paypalAmount,
|
|
" USD"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 285,
|
|
columnNumber: 17
|
|
}, this),
|
|
user?.referredBy && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-[#38bdac] text-sm mt-2",
|
|
children: [
|
|
"通过邀请注册,",
|
|
settings?.distributorShare || 90,
|
|
"%将返还给推荐人"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 290,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 281,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-6 space-y-3",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm mb-3",
|
|
children: "选择支付方式"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 297,
|
|
columnNumber: 15
|
|
}, this),
|
|
availableMethods.map((method)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>setPaymentMethod(method.id),
|
|
className: `w-full p-4 rounded-xl border flex items-center gap-4 transition-all ${paymentMethod === method.id ? "border-[#38bdac] bg-[#38bdac]/10" : "border-gray-700 hover:border-gray-600"}`,
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: `w-10 h-10 rounded-lg ${method.color} flex items-center justify-center text-white`,
|
|
children: method.icon
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 308,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex-1 text-left",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "text-white",
|
|
children: method.name
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 312,
|
|
columnNumber: 21
|
|
}, this),
|
|
method.extra && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "text-gray-400 text-sm ml-2",
|
|
children: method.extra
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 313,
|
|
columnNumber: 38
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 311,
|
|
columnNumber: 19
|
|
}, this),
|
|
paymentMethod === method.id && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$circle$2d$check$2d$big$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__CheckCircle$3e$__["CheckCircle"], {
|
|
className: "w-5 h-5 text-[#38bdac]"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 315,
|
|
columnNumber: 51
|
|
}, this)
|
|
]
|
|
}, method.id, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 299,
|
|
columnNumber: 17
|
|
}, this)),
|
|
availableMethods.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-500 text-center py-4",
|
|
children: "暂无可用支付方式"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 318,
|
|
columnNumber: 49
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 296,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-6 pt-0",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: handlePayment,
|
|
disabled: isProcessing || availableMethods.length === 0,
|
|
className: "w-full bg-[#38bdac] hover:bg-[#2da396] text-white py-6 text-lg",
|
|
children: isProcessing ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "w-5 h-5 border-2 border-white border-t-transparent rounded-full animate-spin"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 329,
|
|
columnNumber: 21
|
|
}, this),
|
|
"处理中..."
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 328,
|
|
columnNumber: 19
|
|
}, this) : `确认支付 ¥${amount.toFixed(2)}`
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 322,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-500 text-xs text-center mt-3",
|
|
children: "支付即表示同意《用户协议》和《隐私政策》"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 336,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 321,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 256,
|
|
columnNumber: 7
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/modules/payment/payment-modal.tsx",
|
|
lineNumber: 254,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
_s(PaymentModal, "YN1pYuLsMKCPukjXTqBTPlwxlo0=", false, function() {
|
|
return [
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"]
|
|
];
|
|
});
|
|
_c2 = PaymentModal;
|
|
var _c, _c1, _c2;
|
|
__turbopack_context__.k.register(_c, "WechatIcon");
|
|
__turbopack_context__.k.register(_c1, "AlipayIcon");
|
|
__turbopack_context__.k.register(_c2, "PaymentModal");
|
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
|
}
|
|
}),
|
|
"[project]/components/user-menu.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"UserMenu",
|
|
()=>UserMenu
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/client/app-dir/link.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/user.js [app-client] (ecmascript) <export default as User>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__LogOut$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/log-out.js [app-client] (ecmascript) <export default as LogOut>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/book-open.js [app-client] (ecmascript) <export default as BookOpen>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$gift$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Gift$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/gift.js [app-client] (ecmascript) <export default as Gift>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Settings$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/settings.js [app-client] (ecmascript) <export default as Settings>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/store.ts [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$auth$2f$auth$2d$modal$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/modules/auth/auth-modal.tsx [app-client] (ecmascript)");
|
|
;
|
|
var _s = __turbopack_context__.k.signature();
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function UserMenu() {
|
|
_s();
|
|
const [isAuthOpen, setIsAuthOpen] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [isMenuOpen, setIsMenuOpen] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const { user, isLoggedIn, logout } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"])();
|
|
if (!isLoggedIn || !user) {
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>setIsAuthOpen(true),
|
|
className: "flex items-center gap-2 px-4 py-2 rounded-lg bg-[#38bdac]/10 text-[#38bdac] hover:bg-[#38bdac]/20 transition-colors",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__["User"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 21,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "登录"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 22,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 17,
|
|
columnNumber: 9
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$auth$2f$auth$2d$modal$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AuthModal"], {
|
|
isOpen: isAuthOpen,
|
|
onClose: ()=>setIsAuthOpen(false)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 24,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true);
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>setIsMenuOpen(!isMenuOpen),
|
|
className: "flex items-center gap-2 px-4 py-2 rounded-lg bg-[#0f2137] border border-gray-700 hover:border-[#38bdac]/50 transition-colors",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "w-8 h-8 rounded-full bg-[#38bdac]/20 flex items-center justify-center",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__["User"], {
|
|
className: "w-4 h-4 text-[#38bdac]"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 36,
|
|
columnNumber: 11
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 35,
|
|
columnNumber: 9
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "text-white text-sm max-w-[100px] truncate",
|
|
children: user.nickname
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 38,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 31,
|
|
columnNumber: 7
|
|
}, this),
|
|
isMenuOpen && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "fixed inset-0 z-40",
|
|
onClick: ()=>setIsMenuOpen(false)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 43,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "absolute right-0 top-full mt-2 w-56 bg-[#0f2137] border border-gray-700 rounded-xl shadow-xl z-50 overflow-hidden",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-4 border-b border-gray-700/50",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-white font-medium",
|
|
children: user.nickname
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 47,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-500 text-sm",
|
|
children: user.phone
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 48,
|
|
columnNumber: 15
|
|
}, this),
|
|
user.hasFullBook && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "inline-block mt-2 px-2 py-1 bg-[#38bdac]/20 text-[#38bdac] text-xs rounded",
|
|
children: "已购买全书"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 50,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 46,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "py-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
|
href: "/my/purchases",
|
|
className: "flex items-center gap-3 px-4 py-3 text-gray-300 hover:bg-gray-800/50 transition-colors",
|
|
onClick: ()=>setIsMenuOpen(false),
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__["BookOpen"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 63,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "我的购买"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 64,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 58,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
|
href: "/my/referral",
|
|
className: "flex items-center gap-3 px-4 py-3 text-gray-300 hover:bg-gray-800/50 transition-colors",
|
|
onClick: ()=>setIsMenuOpen(false),
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$gift$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Gift$3e$__["Gift"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 71,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "分销中心"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 72,
|
|
columnNumber: 17
|
|
}, this),
|
|
user.earnings > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "ml-auto text-[#38bdac] text-sm",
|
|
children: [
|
|
"¥",
|
|
user.earnings.toFixed(2)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 74,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 66,
|
|
columnNumber: 15
|
|
}, this),
|
|
user.isAdmin && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
|
href: "/admin",
|
|
className: "flex items-center gap-3 px-4 py-3 text-gray-300 hover:bg-gray-800/50 transition-colors",
|
|
onClick: ()=>setIsMenuOpen(false),
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$settings$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Settings$3e$__["Settings"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 83,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "管理后台"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 84,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 78,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 57,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "border-t border-gray-700/50 py-2",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>{
|
|
logout();
|
|
setIsMenuOpen(false);
|
|
},
|
|
className: "w-full flex items-center gap-3 px-4 py-3 text-red-400 hover:bg-gray-800/50 transition-colors",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__LogOut$3e$__["LogOut"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 98,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "退出登录"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 99,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 91,
|
|
columnNumber: 15
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 90,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 44,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/user-menu.tsx",
|
|
lineNumber: 30,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
_s(UserMenu, "7Jww4GckxeXn3NSk/Bo/KmXWIPM=", false, function() {
|
|
return [
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"]
|
|
];
|
|
});
|
|
_c = UserMenu;
|
|
var _c;
|
|
__turbopack_context__.k.register(_c, "UserMenu");
|
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
|
}
|
|
}),
|
|
"[project]/components/modules/referral/referral-share.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ReferralShare",
|
|
()=>ReferralShare
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$share$2d$2$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Share2$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/share-2.js [app-client] (ecmascript) <export default as Share2>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/ui/button.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/store.ts [app-client] (ecmascript)");
|
|
;
|
|
var _s = __turbopack_context__.k.signature();
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
function ReferralShare({ sectionTitle, fullBookPrice, distributorShare }) {
|
|
_s();
|
|
const { user } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"])();
|
|
const handleShare = async ()=>{
|
|
const url = user?.referralCode ? `${window.location.href}?ref=${user.referralCode}` : window.location.href;
|
|
const shareData = {
|
|
title: sectionTitle,
|
|
text: `来自Soul派对房的真实商业故事: ${sectionTitle}`,
|
|
url: url
|
|
};
|
|
try {
|
|
if (navigator.share && navigator.canShare && navigator.canShare(shareData)) {
|
|
await navigator.share(shareData);
|
|
} else {
|
|
navigator.clipboard.writeText(url);
|
|
alert(`链接已复制!分享后他人购买,你可获得${distributorShare}%返利 (¥${(fullBookPrice * distributorShare / 100).toFixed(1)})`);
|
|
}
|
|
} catch (error) {
|
|
console.error("Error sharing:", error);
|
|
}
|
|
};
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
variant: "ghost",
|
|
size: "icon",
|
|
className: "text-gray-400 hover:text-white",
|
|
onClick: handleShare,
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$share$2d$2$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Share2$3e$__["Share2"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/referral/referral-share.tsx",
|
|
lineNumber: 45,
|
|
columnNumber: 7
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/modules/referral/referral-share.tsx",
|
|
lineNumber: 39,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
_s(ReferralShare, "tMzW9pWuR+LlczoowU2joYvJY7c=", false, function() {
|
|
return [
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"]
|
|
];
|
|
});
|
|
_c = ReferralShare;
|
|
var _c;
|
|
__turbopack_context__.k.register(_c, "ReferralShare");
|
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
|
}
|
|
}),
|
|
"[project]/components/chapter-content.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ChapterContent",
|
|
()=>ChapterContent
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/client/app-dir/link.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$left$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronLeft$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/chevron-left.js [app-client] (ecmascript) <export default as ChevronLeft>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$lock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Lock$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/lock.js [app-client] (ecmascript) <export default as Lock>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$share$2d$2$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Share2$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/share-2.js [app-client] (ecmascript) <export default as Share2>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/book-open.js [app-client] (ecmascript) <export default as BookOpen>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/clock.js [app-client] (ecmascript) <export default as Clock>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$message$2d$circle$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__MessageCircle$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/message-circle.js [app-client] (ecmascript) <export default as MessageCircle>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/ui/button.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$book$2d$data$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/book-data.ts [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/store.ts [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$auth$2f$auth$2d$modal$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/modules/auth/auth-modal.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$payment$2f$payment$2d$modal$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/modules/payment/payment-modal.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$user$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/user-menu.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$marketing$2f$qr$2d$code$2d$modal$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/modules/marketing/qr-code-modal.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$referral$2f$referral$2d$share$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/modules/referral/referral-share.tsx [app-client] (ecmascript)");
|
|
;
|
|
var _s = __turbopack_context__.k.signature();
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function ChapterContent({ section, partTitle, chapterTitle }) {
|
|
_s();
|
|
const [content, setContent] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("");
|
|
const [isLoading, setIsLoading] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(true);
|
|
const [isAuthOpen, setIsAuthOpen] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [isPaymentOpen, setIsPaymentOpen] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [isQRModalOpen, setIsQRModalOpen] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
const [paymentType, setPaymentType] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])("section");
|
|
const [fullBookPrice, setFullBookPrice] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(9.9);
|
|
const { user, isLoggedIn, hasPurchased, settings } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"])();
|
|
const distributorShare = settings?.distributorShare || 90;
|
|
const isUnlocked = (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$book$2d$data$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["isSectionUnlocked"])(section);
|
|
const canAccess = section.isFree || isUnlocked || isLoggedIn && hasPurchased(section.id);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useEffect"])({
|
|
"ChapterContent.useEffect": ()=>{
|
|
setFullBookPrice((0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$book$2d$data$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["getFullBookPrice"])());
|
|
}
|
|
}["ChapterContent.useEffect"], []);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useEffect"])({
|
|
"ChapterContent.useEffect": ()=>{
|
|
async function loadContent() {
|
|
try {
|
|
if (section.content) {
|
|
setContent(section.content);
|
|
setIsLoading(false);
|
|
return;
|
|
}
|
|
if (("TURBOPACK compile-time value", "object") !== "undefined" && section.filePath.startsWith("custom/")) {
|
|
const customSections = JSON.parse(localStorage.getItem("custom_sections") || "[]");
|
|
const customSection = customSections.find({
|
|
"ChapterContent.useEffect.loadContent.customSection": (s)=>s.id === section.id
|
|
}["ChapterContent.useEffect.loadContent.customSection"]);
|
|
if (customSection?.content) {
|
|
setContent(customSection.content);
|
|
setIsLoading(false);
|
|
return;
|
|
}
|
|
}
|
|
const response = await fetch(`/api/content?path=${encodeURIComponent(section.filePath)}`);
|
|
if (response.ok) {
|
|
const data = await response.json();
|
|
if (!data.isCustom) {
|
|
setContent(data.content);
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error("Failed to load content:", error);
|
|
} finally{
|
|
setIsLoading(false);
|
|
}
|
|
}
|
|
loadContent();
|
|
}
|
|
}["ChapterContent.useEffect"], [
|
|
section.filePath,
|
|
section.id,
|
|
section.content
|
|
]);
|
|
const handlePurchaseClick = (type)=>{
|
|
if (!isLoggedIn) {
|
|
setIsAuthOpen(true);
|
|
return;
|
|
}
|
|
setPaymentType(type);
|
|
setIsPaymentOpen(true);
|
|
};
|
|
const handleShare = async ()=>{
|
|
const url = user?.referralCode ? `${window.location.href}?ref=${user.referralCode}` : window.location.href;
|
|
const shareData = {
|
|
title: section.title,
|
|
text: `来自Soul派对房的真实商业故事: ${section.title}`,
|
|
url: url
|
|
};
|
|
try {
|
|
if (navigator.share && navigator.canShare && navigator.canShare(shareData)) {
|
|
await navigator.share(shareData);
|
|
} else {
|
|
navigator.clipboard.writeText(url);
|
|
alert(`链接已复制!分享后他人购买,你可获得${distributorShare}%返利 (¥${(fullBookPrice * distributorShare / 100).toFixed(1)})`);
|
|
}
|
|
} catch (error) {
|
|
if (error.name !== "AbortError") {
|
|
navigator.clipboard.writeText(url);
|
|
alert(`链接已复制!分享后他人购买,你可获得${distributorShare}%返利`);
|
|
}
|
|
}
|
|
};
|
|
const previewContent = content.slice(0, 500);
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "min-h-screen bg-[#0a1628] text-white pb-20",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("header", {
|
|
className: "sticky top-0 z-50 bg-[#0a1628]/90 backdrop-blur-md border-b border-gray-800",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "max-w-3xl mx-auto px-4 py-4 flex items-center justify-between",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
|
href: "/chapters",
|
|
className: "flex items-center gap-2 text-gray-400 hover:text-white transition-colors",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$left$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronLeft$3e$__["ChevronLeft"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 118,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "hidden sm:inline",
|
|
children: "目录"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 119,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 117,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "text-center flex-1 px-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-500 text-xs",
|
|
children: partTitle
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 122,
|
|
columnNumber: 13
|
|
}, this),
|
|
chapterTitle && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm truncate",
|
|
children: chapterTitle
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 123,
|
|
columnNumber: 30
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 121,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$referral$2f$referral$2d$share$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["ReferralShare"], {
|
|
sectionTitle: section.title,
|
|
fullBookPrice: fullBookPrice,
|
|
distributorShare: distributorShare
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 126,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$user$2d$menu$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["UserMenu"], {}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 131,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 125,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 116,
|
|
columnNumber: 9
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 115,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("main", {
|
|
className: "max-w-3xl mx-auto px-4 py-8",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "mb-8",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-2 text-[#38bdac] text-sm mb-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__["BookOpen"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 141,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: section.id
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 142,
|
|
columnNumber: 13
|
|
}, this),
|
|
section.unlockAfterDays && !section.isFree && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "ml-2 px-2 py-0.5 bg-orange-500/20 text-orange-400 text-xs rounded-full flex items-center gap-1",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], {
|
|
className: "w-3 h-3"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 145,
|
|
columnNumber: 17
|
|
}, this),
|
|
isUnlocked ? "已免费解锁" : `${section.unlockAfterDays}天后免费`
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 144,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 140,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h1", {
|
|
className: "text-2xl md:text-3xl font-bold text-white leading-tight",
|
|
children: section.title
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 150,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 139,
|
|
columnNumber: 9
|
|
}, this),
|
|
isLoading ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center justify-center py-20",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "w-8 h-8 border-2 border-[#38bdac] border-t-transparent rounded-full animate-spin"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 155,
|
|
columnNumber: 13
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 154,
|
|
columnNumber: 11
|
|
}, this) : canAccess ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("article", {
|
|
className: "prose prose-invert prose-lg max-w-none",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "text-gray-300 leading-relaxed whitespace-pre-line",
|
|
children: content.split("\n").map((paragraph, index)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "mb-4",
|
|
children: paragraph
|
|
}, index, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 162,
|
|
columnNumber: 19
|
|
}, this))
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 160,
|
|
columnNumber: 15
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 159,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "mt-12 bg-gradient-to-r from-[#38bdac]/10 to-[#1a3a4a]/50 rounded-2xl p-6 border border-[#38bdac]/30",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "w-12 h-12 rounded-full bg-[#38bdac]/20 flex items-center justify-center flex-shrink-0",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$message$2d$circle$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__MessageCircle$3e$__["MessageCircle"], {
|
|
className: "w-6 h-6 text-[#38bdac]"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 173,
|
|
columnNumber: 19
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 172,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex-1",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
className: "text-white font-semibold mb-1",
|
|
children: "想听更多商业故事?"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 176,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm",
|
|
children: "每天早上6-9点,卡若在Soul派对房分享真实案例"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 177,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 175,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: ()=>setIsQRModalOpen(true),
|
|
className: "bg-[#38bdac] hover:bg-[#2da396] text-white whitespace-nowrap",
|
|
children: "加入派对群"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 179,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 171,
|
|
columnNumber: 15
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 170,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("article", {
|
|
className: "prose prose-invert prose-lg max-w-none relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "text-gray-300 leading-relaxed whitespace-pre-line",
|
|
children: previewContent.split("\n").map((paragraph, index)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "mb-4",
|
|
children: paragraph
|
|
}, index, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 193,
|
|
columnNumber: 19
|
|
}, this))
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 191,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "absolute bottom-0 left-0 right-0 h-40 bg-gradient-to-t from-[#0a1628] to-transparent"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 198,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 190,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "mt-8 bg-[#0f2137]/80 backdrop-blur-xl rounded-2xl p-8 border border-gray-700/50 text-center",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "w-16 h-16 mx-auto mb-4 rounded-full bg-gray-800/50 flex items-center justify-center",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$lock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Lock$3e$__["Lock"], {
|
|
className: "w-8 h-8 text-gray-500"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 204,
|
|
columnNumber: 17
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 203,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
className: "text-xl font-semibold text-white mb-2",
|
|
children: "解锁完整内容"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 206,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 mb-6",
|
|
children: isLoggedIn ? "购买本节或整本书以阅读完整内容" : "登录后购买即可阅读完整内容"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 207,
|
|
columnNumber: 15
|
|
}, this),
|
|
section.unlockAfterDays && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-orange-400 text-sm mb-4 flex items-center justify-center gap-1",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 213,
|
|
columnNumber: 19
|
|
}, this),
|
|
"本节将在",
|
|
section.unlockAfterDays,
|
|
"天后免费解锁"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 212,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex flex-col sm:flex-row gap-4 justify-center",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: ()=>handlePurchaseClick("section"),
|
|
variant: "outline",
|
|
className: "border-gray-600 text-white hover:bg-gray-700/50 px-6 py-5",
|
|
children: [
|
|
"购买本节 ¥",
|
|
section.price
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 219,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: ()=>handlePurchaseClick("fullbook"),
|
|
className: "bg-[#38bdac] hover:bg-[#2da396] text-white px-6 py-5",
|
|
children: [
|
|
"购买全书 ¥",
|
|
fullBookPrice.toFixed(1),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "ml-2 text-xs opacity-80",
|
|
children: "省82%"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 231,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 226,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 218,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-500 text-sm mt-4",
|
|
children: [
|
|
"分享本书,他人购买你可获得 ",
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "text-[#38bdac]",
|
|
children: [
|
|
distributorShare,
|
|
"%返利"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 236,
|
|
columnNumber: 31
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 235,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 202,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "mt-8 bg-gradient-to-r from-[#38bdac]/10 to-[#1a3a4a]/50 rounded-2xl p-6 border border-[#38bdac]/30",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "w-12 h-12 rounded-full bg-[#38bdac]/20 flex items-center justify-center flex-shrink-0",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$message$2d$circle$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__MessageCircle$3e$__["MessageCircle"], {
|
|
className: "w-6 h-6 text-[#38bdac]"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 244,
|
|
columnNumber: 19
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 243,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex-1",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
className: "text-white font-semibold mb-1",
|
|
children: "不想花钱?来派对群免费听!"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 247,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-400 text-sm",
|
|
children: "每天早上6-9点,卡若在Soul派对房免费分享"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 248,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 246,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], {
|
|
onClick: ()=>setIsQRModalOpen(true),
|
|
className: "bg-[#38bdac] hover:bg-[#2da396] text-white whitespace-nowrap",
|
|
children: "加入派对群"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 250,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 242,
|
|
columnNumber: 15
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 241,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 189,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "mt-12 pt-8 border-t border-gray-800 flex justify-between",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
|
href: "/chapters",
|
|
className: "text-gray-400 hover:text-white transition-colors",
|
|
children: "← 返回目录"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 263,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: handleShare,
|
|
className: "text-[#38bdac] hover:text-[#4fd4c4] transition-colors flex items-center gap-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$share$2d$2$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Share2$3e$__["Share2"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 270,
|
|
columnNumber: 13
|
|
}, this),
|
|
"分享赚 ¥",
|
|
(section.price * distributorShare / 100).toFixed(1)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 266,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 262,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 137,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$auth$2f$auth$2d$modal$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["AuthModal"], {
|
|
isOpen: isAuthOpen,
|
|
onClose: ()=>setIsAuthOpen(false)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 277,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$payment$2f$payment$2d$modal$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["PaymentModal"], {
|
|
isOpen: isPaymentOpen,
|
|
onClose: ()=>setIsPaymentOpen(false),
|
|
type: paymentType,
|
|
sectionId: section.id,
|
|
sectionTitle: section.title,
|
|
amount: paymentType === "section" ? section.price : fullBookPrice,
|
|
onSuccess: ()=>window.location.reload()
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 278,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$modules$2f$marketing$2f$qr$2d$code$2d$modal$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["QRCodeModal"], {
|
|
isOpen: isQRModalOpen,
|
|
onClose: ()=>setIsQRModalOpen(false)
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 287,
|
|
columnNumber: 7
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/components/chapter-content.tsx",
|
|
lineNumber: 113,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
_s(ChapterContent, "xTR9jFUQjbh0O5fif1H4HUp733U=", false, function() {
|
|
return [
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"]
|
|
];
|
|
});
|
|
_c = ChapterContent;
|
|
var _c;
|
|
__turbopack_context__.k.register(_c, "ChapterContent");
|
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
|
}
|
|
}),
|
|
]);
|
|
|
|
//# sourceMappingURL=components_d42bbe06._.js.map
|