Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-17 02:58:40 +00:00
co-authored by renee-png
parent 301dcdfe2a
commit d00e394012
3 changed files with 309 additions and 3 deletions
+8 -3
View File
@@ -2,6 +2,7 @@ import { createFileRoute, Link, useLocation } from "@tanstack/react-router";
import { ProtectedLayout } from "@/components/protected-layout";
import { PageContainer, PageHeader } from "@/components/app-shell";
import { Outlet } from "@tanstack/react-router";
import { useAuth } from "@/lib/auth";
import { cn } from "@/lib/utils";
export const Route = createFileRoute("/settings")({
@@ -9,22 +10,26 @@ export const Route = createFileRoute("/settings")({
});
const TABS = [
{ to: "/settings/profile", label: "My profile", anyone: true },
{ to: "/settings", label: "Company", exact: true },
{ to: "/settings/fees", label: "Fee schedule" },
{ to: "/settings/workflow", label: "Collections workflow" },
{ to: "/settings/workflows", label: "Task workflows" },
];
function SettingsLayout() {
const location = useLocation();
const { isAdmin } = useAuth();
const visibleTabs = TABS.filter((t) => t.anyone || isAdmin);
return (
<ProtectedLayout adminOnly>
<ProtectedLayout>
<PageContainer>
<PageHeader
title="Settings"
description="Configure firm-wide information and billing defaults."
/>
<div className="flex gap-1 border-b mb-6">
{TABS.map((t) => {
<div className="flex gap-1 border-b mb-6 overflow-x-auto">
{visibleTabs.map((t) => {
const active = t.exact
? location.pathname === t.to
: location.pathname.startsWith(t.to);