From 514c61ea36a1eedf42704a93283550eb32bb8a73 Mon Sep 17 00:00:00 2001 From: sianida26 Date: Wed, 6 Nov 2024 03:38:55 +0700 Subject: [PATCH 1/3] chore: fix typo on manajemen identitas and akses subaspect --- apps/backend/src/drizzle/seeds/subAspectsSeeder.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/drizzle/seeds/subAspectsSeeder.ts b/apps/backend/src/drizzle/seeds/subAspectsSeeder.ts index 7c082d2..d31c177 100644 --- a/apps/backend/src/drizzle/seeds/subAspectsSeeder.ts +++ b/apps/backend/src/drizzle/seeds/subAspectsSeeder.ts @@ -4,7 +4,9 @@ import { aspects } from "../schema/aspects"; import { eq, and } from "drizzle-orm"; const subAspectSeeder = async () => { - const subAspectsData: (typeof subAspects.$inferInsert & { aspectName: string })[] = [ + const subAspectsData: (typeof subAspects.$inferInsert & { + aspectName: string; + })[] = [ /////// Aspect 1 { name: "Kesadaran", @@ -114,7 +116,7 @@ const subAspectSeeder = async () => { aspectName: "Proteksi", }, { - name: "Manajemen Identitas dan Aset", + name: "Manajemen Identitas dan Akses", createdAt: new Date(), updatedAt: new Date(), deletedAt: null, From a6be0b60af812b8dd9ad2205ec653e6eb5a4859f Mon Sep 17 00:00:00 2001 From: sianida26 Date: Wed, 6 Nov 2024 03:49:19 +0700 Subject: [PATCH 2/3] chore: redirect to login/dashboard on root path --- apps/frontend/src/routeTree.gen.ts | 36 +++++++++---------- apps/frontend/src/routes/index.lazy.tsx | 28 +++++---------- .../login/{index.lazy.tsx => index.tsx} | 5 +-- 3 files changed, 30 insertions(+), 39 deletions(-) rename apps/frontend/src/routes/login/{index.lazy.tsx => index.tsx} (97%) diff --git a/apps/frontend/src/routeTree.gen.ts b/apps/frontend/src/routeTree.gen.ts index 6f7f054..9cb45df 100644 --- a/apps/frontend/src/routeTree.gen.ts +++ b/apps/frontend/src/routeTree.gen.ts @@ -16,6 +16,7 @@ import { Route as rootRoute } from './routes/__root' import { Route as VerifyingLayoutImport } from './routes/_verifyingLayout' import { Route as DashboardLayoutImport } from './routes/_dashboardLayout' import { Route as AssessmentLayoutImport } from './routes/_assessmentLayout' +import { Route as LoginIndexImport } from './routes/login/index' import { Route as VerifyingLayoutVerifyingIndexImport } from './routes/_verifyingLayout/verifying/index' import { Route as DashboardLayoutUsersIndexImport } from './routes/_dashboardLayout/users/index' import { Route as DashboardLayoutTimetableIndexImport } from './routes/_dashboardLayout/timetable/index' @@ -32,7 +33,6 @@ import { Route as AssessmentLayoutAssessmentIndexImport } from './routes/_assess const IndexLazyImport = createFileRoute('/')() const RegisterIndexLazyImport = createFileRoute('/register/')() const LogoutIndexLazyImport = createFileRoute('/logout/')() -const LoginIndexLazyImport = createFileRoute('/login/')() const ForgotPasswordIndexLazyImport = createFileRoute('/forgot-password/')() const ForgotPasswordVerifyLazyImport = createFileRoute( '/forgot-password/verify', @@ -72,11 +72,6 @@ const LogoutIndexLazyRoute = LogoutIndexLazyImport.update({ getParentRoute: () => rootRoute, } as any).lazy(() => import('./routes/logout/index.lazy').then((d) => d.Route)) -const LoginIndexLazyRoute = LoginIndexLazyImport.update({ - path: '/login/', - getParentRoute: () => rootRoute, -} as any).lazy(() => import('./routes/login/index.lazy').then((d) => d.Route)) - const ForgotPasswordIndexLazyRoute = ForgotPasswordIndexLazyImport.update({ path: '/forgot-password/', getParentRoute: () => rootRoute, @@ -84,6 +79,11 @@ const ForgotPasswordIndexLazyRoute = ForgotPasswordIndexLazyImport.update({ import('./routes/forgot-password/index.lazy').then((d) => d.Route), ) +const LoginIndexRoute = LoginIndexImport.update({ + path: '/login/', + getParentRoute: () => rootRoute, +} as any) + const ForgotPasswordVerifyLazyRoute = ForgotPasswordVerifyLazyImport.update({ path: '/forgot-password/verify', getParentRoute: () => rootRoute, @@ -222,6 +222,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof ForgotPasswordVerifyLazyImport parentRoute: typeof rootRoute } + '/login/': { + id: '/login/' + path: '/login' + fullPath: '/login' + preLoaderRoute: typeof LoginIndexImport + parentRoute: typeof rootRoute + } '/forgot-password/': { id: '/forgot-password/' path: '/forgot-password' @@ -229,13 +236,6 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof ForgotPasswordIndexLazyImport parentRoute: typeof rootRoute } - '/login/': { - id: '/login/' - path: '/login' - fullPath: '/login' - preLoaderRoute: typeof LoginIndexLazyImport - parentRoute: typeof rootRoute - } '/logout/': { id: '/logout/' path: '/logout' @@ -344,8 +344,8 @@ export const routeTree = rootRoute.addChildren({ VerifyingLayoutVerifyingIndexRoute, }), ForgotPasswordVerifyLazyRoute, + LoginIndexRoute, ForgotPasswordIndexLazyRoute, - LoginIndexLazyRoute, LogoutIndexLazyRoute, RegisterIndexLazyRoute, }) @@ -363,8 +363,8 @@ export const routeTree = rootRoute.addChildren({ "/_dashboardLayout", "/_verifyingLayout", "/forgot-password/verify", - "/forgot-password/", "/login/", + "/forgot-password/", "/logout/", "/register/" ] @@ -400,12 +400,12 @@ export const routeTree = rootRoute.addChildren({ "/forgot-password/verify": { "filePath": "forgot-password/verify.lazy.tsx" }, + "/login/": { + "filePath": "login/index.tsx" + }, "/forgot-password/": { "filePath": "forgot-password/index.lazy.tsx" }, - "/login/": { - "filePath": "login/index.lazy.tsx" - }, "/logout/": { "filePath": "logout/index.lazy.tsx" }, diff --git a/apps/frontend/src/routes/index.lazy.tsx b/apps/frontend/src/routes/index.lazy.tsx index 5f2829f..036da44 100644 --- a/apps/frontend/src/routes/index.lazy.tsx +++ b/apps/frontend/src/routes/index.lazy.tsx @@ -1,27 +1,17 @@ -import { createLazyFileRoute, useNavigate } from "@tanstack/react-router"; -import { useEffect } from "react"; +import { createLazyFileRoute, Navigate } from "@tanstack/react-router"; export const Route = createLazyFileRoute("/")({ component: HomePage, }); export default function HomePage() { - const navigate = useNavigate(); - const userRole = JSON.parse(localStorage.getItem('userRole') || '{}'); + const userRole = JSON.parse(localStorage.getItem("userRole") || "{}"); - useEffect(() => { - if (userRole === "super-admin") { - navigate({ - to: "/users", - replace: true, - }); - } else if (userRole === "user") { - navigate({ - to: "/assessmentRequest", - replace: true, - }); - } - }, [navigate]); - - return
index.lazy
; + return userRole === "super-admin" ? ( + + ) : userRole === "user" ? ( + + ) : ( + + ); } diff --git a/apps/frontend/src/routes/login/index.lazy.tsx b/apps/frontend/src/routes/login/index.tsx similarity index 97% rename from apps/frontend/src/routes/login/index.lazy.tsx rename to apps/frontend/src/routes/login/index.tsx index 8ea13fe..09fa3a1 100644 --- a/apps/frontend/src/routes/login/index.lazy.tsx +++ b/apps/frontend/src/routes/login/index.tsx @@ -1,4 +1,4 @@ -import { createLazyFileRoute, useNavigate } from "@tanstack/react-router"; +import { createFileRoute, useNavigate } from "@tanstack/react-router"; import { useMutation } from "@tanstack/react-query"; import { Input } from '@/shadcn/components/ui/input.tsx'; import { Button } from '@/shadcn/components/ui/button.tsx'; @@ -21,7 +21,7 @@ import useAuth from "@/hooks/useAuth"; import { TbArrowNarrowRight } from "react-icons/tb"; import amatilogo from "@/assets/logos/amati-logo.png"; -export const Route = createLazyFileRoute("/login/")({ +export const Route = createFileRoute("/login/")({ component: LoginPage, }); @@ -36,6 +36,7 @@ const formSchema = z.object({ }); export default function LoginPage() { + console.log("hii"); const [errorMessage, setErrorMessage] = useState(""); const navigate = useNavigate(); From 8eacb4e1c950b9db3a506202691b4de4f4b97a0b Mon Sep 17 00:00:00 2001 From: sianida26 Date: Wed, 6 Nov 2024 04:20:13 +0700 Subject: [PATCH 3/3] ui: update logo and fix stretched logo on header --- .../src/assets/logos/amati-logo-old.png | Bin 0 -> 1991 bytes apps/frontend/src/assets/logos/amati-logo.png | Bin 1991 -> 5825 bytes apps/frontend/src/components/AppHeader.tsx | 128 ++++++++++-------- 3 files changed, 70 insertions(+), 58 deletions(-) create mode 100644 apps/frontend/src/assets/logos/amati-logo-old.png diff --git a/apps/frontend/src/assets/logos/amati-logo-old.png b/apps/frontend/src/assets/logos/amati-logo-old.png new file mode 100644 index 0000000000000000000000000000000000000000..bf15f563d4770d3700595058fdc9d3632219b803 GIT binary patch literal 1991 zcmV;&2RQhNP)@~0drDELIAGL9O(c600d`2O+f$vv5yPoW{?%E@-}mD>6?I1YtHb zUN=-4QXFs{)F*j4CJ4d|kdX8>#7~HS{=z^+Mi8Rp7H*C49&wX_FE9lJL71Eq+#6-g z-i!ucWD*F1FexM&Yig8taKD!nf*?$e0#9U8#19Ss3iQ8Gy0aI54?z$F9*<`uvC+7^ ziZ`X@=fC}DFBXvz1i=?8HobfYK@fxq5s?uDVNyh71VNY-nUe{NLNy7t!)2MfIooH{ zCc`}0HNInaPSc!!<`9I)2qiMA@iP|c4R9(ns#*3uh6AZcX#Otk;hZlQD9xm_-*6F^ zKJwDuqcOw3AiIXe!kD^Y??pLW>vBzm2=+!(mmNlSvN-s@T#d1-%vpVl{MRPVrP zUx~hV7e%gdMi7cOUSzB2=Fg{;kfJ1;x z##)iM9A?bl)K*};N3+MYd0f)kJl)4g^E$O9EoG50KL6a-y5eLGSnmo-ZUb9eStwLP zGGFLTT88z~CNe)@n~d#@opz_8z`Ryrn`8*ot6vcr0^M^x;x~bu z_*RG00PC32KBDRcsMn`4{vKhWs9_t?OW#5BBsbur&z28dr?BlIG?nx3*p4S>P(|$q zr$C%D+*8;Pt{Xo$tt-w#Ax!*Bf$kyB&~9a2cET{3N4nQ)3A$0J1o@iohigZS55%k6 zizlPu=f%`})TPh}?O#(qtqD%2@&+q|M21_DWFl=lNZkkn zXYJFESQ#WTTU}u)2y?*^-=DBDNM!y6k1d2%3w}u5XvZ+FRan{b9-niUq#_AjCIACb>==Ivxl%140upln{Q`b)?japWD`loPw^7|y9eLNxv=U5*hW|azWpq|j-w-WhruR*p40n5gxk(`> zDJ(^XxVKCoulj`e=LvJfzlhZCmt_6}Q;uRY1s__`%>@O0V z=a9p1GxWJIjsJ7YZ?5t-=s)5n2F7ke_FR^ItFTkVDKuHj?+n~ABmdsS$L%$YYkftP z(^$Cokd^ie;%gvT%kK<$7|e%3+(Oe9f5fR*&LX7{&*_qRM;>V`{^Xd(5yQB~4CU}c z!~LEU`0>E_4&S#33h|sSS)hA9=EO*238?%z&ub1#JMyX-X(V8hVA&%&>AU+H!<|DK z1>7bEwPT(X{5d(KU%(#)H{ne&9*t$ira=F*(2nT@iw*Hap(;nZpDznqI*`xIA&tUb Z{1tmmBwwEC<=_AS002ovPDHLkV1i_Wi7NmA literal 0 HcmV?d00001 diff --git a/apps/frontend/src/assets/logos/amati-logo.png b/apps/frontend/src/assets/logos/amati-logo.png index bf15f563d4770d3700595058fdc9d3632219b803..7f94e495241157aa0d4b5bc60f07081e12724663 100644 GIT binary patch literal 5825 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 S<=_AS002ovPDHLkU;%>J?2E<# diff --git a/apps/frontend/src/components/AppHeader.tsx b/apps/frontend/src/components/AppHeader.tsx index 4f4f701..ebbf575 100644 --- a/apps/frontend/src/components/AppHeader.tsx +++ b/apps/frontend/src/components/AppHeader.tsx @@ -62,68 +62,78 @@ export default function AppHeader({ toggle }: Props) { )} - + {/* Conditional Navlinks */} {!isSuperAdmin && ( -
- {showAssessmentResultLinks && ( - <> - { - if (window.opener) { - window.close(); - } - }} - > - Permohonan Assessment - - - Hasil Assessment - - - )} +
+ {showAssessmentResultLinks && ( + <> + { + if (window.opener) { + window.close(); + } + }} + > + Permohonan Assessment + + + Hasil Assessment + + + )} - {showAssessmentLinks && ( - <> - { - if (window.opener) { - window.close(); - } - }} - > - Permohonan Assessment - - - Assessment - - - )} -
+ {showAssessmentLinks && ( + <> + { + if (window.opener) { + window.close(); + } + }} + > + Permohonan Assessment + + + Assessment + + + )} +
)} ) : ( - {user?.name?.charAt(0) ?? "A"} + + {user?.name?.charAt(0) ?? "A"} + )}