update layout

This commit is contained in:
2025-11-19 18:03:21 -03:00
parent d9873a5c74
commit cef81009f7
13 changed files with 35 additions and 76 deletions

View File

@@ -13,7 +13,6 @@ import { NavMain } from '@/components/nav-main'
import {
Sidebar,
SidebarContent,
SidebarFooter,
SidebarRail
} from '@repo/ui/components/ui/sidebar'
@@ -52,12 +51,11 @@ const navMain = [
export function AppSidebar() {
return (
<Sidebar collapsible="icon">
<Sidebar variant="inset" className="p-4">
<SidebarRail title="Mostrar/ocultar barra lateral" />
<SidebarContent>
<SidebarRail />
<NavMain navMain={navMain} />
</SidebarContent>
<SidebarFooter />
</Sidebar>
)
}

View File

@@ -1,12 +1,7 @@
import type { Route } from './+types/home'
import { Button } from '@repo/ui/components/ui/button'
export function meta({}: Route.MetaArgs) {
return [
{ title: 'New React Router App' },
{ name: 'description', content: 'Welcome to React Router!' }
]
return [{ title: 'Visão geral' }]
}
export function loader({ context }: Route.LoaderArgs) {
@@ -14,9 +9,5 @@ export function loader({ context }: Route.LoaderArgs) {
}
export default function Route({}: Route.ComponentProps) {
return (
<>
<Button>a</Button>
</>
)
return <></>
}

View File

@@ -7,12 +7,11 @@ import {
DownloadIcon,
FileSpreadsheetIcon,
FileTextIcon,
PlusCircleIcon,
PlusIcon
PlusCircleIcon
} from 'lucide-react'
import { MeiliSearchFilterBuilder } from 'meilisearch-helper'
import { Suspense, useState } from 'react'
import { Await, Link, Outlet, useParams, useSearchParams } from 'react-router'
import { Await, Outlet, useSearchParams } from 'react-router'
import type { BookType } from 'xlsx'
import * as XLSX from 'xlsx'
@@ -39,9 +38,8 @@ export function meta({}: Route.MetaArgs) {
return [{ title: 'Matrículas' }]
}
export async function loader({ params, context, request }: Route.LoaderArgs) {
export async function loader({ context, request }: Route.LoaderArgs) {
const { searchParams } = new URL(request.url)
const { orgid } = params
const query = searchParams.get('q') || ''
const from = searchParams.get('from')
const to = searchParams.get('to')
@@ -89,12 +87,7 @@ export default function Route({ loaderData: { data } }) {
return (
<Suspense fallback={<Skeleton />}>
<div className="space-y-0.5 mb-8">
<h1 className="text-2xl font-bold tracking-tight">
Gerenciar matrículas
</h1>
<p className="text-muted-foreground">
Matricule colaboradores de forma rápida e acompanhe seu progresso.
</p>
<h1 className="text-2xl font-bold tracking-tight">Matrículas</h1>
</div>
<Await resolve={data}>
@@ -248,8 +241,6 @@ export function ExportMenu({
headers: Record<string, string>
selectedRows: object[]
}) {
const { orgid } = useParams()
const exportFile = (bookType: BookType) => () => {
if (!selectedRows.length) {
return
@@ -267,7 +258,7 @@ export function ExportMenu({
origin: 'A1'
})
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1')
XLSX.writeFile(workbook, `${orgid}_users_${+now}.${bookType}`, {
XLSX.writeFile(workbook, `users_${+now}.${bookType}`, {
bookType,
compression: true
})

View File

@@ -9,10 +9,10 @@ import { Skeleton } from '@repo/ui/components/skeleton'
import { Kbd } from '@repo/ui/components/ui/kbd'
import { createSearch } from '@repo/util/meili'
import { columns, type c } from './columns'
import { columns, type Org } from './columns'
export function meta({}: Route.MetaArgs) {
return [{ title: 'Colaboradores' }]
return [{ title: 'Empresas' }]
}
export async function loader({ context, request }: Route.LoaderArgs) {
@@ -40,12 +40,7 @@ export default function Route({ loaderData: { data } }) {
return (
<Suspense fallback={<Skeleton />}>
<div className="space-y-0.5 mb-8">
<h1 className="text-2xl font-bold tracking-tight">
Gerenciar empresas
</h1>
<p className="text-muted-foreground">
Adicione colaboradores e organize sua equipe de forma prática.
</p>
<h1 className="text-2xl font-bold tracking-tight">Empresas</h1>
</div>
<Await resolve={data}>

View File

@@ -1,12 +1,7 @@
import type { Route } from './+types'
import { Button } from '@repo/ui/components/ui/button'
export function meta({}: Route.MetaArgs) {
return [
{ title: 'Histórico de pagamentos' },
{ name: 'description', content: 'Welcome to React Router!' }
]
return [{ title: 'Pagamentos' }]
}
export function loader({ context }: Route.LoaderArgs) {
@@ -16,7 +11,9 @@ export function loader({ context }: Route.LoaderArgs) {
export default function Route({}: Route.ComponentProps) {
return (
<>
<Button>a</Button>
<div className="space-y-0.5 mb-8">
<h1 className="text-2xl font-bold tracking-tight">Pagamentos</h1>
</div>
</>
)
}

View File

@@ -12,7 +12,7 @@ import { createSearch } from '@repo/util/meili'
import { columns, type User } from './columns'
export function meta({}: Route.MetaArgs) {
return [{ title: 'Colaboradores' }]
return [{ title: 'Usuários' }]
}
export async function loader({ context, request }: Route.LoaderArgs) {
@@ -40,12 +40,7 @@ export default function Route({ loaderData: { data } }) {
return (
<Suspense fallback={<Skeleton />}>
<div className="space-y-0.5 mb-8">
<h1 className="text-2xl font-bold tracking-tight">
Gerenciar colaboradores
</h1>
<p className="text-muted-foreground">
Adicione colaboradores e organize sua equipe de forma prática.
</p>
<h1 className="text-2xl font-bold tracking-tight">Usuários</h1>
</div>
<Await resolve={data}>

View File

@@ -1,22 +1,19 @@
import type { Route } from './+types'
import { Button } from '@repo/ui/components/ui/button'
export function meta({}: Route.MetaArgs) {
return [
{ title: 'Histórico de pagamentos' },
{ name: 'description', content: 'Welcome to React Router!' }
]
return [{ title: 'Webhooks' }]
}
export function loader({ context }: Route.LoaderArgs) {
return { message: context.cloudflare.env.VALUE_FROM_CLOUDFLARE }
export function loader({}: Route.LoaderArgs) {
return {}
}
export default function Route({}: Route.ComponentProps) {
return (
<>
<Button>a</Button>
<div className="space-y-0.5 mb-8">
<h1 className="text-2xl font-bold tracking-tight">Webhooks</h1>
</div>
</>
)
}

View File

@@ -37,11 +37,14 @@ export default function Route({ loaderData }: Route.ComponentProps) {
<SidebarInset className="relative flex flex-col flex-1 min-w-0">
<header
className="bg-background/15 backdrop-blur-sm
px-4 py-2 lg:py-4 sticky top-0 z-5"
px-4 py-2 lg:py-4 sticky top-0 z-5
md:rounded-t-2xl"
>
<div className="container mx-auto flex items-center">
<SidebarTrigger className="md:hidden" />
<ThemedImage className="max-md:hidden" />
<ThemedImage className="max-md:hidden flex gap-1">
<span className="text-muted-foreground text-xs">Insights</span>
</ThemedImage>
<div className="ml-auto flex gap-2.5 items-center">
<ModeToggle />
@@ -50,7 +53,7 @@ export default function Route({ loaderData }: Route.ComponentProps) {
</div>
</header>
<main className="p-4">
<div className="p-4">
<div className="container mx-auto relative">
<Outlet />
<Toaster
@@ -60,7 +63,7 @@ export default function Route({ loaderData }: Route.ComponentProps) {
closeButton={true}
/>
</div>
</main>
</div>
</SidebarInset>
</SidebarProvider>
)