From de340a6d465643e8b41bcbd29ddcce153358c82e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Tue, 25 Nov 2025 10:05:54 -0300 Subject: [PATCH] update routes --- .../routes/_.$orgid.admins._index/route.tsx | 2 +- .../routes/_.$orgid.batch._index/route.tsx | 2 +- .../routes/_.$orgid.certs._index/route.tsx | 4 +- .../routes/_.$orgid.courses._index/route.tsx | 2 +- .../_.$orgid.enrollments._index/route.tsx | 2 +- .../routes/_.$orgid.enrollments.add/route.tsx | 2 +- .../routes/_.$orgid.orders._index/route.tsx | 2 +- .../app/routes/_.$orgid.scheduled/route.tsx | 2 +- .../_.$orgid.users.$id._index/route.tsx | 2 +- .../_.$orgid.users.$id.emails/route.tsx | 2 +- .../routes/_.$orgid.users.$id.logs/route.tsx | 6 +- .../app/routes/_.$orgid.users.$id/route.tsx | 6 +- .../routes/_.$orgid.users._index/columns.tsx | 1 - .../routes/_.$orgid.users._index/route.tsx | 2 +- .../routes/_.$orgid.webhooks._index/route.tsx | 2 +- .../app/routes/_app._index/route.tsx | 2 +- .../_app.enrollments._index/columns.tsx | 3 + .../routes/_app.enrollments._index/route.tsx | 4 +- .../app/routes/_app.orgs._index/columns.tsx | 36 ++++++ .../app/routes/_app.orgs._index/route.tsx | 4 +- .../routes/_app.payments._index/columns.tsx | 6 +- .../app/routes/_app.payments._index/route.tsx | 2 +- .../app/routes/_app.users._index/columns.tsx | 122 +++++++++++------- .../app/routes/_app.users._index/route.tsx | 10 +- .../app/routes/_app/route.tsx | 2 +- .../app/routes/login._index/route.ts | 2 +- .../app/routes/logout._index/route.ts | 2 +- .../app/routes/~.api.$/route.ts | 2 +- 28 files changed, 152 insertions(+), 84 deletions(-) diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.admins._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.admins._index/route.tsx index 6e1e8f4..8c60147 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.admins._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.admins._index/route.tsx @@ -57,7 +57,7 @@ export async function loader({ context, request, params }: Route.LoaderArgs) { } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { return ( }>
diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.batch._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.batch._index/route.tsx index 7b03b91..0572602 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.batch._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.batch._index/route.tsx @@ -32,7 +32,7 @@ export async function loader({ context, request, params }: Route.LoaderArgs) { } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { return ( }>
diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.certs._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.certs._index/route.tsx index a69ac8e..bd2569f 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.certs._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.certs._index/route.tsx @@ -1,8 +1,10 @@ +import type { Route } from './+types/route' + export function meta({}) { return [{ title: 'Certificações' }] } -export default function Route() { +export default function Route({}: Route.ComponentProps) { return ( <>
diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.courses._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.courses._index/route.tsx index bbebe54..08ade5e 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.courses._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.courses._index/route.tsx @@ -68,7 +68,7 @@ export async function loader({ context, request, params }: Route.LoaderArgs) { } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { const [searchParams, setSearchParams] = useSearchParams() const term = searchParams.get('term') as string diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments._index/route.tsx index af755d6..25613b2 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments._index/route.tsx @@ -65,7 +65,7 @@ const formatted = new Intl.DateTimeFormat('en-CA', { day: '2-digit' }) -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { const { orgid } = useParams() const [searchParams, setSearchParams] = useSearchParams() const [selectedRows, setSelectedRows] = useState([]) diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.add/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.add/route.tsx index 1d74197..e3ec566 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.add/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.add/route.tsx @@ -22,7 +22,7 @@ export function meta({}: Route.MetaArgs) { return [{ title: 'Adicionar matrícula' }] } -export default function Route() { +export default function Route({}: Route.ComponentProps) { return (
diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.orders._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.orders._index/route.tsx index 59321b7..27c2792 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.orders._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.orders._index/route.tsx @@ -39,7 +39,7 @@ export async function loader({ params, context, request }: Route.LoaderArgs) { } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { return ( }>
diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.scheduled/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.scheduled/route.tsx index ac09bae..854b562 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.scheduled/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.scheduled/route.tsx @@ -22,7 +22,7 @@ export async function loader({ context, request, params }: Route.LoaderArgs) { } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { return ( <>
diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id._index/route.tsx index abe70db..2e07402 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id._index/route.tsx @@ -27,7 +27,7 @@ import { useForm } from 'react-hook-form' import type { User } from '../_.$orgid.users.$id/route' import { formSchema, type Schema } from '../_.$orgid.users.add/route' -export default function Route() { +export default function Route({}: Route.ComponentProps) { const { user } = useOutletContext() as { user: User } const form = useForm({ defaultValues: user, diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id.emails/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id.emails/route.tsx index 28ad39f..ab7886e 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id.emails/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id.emails/route.tsx @@ -32,7 +32,7 @@ export async function loader({ params, request, context }: Route.LoaderArgs) { return { data } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { const { user } = useOutletContext() as { user: User } return ( diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id.logs/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id.logs/route.tsx index f821929..098c070 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id.logs/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id.logs/route.tsx @@ -1,3 +1,5 @@ -export default function Route() { - return <>user logs +import type { Route } from './+types/route' + +export default function Route({}: Route.ComponentProps) { + return <>user logs } diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id/route.tsx index 7927c40..1e264a5 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users.$id/route.tsx @@ -62,11 +62,7 @@ const links = [ { to: 'emails', title: 'Emails' } ] -export default function Route({ - loaderData: { user } -}: { - loaderData: Awaited> -}) { +export default function Route({ loaderData: { user } }: Route.ComponentProps) { return (
diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users._index/columns.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users._index/columns.tsx index a758815..0888185 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users._index/columns.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users._index/columns.tsx @@ -34,7 +34,6 @@ import { DropdownMenuTrigger } from '@repo/ui/components/ui/dropdown-menu' import { Spinner } from '@repo/ui/components/ui/spinner' -import { initials } from '@repo/ui/lib/utils' import { type User, columns as columns_ } from '@repo/ui/routes/users/columns' export type { User } diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users._index/route.tsx index 01caaaa..6514387 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.users._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.users._index/route.tsx @@ -49,7 +49,7 @@ export async function loader({ params, context, request }: Route.LoaderArgs) { return { data: users } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { const { orgid } = useParams() const [searchParams, setSearchParams] = useSearchParams() const [selectedRows, setSelectedRows] = useState([]) diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.webhooks._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.webhooks._index/route.tsx index 8a30c1d..9298bc7 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.webhooks._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.webhooks._index/route.tsx @@ -10,7 +10,7 @@ export async function loader(): Promise { return [] } -export default function Route() { +export default function Route({}: Route.ComponentProps) { return ( <>
diff --git a/apps/insights.saladeaula.digital/app/routes/_app._index/route.tsx b/apps/insights.saladeaula.digital/app/routes/_app._index/route.tsx index dbad45c..f240d1b 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app._index/route.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app._index/route.tsx @@ -1,4 +1,4 @@ -import type { Route } from './+types/home' +import type { Route } from './+types/route' export function meta({}: Route.MetaArgs) { return [{ title: 'Visão geral' }] diff --git a/apps/insights.saladeaula.digital/app/routes/_app.enrollments._index/columns.tsx b/apps/insights.saladeaula.digital/app/routes/_app.enrollments._index/columns.tsx index 98b2d61..f09606f 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app.enrollments._index/columns.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app.enrollments._index/columns.tsx @@ -19,6 +19,8 @@ import { type Enrollment } from '@repo/ui/routes/enrollments/columns' +import { CopyToClipboardItem } from '../_app.users._index/columns' + export type { Enrollment } export const columns: ColumnDef[] = [ @@ -58,6 +60,7 @@ function ActionMenu({ row }: { row: any }) { + ([]) const status = searchParams.get('status') diff --git a/apps/insights.saladeaula.digital/app/routes/_app.orgs._index/columns.tsx b/apps/insights.saladeaula.digital/app/routes/_app.orgs._index/columns.tsx index 31f9de7..262559b 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app.orgs._index/columns.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app.orgs._index/columns.tsx @@ -2,6 +2,14 @@ import { type ColumnDef } from '@tanstack/react-table' +import { EllipsisVerticalIcon } from 'lucide-react' + +import { Button } from '@repo/ui/components/ui/button' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuTrigger +} from '@repo/ui/components/ui/dropdown-menu' import { Abbr } from '@repo/ui/components/abbr' import { Avatar, AvatarFallback } from '@repo/ui/components/ui/avatar' import { initials } from '@repo/ui/lib/utils' @@ -13,6 +21,8 @@ import { } from '@repo/ui/components/data-table' import type { Org } from '@repo/ui/routes/orgs/data' +import { CopyToClipboardItem } from '../_app.users._index/columns' + export type { Org } export const columns: ColumnDef[] = [ @@ -53,5 +63,31 @@ export const columns: ColumnDef[] = [ accessorKey: 'createDate', header: 'Cadastrado em', cell: DataTableColumnDatetime + }, + { + id: 'actions', + cell: ActionMenu } ] + +function ActionMenu({ row }: { row: any }) { + return ( +
+ + + + + + + + +
+ ) +} diff --git a/apps/insights.saladeaula.digital/app/routes/_app.orgs._index/route.tsx b/apps/insights.saladeaula.digital/app/routes/_app.orgs._index/route.tsx index 0b7b8f7..059772a 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app.orgs._index/route.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app.orgs._index/route.tsx @@ -1,4 +1,4 @@ -import type { Route } from './+types' +import type { Route } from './+types/route' import { Suspense } from 'react' import { Await, useSearchParams } from 'react-router' @@ -34,7 +34,7 @@ export async function loader({ context, request }: Route.LoaderArgs) { return { data: users } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { const [searchParams, setSearchParams] = useSearchParams() return ( diff --git a/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx b/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx index c20aca5..e5d1b70 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx @@ -12,6 +12,8 @@ import { } from '@repo/ui/components/data-table' import { columns as columns_, type Order } from '@repo/ui/routes/orders/columns' +export type { Order } + export const columns: ColumnDef[] = [ { id: 'select', @@ -42,8 +44,8 @@ export const columns: ColumnDef[] = [ } }, { - accessorKey: 'cnpj_cpf', - header: 'CNPJ/CPF', + accessorKey: 'cpf_cnpj', + header: 'CPF/CNPJ', // @ts-ignore accessorFn: ({ cpf, cnpj }) => cpf ?? cnpj, cell: DataTableColumnCpfCnpj diff --git a/apps/insights.saladeaula.digital/app/routes/_app.payments._index/route.tsx b/apps/insights.saladeaula.digital/app/routes/_app.payments._index/route.tsx index 86516c5..a53cc4d 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app.payments._index/route.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app.payments._index/route.tsx @@ -30,7 +30,7 @@ export async function loader({ context, request }: Route.LoaderArgs) { } } -export default function Route({ loaderData: { data } }) { +export default function Route({ loaderData: { data } }: Route.ComponentProps) { return ( }>
diff --git a/apps/insights.saladeaula.digital/app/routes/_app.users._index/columns.tsx b/apps/insights.saladeaula.digital/app/routes/_app.users._index/columns.tsx index cfa06e1..b9fd5a2 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app.users._index/columns.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app.users._index/columns.tsx @@ -1,25 +1,25 @@ 'use client' +import { useBoolean } from 'ahooks' import { type ColumnDef } from '@tanstack/react-table' +import { CheckIcon, CopyIcon, EllipsisVerticalIcon } from 'lucide-react' -import { Abbr } from '@repo/ui/components/abbr' import { - DataTableColumnDatetime, DataTableColumnSelect, - DataTableColumnCpfCnpj, DataTableColumnHeaderSelect } from '@repo/ui/components/data-table' -import { Avatar, AvatarFallback } from '@repo/ui/components/ui/avatar' -import { initials } from '@repo/ui/lib/utils' +import { Button } from '@repo/ui/components/ui/button' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger +} from '@repo/ui/components/ui/dropdown-menu' +import { type User, columns as columns_ } from '@repo/ui/routes/users/columns' +import { cn } from '@repo/ui/lib/utils' +import { useRef } from 'react' -// This type is used to define the shape of our data. -// You can use a Zod schema here if you want. -export type User = { - id: string - name: string - email: string - cpf?: string -} +export type { User } export const columns: ColumnDef[] = [ { @@ -27,42 +27,66 @@ export const columns: ColumnDef[] = [ header: DataTableColumnHeaderSelect, cell: DataTableColumnSelect }, + ...columns_, { - header: 'Usuário', - cell: ({ row }) => { - const { name, email } = row.original - - return ( -
- - {initials(name)} - - -
    -
  • - {name} -
  • -
  • - {email} -
  • -
-
- ) - } - }, - { - accessorKey: 'cpf', - header: 'CPF', - cell: DataTableColumnCpfCnpj - }, - { - accessorKey: 'lastLogin', - header: 'Último accesso', - cell: DataTableColumnDatetime - }, - { - accessorKey: 'createDate', - header: 'Cadastrado em', - cell: DataTableColumnDatetime + id: 'actions', + cell: ActionMenu } ] + +function ActionMenu({ row }: { row: any }) { + return ( +
+ + + + + + + + +
+ ) +} + +export function CopyToClipboardItem({ text }: { text: string }) { + const [isCopied, { setTrue, setFalse }] = useBoolean() + const timeoutRef = useRef | null>(null) + + return ( + e.preventDefault()} + className={cn({ 'pointer-events-none': isCopied })} + onClick={async () => { + await navigator.clipboard.writeText(text) + setTrue() + + if (timeoutRef.current) { + clearTimeout(timeoutRef.current) + } + + timeoutRef.current = setTimeout(() => { + setFalse() + timeoutRef.current = null + }, 3000) + }} + > + {isCopied ? ( + <> + Copiado! + + ) : ( + <> + Copiar ID + + )} + + ) +} diff --git a/apps/insights.saladeaula.digital/app/routes/_app.users._index/route.tsx b/apps/insights.saladeaula.digital/app/routes/_app.users._index/route.tsx index c3004b6..2193795 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app.users._index/route.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app.users._index/route.tsx @@ -1,7 +1,8 @@ -import type { Route } from './+types' +import type { Route } from './+types/route' import { Suspense } from 'react' import { Await, useSearchParams } from 'react-router' +import { MeiliSearchFilterBuilder } from 'meilisearch-helper' import { DataTable } from '@repo/ui/components/data-table' import { SearchForm } from '@repo/ui/components/search-form' @@ -18,13 +19,16 @@ export function meta({}: Route.MetaArgs) { export async function loader({ context, request }: Route.LoaderArgs) { const { searchParams } = new URL(request.url) const query = searchParams.get('q') || '' + const sort = searchParams.get('sort') || 'createDate:desc' const page = Number(searchParams.get('p')) + 1 const hitsPerPage = Number(searchParams.get('perPage')) || 25 + let builder = new MeiliSearchFilterBuilder().where('cnpj', 'exists', false) + const users = createSearch({ index: 'betaeducacao-prod-users_d2o3r5gmm4it7j', - sort: ['createDate:desc', 'create_date:desc'], - filter: 'cnpj NOT EXISTS', + filter: builder.build(), + sort: [sort], query, page, hitsPerPage, diff --git a/apps/insights.saladeaula.digital/app/routes/_app/route.tsx b/apps/insights.saladeaula.digital/app/routes/_app/route.tsx index ecadd71..80e81ae 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app/route.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app/route.tsx @@ -1,4 +1,4 @@ -import type { Route } from './+types' +import type { Route } from './+types/route' import * as cookie from 'cookie' import { Outlet } from 'react-router' diff --git a/apps/insights.saladeaula.digital/app/routes/login._index/route.ts b/apps/insights.saladeaula.digital/app/routes/login._index/route.ts index 9724d00..b34e98f 100644 --- a/apps/insights.saladeaula.digital/app/routes/login._index/route.ts +++ b/apps/insights.saladeaula.digital/app/routes/login._index/route.ts @@ -1,4 +1,4 @@ -import type { Route } from './+types' +import type { Route } from './+types/route' import { redirect } from 'react-router' diff --git a/apps/insights.saladeaula.digital/app/routes/logout._index/route.ts b/apps/insights.saladeaula.digital/app/routes/logout._index/route.ts index 201a130..53f0f92 100644 --- a/apps/insights.saladeaula.digital/app/routes/logout._index/route.ts +++ b/apps/insights.saladeaula.digital/app/routes/logout._index/route.ts @@ -1,4 +1,4 @@ -import type { Route } from './+types' +import type { Route } from './+types/route' import { redirect } from 'react-router' import type { OAuth2Strategy } from 'remix-auth-oauth2' diff --git a/apps/insights.saladeaula.digital/app/routes/~.api.$/route.ts b/apps/insights.saladeaula.digital/app/routes/~.api.$/route.ts index 02aa633..af722e6 100644 --- a/apps/insights.saladeaula.digital/app/routes/~.api.$/route.ts +++ b/apps/insights.saladeaula.digital/app/routes/~.api.$/route.ts @@ -1,4 +1,4 @@ -import type { Route } from './+types' +import type { Route } from './+types/route' import type { User } from '@repo/auth/auth' import { userContext } from '@repo/auth/context'