Restore seller dropdown filter
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 46s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 46s
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user