Files
gemini-nexus/src/routes/index.tsx
T
Gemini Nexus Bot 7d2977b665 feat(ui): replace sidebar with compact top header navigation
- Rewrite MainLayout from vertical sidebar to horizontal header bar
- Brand left, nav tabs center, status indicator right
- Simplify StatusBar to single inline layout (remove collapsed variant)
- Widen content area from max-w-4xl to max-w-6xl
- Remove sidebar-collapsed localStorage persistence
2026-05-02 00:27:36 -03:00

54 lines
1.7 KiB
TypeScript

import { createFileRoute } from '@tanstack/react-router';
import { CloudAccountList } from '@/components/CloudAccountList';
import { Button } from '@/components/ui/button';
import { useToast } from '@/components/ui/use-toast';
import { getLocalizedErrorMessage } from '@/utils/errorMessages';
import { RefreshCw } from 'lucide-react';
import { useEffect, useRef } from 'react';
import { useTranslation } from 'react-i18next';
function HomePage() {
return (
<div className="container mx-auto max-w-6xl p-6">
<CloudAccountList />
</div>
);
}
function HomePageErrorBoundary({ error, reset }: { error: unknown; reset: () => void }) {
const { t } = useTranslation();
const { toast } = useToast();
const hasShownToastRef = useRef(false);
useEffect(() => {
if (hasShownToastRef.current) {
return;
}
toast({
title: t('error.generic'),
description: getLocalizedErrorMessage(error, t),
variant: 'destructive',
});
hasShownToastRef.current = true;
}, [error, t, toast]);
return (
<div className="container mx-auto max-w-4xl p-6">
<div className="rounded-xl border border-dashed border-white/[0.1] p-8 text-center">
<div className="text-base font-semibold">{t('error.generic')}</div>
<div className="text-muted-foreground mt-2 text-[13px]">{t('action.retry')}</div>
<Button className="mt-4" variant="outline" onClick={() => reset()}>
<RefreshCw className="mr-2 h-4 w-4" />
{t('action.retry')}
</Button>
</div>
</div>
);
}
export const Route = createFileRoute('/')({
component: HomePage,
errorComponent: HomePageErrorBoundary,
});