fix: generate route trees and fix build errors for all apps

- Generated routeTree.gen.ts for all 6 apps (was empty placeholder)
- Fixed className backtick syntax in roles create/edit pages
- Fixed unescaped quote in dimentorin settings FAQ
- Route trees enable proper SPA navigation (no more full page reloads)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
maulanasdqn
2026-04-11 22:53:17 +07:00
co-authored by Claude Opus 4.6
parent 8cb7b592eb
commit d5b267332f
38 changed files with 2564 additions and 78 deletions
@@ -9,7 +9,7 @@ import {
useUpdateUserById,
} from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/accounts/$id')({
export const Route = createFileRoute('/_authenticated/accounts_/$id')({
component: AccountsEditPage,
})
@@ -10,7 +10,7 @@ import {
useUpdateEvent,
} from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/cms-events/$id')({
export const Route = createFileRoute('/_authenticated/cms-events_/$id')({
component: CmsEventsEditPage,
})
@@ -6,7 +6,7 @@ import { Button } from '@imphnen-frontend-service/ui/atoms'
import { ControlledInputField } from '@imphnen-frontend-service/ui/organisms'
import { useCreateEvent } from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/cms-events/create')({
export const Route = createFileRoute('/_authenticated/cms-events_/create')({
component: CmsEventsCreatePage,
})
@@ -10,7 +10,7 @@ import {
useUpdateTestimonial,
} from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/cms-testimonials/$id')({
export const Route = createFileRoute('/_authenticated/cms-testimonials_/$id')({
component: CmsTestimonialsEditPage,
})
@@ -6,7 +6,7 @@ import { Button } from '@imphnen-frontend-service/ui/atoms'
import { ControlledInputField } from '@imphnen-frontend-service/ui/organisms'
import { useCreateTestimonial } from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/cms-testimonials/create')({
export const Route = createFileRoute('/_authenticated/cms-testimonials_/create')({
component: CmsTestimonialsCreatePage,
})
@@ -10,7 +10,7 @@ import {
useUpdateGachaItem,
} from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/dashboard/$id')({
export const Route = createFileRoute('/_authenticated/dashboard_/$id')({
component: DashboardEditPage,
})
@@ -6,7 +6,7 @@ import { Button } from '@imphnen-frontend-service/ui/atoms'
import { ControlledInputField } from '@imphnen-frontend-service/ui/organisms'
import { useCreateGachaItem } from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/dashboard/create')({
export const Route = createFileRoute('/_authenticated/dashboard_/create')({
component: DashboardCreatePage,
})
@@ -10,7 +10,7 @@ import {
useUpdateGachaItem,
} from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/gacha-roll/$id')({
export const Route = createFileRoute('/_authenticated/gacha-roll_/$id')({
component: GachaRollEditPage,
})
@@ -6,7 +6,7 @@ import { Button } from '@imphnen-frontend-service/ui/atoms'
import { ControlledInputField } from '@imphnen-frontend-service/ui/organisms'
import { useCreateGachaItem } from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/gacha-roll/create')({
export const Route = createFileRoute('/_authenticated/gacha-roll_/create')({
component: GachaRollCreatePage,
})
@@ -10,7 +10,7 @@ import {
useUpdatePermission,
} from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/permissions/$id')({
export const Route = createFileRoute('/_authenticated/permissions_/$id')({
component: PermissionsEditPage,
})
@@ -6,7 +6,7 @@ import { Button } from '@imphnen-frontend-service/ui/atoms'
import { ControlledInputField } from '@imphnen-frontend-service/ui/organisms'
import { useCreatePermission } from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/permissions/create')({
export const Route = createFileRoute('/_authenticated/permissions_/create')({
component: PermissionsCreatePage,
})
@@ -7,7 +7,7 @@ import { Button } from '@imphnen-frontend-service/ui/atoms'
import { ControlledInputField } from '@imphnen-frontend-service/ui/organisms'
import { useRoadmapList, useUpdateRoadmap, TRoadmapStatus } from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/roadmap-dimentorin/$id')({
export const Route = createFileRoute('/_authenticated/roadmap-dimentorin_/$id')({
component: RoadmapEditPage,
})
@@ -6,7 +6,7 @@ import { Button } from '@imphnen-frontend-service/ui/atoms'
import { ControlledInputField } from '@imphnen-frontend-service/ui/organisms'
import { useCreateRoadmap, TRoadmapStatus } from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/roadmap-dimentorin/create')({
export const Route = createFileRoute('/_authenticated/roadmap-dimentorin_/create')({
component: RoadmapCreatePage,
})
@@ -10,7 +10,7 @@ import {
useUpdateRole,
} from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/roles/$id')({
export const Route = createFileRoute('/_authenticated/roles_/$id')({
component: RolesEditPage,
})
@@ -102,19 +102,19 @@ function RolesEditPage() {
<hr className="border-blue-200" />
<div className="flex flex-col items-start gap-4 mb-4">
<div className="flex gap-[8px] items-center">
<input type="checkbox" id={`${title}-read`} />
<input type="checkbox" id={"${title}-read"} />
<label htmlFor={`${title}-read`}>Read</label>
</div>
<div className="flex gap-[8px] items-center">
<input type="checkbox" id={`${title}-create`} />
<input type="checkbox" id={"${title}-create"} />
<label htmlFor={`${title}-create`}>Create</label>
</div>
<div className="flex gap-[8px] items-center">
<input type="checkbox" id={`${title}-update`} />
<input type="checkbox" id={"${title}-update"} />
<label htmlFor={`${title}-update`}>Update</label>
</div>
<div className="flex gap-[8px] items-center">
<input type="checkbox" id={`${title}-delete`} />
<input type="checkbox" id={"${title}-delete"} />
<label htmlFor={`${title}-delete`}>Delete</label>
</div>
</div>
@@ -6,7 +6,7 @@ import { Button } from '@imphnen-frontend-service/ui/atoms'
import { ControlledInputField } from '@imphnen-frontend-service/ui/organisms'
import { useCreateRole } from '@imphnen-frontend-service/service'
export const Route = createFileRoute('/_authenticated/roles/create')({
export const Route = createFileRoute('/_authenticated/roles_/create')({
component: RolesCreatePage,
})
@@ -85,19 +85,19 @@ function RolesCreatePage() {
<hr className="border-blue-200" />
<div className="flex flex-col items-start gap-4 mb-4">
<div className="flex gap-[8px] items-center">
<input type="checkbox" id={`${title}-read`} />
<input type="checkbox" id={"${title}-read"} />
<label htmlFor={`${title}-read`}>Read</label>
</div>
<div className="flex gap-[8px] items-center">
<input type="checkbox" id={`${title}-create`} />
<input type="checkbox" id={"${title}-create"} />
<label htmlFor={`${title}-create`}>Create</label>
</div>
<div className="flex gap-[8px] items-center">
<input type="checkbox" id={`${title}-update`} />
<input type="checkbox" id={"${title}-update"} />
<label htmlFor={`${title}-update`}>Update</label>
</div>
<div className="flex gap-[8px] items-center">
<input type="checkbox" id={`${title}-delete`} />
<input type="checkbox" id={"${title}-delete"} />
<label htmlFor={`${title}-delete`}>Delete</label>
</div>
</div>
@@ -20,7 +20,7 @@ Saya ingin tahu secara khusus tentang ___.
const labelClass = cn('text-neutral-800 text-[10px] font-semibold mb-1.5 inline-block md:text-xs md:mb-2 xl:text-[15px]')
export const Route = createFileRoute('/_authenticated/session-dimentorin/$id')({
export const Route = createFileRoute('/_authenticated/session-dimentorin_/$id')({
component: SessionDetailPage,
})
@@ -70,7 +70,7 @@ function SessionDetailPage() {
<div>
<h3 className="text-p2 font-semibold text-primary-500 mb-4">Mentor</h3>
<div>
<p className="text-p3 font-semibold mb-2.5">{session?.mentor_id ?? '-'}</p>
<p className="text-p3 font-semibold mb-2.5">{session?.mentor_id ?? "-"}</p>
</div>
</div>
</div>
@@ -79,13 +79,13 @@ function SessionDetailPage() {
<div>
<h3 className="text-p2 font-semibold text-primary-500 mb-4">Mentee</h3>
<div>
<p className="text-p3 font-semibold mb-2.5">{session?.mentee_fullname ?? '-'}</p>
<p className="text-neutral-600">{session?.mentee_email ?? '-'}</p>
<p className="text-p3 font-semibold mb-2.5">{session?.mentee_fullname ?? "-"}</p>
<p className="text-neutral-600">{session?.mentee_email ?? "-"}</p>
</div>
</div>
<div>
<h3 className="text-p2 font-semibold text-neutral-700 mb-4">Status</h3>
<div className={`py-2 px-6 rounded-md text-center capitalize font-semibold ${statusColors[session?.status ?? ''] ?? 'bg-neutral-200 text-neutral-700'}`}>
<div className={`py-2 px-6 rounded-md text-center capitalize font-semibold ${statusColors[session?.status ?? ``] ?? `bg-neutral-200 text-neutral-700`}`}>
{session?.status ?? '-'}
</div>
</div>
@@ -135,7 +135,7 @@ function SessionDetailPage() {
</div>
<div className="relative md:col-span-full">
<label className={labelClass}>Tipe Sesi</label>
<Select className="min-w-full w-full" value={session?.session_type ?? 'online'} disabled>
<Select className="min-w-full w-full" value={session?.session_type ?? "online"} disabled>
<option value="online">Online</option>
<option value="offline">Offline</option>
</Select>
@@ -15,9 +15,9 @@ import {
const labelClass = cn('text-neutral-800 text-[10px] font-semibold mb-1.5 inline-block md:text-xs md:mb-2 xl:text-[15px]')
const SOCIAL_LINKS = [
{ icon: <Icon icon="mdi:linkedin" className="text-2xl" />, key: 'linkedin_url', label: 'LinkedIn' },
{ icon: <Icon icon="mdi:github" className="text-2xl" />, key: 'github_url', label: 'Github' },
{ icon: <Icon icon="mingcute:meta-line" className="text-2xl" />, key: 'portfolio_url', label: 'Portfolio' },
{ icon: <Icon icon="mdi:linkedin" className="text-2xl" />, key: "linkedin_url", label: "LinkedIn" },
{ icon: <Icon icon="mdi:github" className="text-2xl" />, key: "github_url", label: "Github" },
{ icon: <Icon icon="mingcute:meta-line" className="text-2xl" />, key: "portfolio_url", label: "Portfolio" },
]
const TABS = {
@@ -26,7 +26,7 @@ const TABS = {
} as const
type TabType = typeof TABS[keyof typeof TABS]
export const Route = createFileRoute('/_authenticated/users-dimentorin/$id')({
export const Route = createFileRoute('/_authenticated/users-dimentorin_/$id')({
component: UserDetailPage,
})
@@ -162,7 +162,7 @@ function UserDetailPage() {
</div>
<div className="flex justify-end gap-x-5 mt-8">
<Button type="button" variant="bordered" onClick={() => navigate({ to: '/users-dimentorin' })}>
<Button type="button" variant="bordered" onClick={() => navigate({ to: "/users-dimentorin" })}>
Kembali
</Button>
</div>
@@ -185,7 +185,7 @@ function UserDetailPage() {
<div>
<h3 className="text-p2 font-semibold text-neutral-800">{displayName}</h3>
<p className="text-p3 font-medium text-neutral-600">
{mentor ? `${mentor.current_role ?? ''} at ${mentor.current_company ?? ''}` : user?.role?.name ?? '-'}
{mentor ? `${mentor.current_role ?? ``} at ${mentor.current_company ?? ``}` : user?.role?.name ?? `-`}
</p>
</div>
</div>