init locale in

This commit is contained in:
Rama Priyanto 2025-07-24 11:26:45 +07:00
parent 8645f913bf
commit cfd89ea3f8
2 changed files with 94 additions and 18031 deletions

View File

@ -31,45 +31,43 @@ export default function LocalSwitcher() {
const router = useRouter();
const pathname = usePathname();
const params = useParams();
const localActive = useLocale() || "in";
const [selectedLang, setSelectedLang] = useState<string>("");
const locale = useLocale() || "in";
const [selectedLang, setSelectedLang] = useState<string>("in");
const searchParams = useSearchParams();
const [hasInitialized, setHasInitialized] = useState(false);
useEffect(() => {
const storedLang = getLanguage();
let joinParam = "";
if (searchParams) {
joinParam = Array.from(searchParams.entries())
.map(([key, value]) => `${key}=${value}`)
.join("&");
}
if (pathname.includes("polda")) {
const redirectTo = (lang: string) => {
startTransition(() => {
router.replace(pathname + joinParam === "" ? "" : `?${joinParam}`, {
locale: "in",
router.replace(pathname + (joinParam ? `?${joinParam}` : ""), {
locale: lang,
});
});
} else {
};
if (!hasInitialized) {
if (!storedLang) {
setLanguage("in");
setSelectedLang("in");
startTransition(() => {
router.replace(pathname + joinParam === "" ? "" : `?${joinParam}`, {
locale: "in",
});
});
redirectTo("in");
} else {
setSelectedLang(storedLang);
startTransition(() => {
router.replace(pathname + joinParam === "" ? "" : `?${joinParam}`, {
locale: storedLang,
});
});
if (locale !== storedLang) {
redirectTo(storedLang);
}
}
setHasInitialized(true);
}
}, [searchParams]);
}, []);
const onSelectChange = (nextLocale: string) => {
setLanguage(nextLocale);

18091
package-lock.json generated

File diff suppressed because it is too large Load Diff