fix(usage): use sentinel value for All Accounts select to prevent Radix empty string crash
This commit is contained in:
1 parent
2f42d70d78
commit
c73537d44c
1 file changed
+8
-7
@@ -114,7 +114,8 @@ function formatBucketLabel(bucket: string, range: TimeRange): string {
|
|||||||
function UsagePage() {
|
function UsagePage() {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const [range, setRange] = useState<TimeRange>('7d');
|
const [range, setRange] = useState<TimeRange>('7d');
|
||||||
const [selectedAccountId, setSelectedAccountId] = useState<string | undefined>(undefined);
|
const ALL_ACCOUNTS = '__all__';
|
||||||
|
const [selectedAccountId, setSelectedAccountId] = useState<string>(ALL_ACCOUNTS);
|
||||||
const { data: accounts, isLoading: accountsLoading } = useCloudAccounts();
|
const { data: accounts, isLoading: accountsLoading } = useCloudAccounts();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
@@ -126,7 +127,7 @@ function UsagePage() {
|
|||||||
queryKey: ['usage', 'day', range, selectedAccountId],
|
queryKey: ['usage', 'day', range, selectedAccountId],
|
||||||
queryFn: () => {
|
queryFn: () => {
|
||||||
const { start, end } = getTimeRange(range);
|
const { start, end } = getTimeRange(range);
|
||||||
return ipc.client.usage.getUsageByDay({ accountId: selectedAccountId, start, end });
|
return ipc.client.usage.getUsageByDay({ accountId: selectedAccountId === ALL_ACCOUNTS ? undefined : selectedAccountId, start, end });
|
||||||
},
|
},
|
||||||
refetchInterval: 30000,
|
refetchInterval: 30000,
|
||||||
refetchIntervalInBackground: false,
|
refetchIntervalInBackground: false,
|
||||||
@@ -142,7 +143,7 @@ function UsagePage() {
|
|||||||
queryKey: ['usage', 'model', range, selectedAccountId],
|
queryKey: ['usage', 'model', range, selectedAccountId],
|
||||||
queryFn: () => {
|
queryFn: () => {
|
||||||
const { start, end } = getTimeRange(range);
|
const { start, end } = getTimeRange(range);
|
||||||
return ipc.client.usage.getUsageByModel({ accountId: selectedAccountId, start, end });
|
return ipc.client.usage.getUsageByModel({ accountId: selectedAccountId === ALL_ACCOUNTS ? undefined : selectedAccountId, start, end });
|
||||||
},
|
},
|
||||||
refetchInterval: 30000,
|
refetchInterval: 30000,
|
||||||
refetchIntervalInBackground: false,
|
refetchIntervalInBackground: false,
|
||||||
@@ -158,7 +159,7 @@ function UsagePage() {
|
|||||||
queryKey: ['usage', 'hour', range, selectedAccountId],
|
queryKey: ['usage', 'hour', range, selectedAccountId],
|
||||||
queryFn: () => {
|
queryFn: () => {
|
||||||
const { start, end } = getTimeRange(range);
|
const { start, end } = getTimeRange(range);
|
||||||
return ipc.client.usage.getUsageByHour({ accountId: selectedAccountId, start, end });
|
return ipc.client.usage.getUsageByHour({ accountId: selectedAccountId === ALL_ACCOUNTS ? undefined : selectedAccountId, start, end });
|
||||||
},
|
},
|
||||||
enabled: range === '24h',
|
enabled: range === '24h',
|
||||||
refetchInterval: 30000,
|
refetchInterval: 30000,
|
||||||
@@ -231,8 +232,8 @@ function UsagePage() {
|
|||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
{/* Account filter */}
|
{/* Account filter */}
|
||||||
<Select
|
<Select
|
||||||
value={selectedAccountId || ''}
|
value={selectedAccountId}
|
||||||
onValueChange={(value) => setSelectedAccountId(value || undefined)}
|
onValueChange={(value) => setSelectedAccountId(value)}
|
||||||
disabled={accountsLoading}
|
disabled={accountsLoading}
|
||||||
>
|
>
|
||||||
<SelectTrigger className="h-9 w-[200px] text-xs">
|
<SelectTrigger className="h-9 w-[200px] text-xs">
|
||||||
@@ -246,7 +247,7 @@ function UsagePage() {
|
|||||||
)}
|
)}
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem value="">{t('usage.allAccounts')}</SelectItem>
|
<SelectItem value={ALL_ACCOUNTS}>{t('usage.allAccounts')}</SelectItem>
|
||||||
{accounts?.map((acc) => (
|
{accounts?.map((acc) => (
|
||||||
<SelectItem key={acc.id} value={acc.id}>
|
<SelectItem key={acc.id} value={acc.id}>
|
||||||
{acc.email}
|
{acc.email}
|
||||||
|
|||||||
Reference in new issue
Block a user