40 lines
825 B
TypeScript
40 lines
825 B
TypeScript
"use client";
|
|
|
|
import { type ReactNode } from "react";
|
|
import { VipHeader } from "./VipHeader";
|
|
import styles from "./vip.module.css";
|
|
|
|
type VipLayoutProps = {
|
|
children: ReactNode;
|
|
isLoggedIn: boolean;
|
|
userName?: string | null;
|
|
userEmail?: string | null;
|
|
wechatNick?: string | null;
|
|
wechatAvatar?: string | null;
|
|
onLogout?: () => void;
|
|
};
|
|
|
|
export function VipLayout({
|
|
children,
|
|
isLoggedIn,
|
|
userName,
|
|
userEmail,
|
|
wechatNick,
|
|
wechatAvatar,
|
|
onLogout,
|
|
}: VipLayoutProps) {
|
|
return (
|
|
<div className={styles.root}>
|
|
<VipHeader
|
|
isLoggedIn={isLoggedIn}
|
|
userName={userName}
|
|
userEmail={userEmail}
|
|
wechatNick={wechatNick}
|
|
wechatAvatar={wechatAvatar}
|
|
onLogout={onLogout}
|
|
/>
|
|
<main className={styles.main}>{children}</main>
|
|
</div>
|
|
);
|
|
}
|