"use client" import { ReactNode, useEffect } from "react" import { useAppDispatch, getOptionsFromLocal, getRandomUserId, getRandomChannel, genRandomString, } from "@/common" import { setOptions, reset, setAgentSettings, setCozeSettings, setDifySettings, } from "@/store/reducers/global" interface AuthInitializerProps { children: ReactNode } const AuthInitializer = (props: AuthInitializerProps) => { const { children } = props const dispatch = useAppDispatch() useEffect(() => { if (typeof window !== "undefined") { const data = getOptionsFromLocal() if (data && data?.options?.channel) { dispatch(reset()) dispatch(setOptions(data.options)) dispatch(setAgentSettings(data.settings)) dispatch(setCozeSettings(data.cozeSettings)) dispatch(setDifySettings(data.difySettings)) } else { const newOptions = { userName: genRandomString(8), channel: getRandomChannel(), userId: getRandomUserId(), } dispatch(setOptions(newOptions)) } } }, [dispatch]) return children } export default AuthInitializer