修复后台首页样式与弹窗问题

This commit is contained in:
2025-11-20 18:32:43 +08:00
parent 7e3d873a96
commit 5933394cda
4 changed files with 20 additions and 44 deletions

View File

@@ -6,7 +6,7 @@ import {merge} from '@/lib/utils'
type AdminLayoutProps = {
navbar: ReactNode
header: ReactNode
content: ReactNode
children: ReactNode
}
export default function Layout(props: AdminLayoutProps) {
@@ -70,11 +70,11 @@ export default function Layout(props: AdminLayoutProps) {
className={merge(
`transition-[margin] duration-300 ease-in-out`,
`absolute inset-0 overflow-hidden`,
`mt-[64px]`,
`md:ml-[64px]`,
`mt-16`,
`md:ml-16`,
`lg:data-[expand=true]:ml-[200px]`,
)}>
{props.content}
{props.children}
</div>
</div>
)

View File

@@ -36,7 +36,7 @@ export default function Navbar(props: NavbarProps) {
<Link
href="/"
className={merge(
`flex-none h-[64px] flex items-center justify-center`,
`flex-none h-16 flex items-center justify-center`,
)}>
<Image src={logoAvatar} alt="logo" className="w-10 h-10 object-contain"/>
<Image
@@ -89,13 +89,13 @@ function NavTitle(props: {
`group-data-[expand=false]:h-4`,
)}>
<span className={merge(
`transition-[opacity] duration-200 ease-in-out absolute mx-4`,
`transition-opacity duration-200 ease-in-out absolute mx-4`,
`group-data-[expand=true]:delay-100 group-data-[expand=true]:opacity-100 group-data-[expand=false]:opacity-0`,
)}>
{props.label}
</span>
<span className={merge(
`transition-[opacity] duration-200 ease-in-out absolute w-full border-b block`,
`transition-opacity duration-200 ease-in-out absolute w-full border-b block`,
`group-data-[expand=false]:delay-100 group-data-[expand=false]:opacity-100 group-data-[expand=true]:opacity-0`,
)}>
</span>
@@ -129,7 +129,7 @@ function NavItem(props: {
<TooltipTrigger asChild>
<Link
className={merge(
`transition-[padding] duration-300 ease-in-out`,
`transition-[padding,background] duration-300 ease-in-out`,
`flex items-center rounded-md gap-2 whitespace-nowrap`,
`hover:bg-gray-100`,
`group-data-[expand=true]:px-4`,

View File

@@ -1,21 +0,0 @@
'use client'
import {ChangePasswordDialog} from '@/components/composites/dialogs/change-password-dialog'
import {RealnameAuthDialog} from '@/components/composites/dialogs/realname-auth-dialog'
import {User} from '@/lib/models'
export function PasswordSetupWrapper({profile}: {profile: User}) {
return (
<>
<RealnameAuthDialog
hasAuthenticated={!!profile.id_token}
triggerClassName="hidden"
defaultOpen={!profile.id_token}
/>
<ChangePasswordDialog
triggerClassName="hidden"
defaultOpen={profile.has_password}
/>
</>
)
}

View File

@@ -23,20 +23,17 @@ export default async function AdminLayout(props: AdminLayoutProps) {
<Layout
navbar={<Navbar/>}
header={<Header profile={profile}/>}
content={(
<>
{props.children}
<RealnameAuthDialog
hasAuthenticated={!!profile.id_token}
triggerClassName="hidden"
defaultOpen={!profile.id_token}
/>
<ChangePasswordDialog
triggerClassName="hidden"
defaultOpen={profile.has_password}
/>
</>
)}
/>
>
{props.children}
<RealnameAuthDialog
hasAuthenticated={!!profile.id_token}
triggerClassName="hidden"
defaultOpen={!profile.id_token}
/>
<ChangePasswordDialog
triggerClassName="hidden"
defaultOpen={!profile.has_password}
/>
</Layout>
)
}