"use client"; import "@/utils/dayjs-config"; import { usePathname } from "next/navigation"; import { useEffectOnce, useUpdateEffect } from "usehooks-ts"; import type { ProviderProps } from "@/@types/types/provider-props.types"; import { useAuth } from "@/features/auth/hooks/use-auth"; import { usePageInfo } from "@/hooks/use-page-info/use-page-info"; import useEventHandlers from "@/hooks/useEventHandlers"; import { useLocale } from "@/hooks/useLocale"; import { useLocalizationStore } from "@/store/localization-store/use-localization-store"; import AuthProvider from "../auth-provider/auth-provider"; interface InitializeProviderProps extends ProviderProps {} export const InitializeProvider = (props: InitializeProviderProps) => { const pathname = usePathname(); const { isAuthenticated } = useAuth(); const { initializePageInfo } = usePageInfo(); const { changeLanguage } = useLocale(); const { localizationState } = useLocalizationStore(); // #Note - This hook appends app events to dom useEventHandlers(); useUpdateEffect(() => { if (pathname) { initializePageInfo(); } }, [pathname]); useEffectOnce(() => { initializePageInfo(); changeLanguage(localizationState.data.language ?? "tr"); }); if (isAuthenticated) { return {props.children}; } return props.children; };