From 952bfb632743b2d7324c213a24e5f3bda50334ea Mon Sep 17 00:00:00 2001 From: Rizky Date: Sun, 23 Jun 2024 22:54:20 -0700 Subject: [PATCH] fix --- preset/login/Login.tsx | 36 ++++++++++++++++++++++++---------- preset/login/utils/register.ts | 4 ++++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/preset/login/Login.tsx b/preset/login/Login.tsx index 13a6bb2..9ab92ee 100755 --- a/preset/login/Login.tsx +++ b/preset/login/Login.tsx @@ -1,5 +1,7 @@ import { FC, useEffect } from "react"; import { loadSession } from "./utils/load"; +import { useLocal } from "lib/utils/use-local"; +import { FieldLoading } from "../../.."; const w = window as unknown as { user: any; @@ -7,21 +9,35 @@ const w = window as unknown as { }; export type LGProps = { - salt: string; - url_home: Array>; + url_home: Record; body: any; }; export const Login: FC = (props) => { - w.prasi_home = props.url_home[0]; - useEffect(() => { - try { - loadSession(); + const local = useLocal({ loading: true }, () => { + loadSession(); + setTimeout(() => { if (w.user) { - const home = w.prasi_home[w.user.m_role.name]; - navigate(home); + const home = props.url_home[w.user.role]; + if (home) { + navigate(home); + return; + } } - } catch (e: any) {} - }, []); + local.loading = false; + local.render(); + }, 500); + }); + + if (local.loading) + return ( +
+ +
+ ); return <>{props.body}; }; diff --git a/preset/login/utils/register.ts b/preset/login/utils/register.ts index ea28516..4bcf952 100755 --- a/preset/login/utils/register.ts +++ b/preset/login/utils/register.ts @@ -12,6 +12,9 @@ export type UserSession = { expired: Date; // second }; export const registerSession = (session: RG) => { + if (session.role) { + session.data.role = session.role; + } const data = { data: session.data, expired: session.expired ? day().add(session.expired, "seconds") : null, @@ -25,4 +28,5 @@ export const registerSession = (session: RG) => { localStorage.setItem("user" + id_site, JSON.stringify(data)); w.user = session.data; + w.user.role = session.role; };