Files
cunkebao_v3/Cunkebao/app/components/LayoutWrapper.tsx

41 lines
999 B
TypeScript
Raw Normal View History

2025-03-29 16:50:39 +08:00
"use client"
import type React from "react"
import { createContext, useContext, useState } from "react"
import AdaptiveLayout from "./AdaptiveLayout"
2025-04-11 16:15:48 +08:00
// 创建视图模式上下文
const ViewModeContext = createContext<{
viewMode: "mobile" | "desktop"
setViewMode: (mode: "mobile" | "desktop") => void
}>({
viewMode: "mobile",
setViewMode: () => {},
})
// 导出 useViewMode hook
2025-04-11 16:15:48 +08:00
export function useViewMode() {
const context = useContext(ViewModeContext)
if (!context) {
throw new Error("useViewMode must be used within ViewModeProvider")
2025-04-11 16:15:48 +08:00
}
return context
}
2025-03-29 16:50:39 +08:00
interface LayoutWrapperProps {
children: React.ReactNode
}
2025-03-29 16:50:39 +08:00
function LayoutWrapper({ children }: LayoutWrapperProps) {
const [viewMode, setViewMode] = useState<"mobile" | "desktop">("mobile")
2025-03-29 16:50:39 +08:00
return (
<ViewModeContext.Provider value={{ viewMode, setViewMode }}>
<AdaptiveLayout>{children}</AdaptiveLayout>
2025-04-11 16:15:48 +08:00
</ViewModeContext.Provider>
2025-03-29 16:50:39 +08:00
)
}
export default LayoutWrapper
export { LayoutWrapper }