feat: Fix Overview always active, add Refresh button, add Logout in standalone

This commit is contained in:
dwindown
2025-11-05 00:00:59 +07:00
parent 8960ee1149
commit 04e02f1d67
3 changed files with 48 additions and 16 deletions

View File

@@ -1,16 +1,24 @@
import React from 'react';
import { Link, useLocation } from 'react-router-dom';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { DummyDataToggle } from '@/components/DummyDataToggle';
import { useDashboardContext } from '@/contexts/DashboardContext';
import { Button } from '@/components/ui/button';
import { RefreshCw } from 'lucide-react';
import { useDashboardPeriod } from '@/hooks/useDashboardPeriod';
import { DummyDataToggle } from '../DummyDataToggle';
import { __ } from '@/lib/i18n';
import { useQueryClient } from '@tanstack/react-query';
import type { SubItem } from '@/nav/tree';
type Props = { items?: SubItem[]; fullscreen?: boolean };
export default function DashboardSubmenuBar({ items = [], fullscreen = false }: Props) {
const { period, setPeriod } = useDashboardContext();
const { period, useDummy } = useDashboardPeriod();
const { pathname } = useLocation();
const queryClient = useQueryClient();
const handleRefresh = () => {
queryClient.invalidateQueries({ queryKey: ['analytics'] });
};
if (items.length === 0) return null;
@@ -56,20 +64,21 @@ export default function DashboardSubmenuBar({ items = [], fullscreen = false }:
})}
</div>
{/* Period Selector & Dummy Toggle */}
{/* Refresh & Dummy Toggle */}
<div className="flex items-center gap-2 flex-shrink-0">
{!useDummy && (
<Button
variant="outline"
size="sm"
onClick={handleRefresh}
className="h-8"
title={__('Refresh data (cached for 5 minutes)')}
>
<RefreshCw className="w-4 h-4 mr-1" />
{__('Refresh')}
</Button>
)}
<DummyDataToggle />
<Select value={period} onValueChange={setPeriod}>
<SelectTrigger className="w-[140px] h-8">
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value="7">{__('Last 7 days')}</SelectItem>
<SelectItem value="14">{__('Last 14 days')}</SelectItem>
<SelectItem value="30">{__('Last 30 days')}</SelectItem>
<SelectItem value="all">{__('All Time')}</SelectItem>
</SelectContent>
</Select>
</div>
</div>
</div>