Restore seller dropdown filter
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 46s

This commit is contained in:
Cauê Faleiros
2026-06-24 11:42:30 -03:00
parent aeb801c0ba
commit b40f6fa23f
2 changed files with 11 additions and 25 deletions

View File

@@ -223,7 +223,7 @@ export const fetchClientFilterOptions = async (dateRange: DateRange, options?: C
const path = `/analytics/clients/filters?${buildDateRangeParams(dateRange).toString()}`; const path = `/analytics/clients/filters?${buildDateRangeParams(dateRange).toString()}`;
return getCachedAnalytics(path, async () => { return getCachedAnalytics(path, async () => {
try { try {
const response = await authFetch(path); const response = await authFetch(path, options?.force ? { cache: 'no-store' } : {});
if (!response.ok) return { marketplaces: [], salesChannels: [], sellers: [] }; if (!response.ok) return { marketplaces: [], salesChannels: [], sellers: [] };
return await response.json(); return await response.json();
} catch (error) { } catch (error) {

View File

@@ -104,7 +104,6 @@ const dateFilterPresets = [
]; ];
const filterSelectClassName = "w-full h-9 bg-dark-input border border-dark-border text-dark-text text-sm rounded-lg px-3 focus:outline-none focus:border-brand-primary transition-colors cursor-pointer"; const filterSelectClassName = "w-full h-9 bg-dark-input border border-dark-border text-dark-text text-sm rounded-lg px-3 focus:outline-none focus:border-brand-primary transition-colors cursor-pointer";
const filterInputClassName = "w-full h-9 bg-dark-input border border-dark-border text-dark-text text-sm rounded-lg px-3 focus:outline-none focus:border-brand-primary transition-colors";
const Clients = () => { const Clients = () => {
const { dateRange, setDateRange } = useOutletContext<{ const { dateRange, setDateRange } = useOutletContext<{
@@ -351,19 +350,6 @@ const Clients = () => {
return [fallbackSeller, ...filterOptions.sellers]; return [fallbackSeller, ...filterOptions.sellers];
}, [filterOptions.sellers, metadataFilters.seller]); }, [filterOptions.sellers, metadataFilters.seller]);
const sellerSuggestions = useMemo(() => {
const suggestions = new Set<string>();
sellerOptions.forEach(seller => {
const label = getSellerOptionLabel(seller);
if (seller.name) suggestions.add(seller.name);
if (seller.id) suggestions.add(seller.id);
if (label) suggestions.add(label);
});
return [...suggestions].filter(Boolean);
}, [sellerOptions]);
const activeMetadataFilters = useMemo(() => { const activeMetadataFilters = useMemo(() => {
const filters = []; const filters = [];
const selectedSeller = sellerOptions.find(seller => seller.value === metadataFilters.seller); const selectedSeller = sellerOptions.find(seller => seller.value === metadataFilters.seller);
@@ -529,19 +515,19 @@ const Clients = () => {
<label className="block text-xs font-bold uppercase tracking-wider text-dark-muted"> <label className="block text-xs font-bold uppercase tracking-wider text-dark-muted">
Vendedor Vendedor
<input <select
type="text"
list="client-seller-filter-options"
value={metadataFilters.seller} value={metadataFilters.seller}
onChange={(event) => updateMetadataFilter('seller', event.target.value)} onChange={(event) => updateMetadataFilter('seller', event.target.value)}
placeholder="Todos" className={`${filterSelectClassName} mt-1`}
className={`${filterInputClassName} mt-1`} >
/> <option value="">Todos</option>
<datalist id="client-seller-filter-options"> {!sellerOptions.length && (
{sellerSuggestions.map(seller => ( <option value="" disabled>Nenhum vendedor encontrado</option>
<option key={seller} value={seller} /> )}
{sellerOptions.map(seller => (
<option key={seller.value} value={seller.value}>{getSellerOptionLabel(seller)}</option>
))} ))}
</datalist> </select>
</label> </label>
<label className="block text-xs font-bold uppercase tracking-wider text-dark-muted"> <label className="block text-xs font-bold uppercase tracking-wider text-dark-muted">