修复修改密码弹窗&取消后台显示客服弹窗 & 取消退出登录profile为空抛异常的判断

This commit is contained in:
Eamon-meng
2026-02-27 15:03:17 +08:00
parent 2125f1ef9e
commit 4b18c91157
5 changed files with 45 additions and 37 deletions

View File

@@ -7,4 +7,7 @@
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[typescriptreact]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
}

View File

@@ -1,6 +1,7 @@
import {ReactNode} from 'react'
import Header from './header'
import Footer from './footer'
import Script from 'next/script'
export type HomeLayoutProps = {
children: ReactNode
@@ -17,6 +18,8 @@ export default function HomeLayout(props: HomeLayoutProps) {
{/* 页脚 */}
<Footer/>
<Script id="qd2852138148beb7882a4a6a3e5ff5b569436003e7dc" src="https://wp.qiye.qq.com/qidian/2852138148/beb7882a4a6a3e5ff5b569436003e7dc" async defer></Script>
</div>
)
}

View File

@@ -75,19 +75,19 @@ export function Content(props: {children: ReactNode}) {
}
function ContentResolved() {
const profile = use(useProfileStore(store => store.profile))
if (!profile) throw new Error('登录状态异常')
return (
<>
<RealnameAuthDialog
triggerClassName="hidden"
defaultOpen={!profile.id_token}
/>
<ChangePasswordDialog
triggerClassName="hidden"
defaultOpen={!profile.has_password}
/>
</>
)
if (profile)
return (
<>
<RealnameAuthDialog
triggerClassName="hidden"
defaultOpen={!profile.id_token}
/>
<ChangePasswordDialog
triggerClassName="hidden"
defaultOpen={!profile.has_password}
/>
</>
)
}
export function Header() {
@@ -127,8 +127,7 @@ export function Header() {
function HeaderUserCenter() {
const profile = use(useProfileStore(store => store.profile))
if (!profile) throw new Error('登录状态异常')
return <UserCenter profile={profile}/>
if (profile) return <UserCenter profile={profile}/>
}
export function Navbar() {

View File

@@ -25,7 +25,6 @@ export default async function RootLayout(props: Readonly<{
<Effects>{props.children}</Effects>
</StoreProviders>
<Toaster position="top-center" richColors expand/>
<Script id="qd2852138148beb7882a4a6a3e5ff5b569436003e7dc" src="https://wp.qiye.qq.com/qidian/2852138148/beb7882a4a6a3e5ff5b569436003e7dc" async defer></Script>
</body>
</html>
)

View File

@@ -68,7 +68,7 @@ export function ChangePasswordDialog({
})
// 提交处理
const handler = form.handleSubmit(async (value) => {
const handler = async (value: Schema) => {
try {
const resp = await updatePassword({
phone: value.phone,
@@ -90,7 +90,7 @@ export function ChangePasswordDialog({
description: e instanceof Error ? e.message : String(e),
})
}
})
}
return (
<Dialog open={actualOpen} onOpenChange={actualOnOpenChange}>
@@ -98,10 +98,16 @@ export function ChangePasswordDialog({
<Button theme="outline" className={triggerClassName || 'w-24 h-9'}></Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle></DialogTitle>
</DialogHeader>
<Form form={form} handler={handler} className="flex flex-col gap-4 mt-4">
<Form
form={form}
handler={async () => {
const data = form.getValues()
await handler(data)
}}
className="flex flex-col gap-4 mt-4">
<DialogHeader>
<DialogTitle></DialogTitle>
</DialogHeader>
{/* 手机号输入 */}
<FormField<Schema> name="phone" label="手机号" className="flex-auto">
{({field}) => (
@@ -132,22 +138,20 @@ export function ChangePasswordDialog({
<Input {...field} placeholder="请再次输入新密码" type="password" autoComplete="new-password"/>
)}
</FormField>
</Form>
<DialogFooter>
<Button
theme="outline"
type="button"
onClick={() => {
actualOnOpenChange(false)
form.reset()
}}>
</Button>
<Button onClick={handler}>
</Button>
</DialogFooter>
<DialogFooter>
<Button
theme="outline"
type="button"
onClick={() => {
actualOnOpenChange(false)
form.reset()
}}>
</Button>
<Button type="submit"></Button>
</DialogFooter>
</Form>
</DialogContent>
</Dialog>
)