Refactor filter handling for queries.

This commit is contained in:
Mike Cao 2025-07-02 01:44:12 -07:00
parent 5b300f1ff5
commit ee6c68d27c
107 changed files with 731 additions and 835 deletions

View file

@ -1,7 +1,6 @@
import { useState } from 'react';
import { Select, ListItem } from '@umami/react-zen';
import { useWebsites, useMessages } from '@/components/hooks';
import type { SelectProps } from '@umami/react-zen/Select';
import { Select, SelectProps, ListItem } from '@umami/react-zen';
import { useWebsitesQuery, useMessages } from '@/components/hooks';
export function WebsiteSelect({
websiteId,
@ -12,14 +11,14 @@ export function WebsiteSelect({
}: {
websiteId?: string;
teamId?: string;
variant?: 'primary' | 'secondary' | 'outline' | 'quiet' | 'danger' | 'zero';
variant?: 'primary' | 'outline' | 'quiet' | 'danger' | 'zero';
onSelect?: (key: any) => void;
} & SelectProps) {
const { formatMessage, labels } = useMessages();
const [search, setSearch] = useState('');
const [selectedId, setSelectedId] = useState(websiteId);
const queryResult = useWebsites({ teamId }, { search, pageSize: 5 });
const { data, isLoading } = useWebsitesQuery({ teamId }, { search, pageSize: 5 });
const handleSelect = (value: any) => {
setSelectedId(value);
@ -30,15 +29,17 @@ export function WebsiteSelect({
setSearch(value);
};
const items = queryResult?.result?.data as any[];
if (!data) {
return null;
}
return (
<Select
{...props}
items={items}
items={data?.['data'] || []}
value={selectedId}
placeholder={formatMessage(labels.selectWebsite)}
isLoading={queryResult.query.isLoading}
isLoading={isLoading}
buttonProps={{ variant }}
allowSearch={true}
searchValue={search}