This commit is contained in:
David Arranz 2024-08-26 17:16:42 +02:00
parent f286ea1bdc
commit bcfc517a26
6 changed files with 44 additions and 34 deletions

View File

@ -253,6 +253,8 @@ export const QuotesDataTable = ({
); );
} }
console.log(data);
if (data?.total_items === 0 && !isFiltered) { if (data?.total_items === 0 && !isFiltered) {
return ( return (
<SimpleEmptyState <SimpleEmptyState

View File

@ -1,9 +1,6 @@
import { useDownloader } from "@/lib/hooks"; import { useDownloader } from "@/lib/hooks";
import { UseListQueryResult, useList, useOne, useSave } from "@/lib/hooks/useDataSource"; import { UseListQueryResult, useList, useOne, useSave } from "@/lib/hooks/useDataSource";
import { import { IGetListDataProviderParams } from "@/lib/hooks/useDataSource/DataSource";
IFilterItemDataProviderParam,
IGetListDataProviderParams,
} from "@/lib/hooks/useDataSource/DataSource";
import { TDataSourceError } from "@/lib/hooks/useDataSource/types"; import { TDataSourceError } from "@/lib/hooks/useDataSource/types";
import { useDataSource } from "@/lib/hooks/useDataSource/useDataSource"; import { useDataSource } from "@/lib/hooks/useDataSource/useDataSource";
import { useQueryKey } from "@/lib/hooks/useQueryKey"; import { useQueryKey } from "@/lib/hooks/useQueryKey";
@ -41,24 +38,6 @@ export type UseQuotesReportParamsType = {
queryOptions?: Record<string, unknown>; queryOptions?: Record<string, unknown>;
}; };
const quoteStatusFilter: Record<string, IFilterItemDataProviderParam> = {
draft: {
field: "status",
operator: "eq",
value: "draft",
},
archived: {
field: "status",
operator: "eq",
value: "archived",
},
active: {
field: "status",
operator: "eq",
value: "active",
},
};
export const useQuotes = () => { export const useQuotes = () => {
const dataSource = useDataSource(); const dataSource = useDataSource();
const keys = useQueryKey(); const keys = useQueryKey();
@ -99,7 +78,16 @@ export const useQuotes = () => {
return dataSource.getList({ return dataSource.getList({
resource: "quotes", resource: "quotes",
quickSearchTerm, quickSearchTerm,
filters: status !== "all" ? Array.of(quoteStatusFilter[status]) : undefined, filters:
status !== "all"
? [
{
field: "status",
operator: "eq",
value: status,
},
]
: undefined,
pagination, pagination,
}); });
}, },

View File

@ -41,8 +41,17 @@ export const QuotesList = () => {
<TabsTrigger value='draft'> <TabsTrigger value='draft'>
<Trans i18nKey='quotes.list.tabs.draft' /> <Trans i18nKey='quotes.list.tabs.draft' />
</TabsTrigger> </TabsTrigger>
<TabsTrigger value='emitted'> <TabsTrigger value='ready'>
<Trans i18nKey='quotes.list.tabs.emitted' /> <Trans i18nKey='quotes.list.tabs.ready' />
</TabsTrigger>
<TabsTrigger value='delivered'>
<Trans i18nKey='quotes.list.tabs.delivered' />
</TabsTrigger>
<TabsTrigger value='accepted'>
<Trans i18nKey='quotes.list.tabs.accepted' />
</TabsTrigger>
<TabsTrigger value='rejected'>
<Trans i18nKey='quotes.list.tabs.rejected' />
</TabsTrigger> </TabsTrigger>
<TabsTrigger value='archived' className='hidden sm:flex'> <TabsTrigger value='archived' className='hidden sm:flex'>
<Trans i18nKey='quotes.list.tabs.archived' /> <Trans i18nKey='quotes.list.tabs.archived' />
@ -76,12 +85,21 @@ export const QuotesList = () => {
<TabsContent value='draft'> <TabsContent value='draft'>
<QuotesDataTable status='draft' preview={enabledPreview} /> <QuotesDataTable status='draft' preview={enabledPreview} />
</TabsContent> </TabsContent>
<TabsContent value='ready'>
<QuotesDataTable status='ready' preview={enabledPreview} />
</TabsContent>
<TabsContent value='delivered'>
<QuotesDataTable status='delivered' preview={enabledPreview} />
</TabsContent>
<TabsContent value='accepted'>
<QuotesDataTable status='accepted' preview={enabledPreview} />
</TabsContent>
<TabsContent value='rejected'>
<QuotesDataTable status='rejected' preview={enabledPreview} />
</TabsContent>
<TabsContent value='archived'> <TabsContent value='archived'>
<QuotesDataTable status='archived' preview={enabledPreview} /> <QuotesDataTable status='archived' preview={enabledPreview} />
</TabsContent> </TabsContent>
<TabsContent value='emitted'>
<QuotesDataTable status='emitted' preview={enabledPreview} />
</TabsContent>
</Tabs> </Tabs>
</DataTableProvider> </DataTableProvider>
); );

View File

@ -16,7 +16,7 @@ export interface IDataTableContextState {
setPagination: (newPagination: PaginationState) => void; setPagination: (newPagination: PaginationState) => void;
sorting: SortingState; sorting: SortingState;
setSorting: Dispatch<SetStateAction<SortingState>>; setSorting: Dispatch<SetStateAction<SortingState>>;
globalFilter: string; globalFilter?: string;
setGlobalFilter: (newGlobalFilter: string) => void; setGlobalFilter: (newGlobalFilter: string) => void;
resetGlobalFilter: () => void; resetGlobalFilter: () => void;
isFiltered: boolean; isFiltered: boolean;
@ -26,7 +26,7 @@ export const DataTableContext = createContext<IDataTableContextState | null>(nul
export const DataTableProvider = ({ export const DataTableProvider = ({
syncWithLocation = true, syncWithLocation = true,
initialGlobalFilter = "", initialGlobalFilter = undefined,
initialPageIndex, initialPageIndex,
initialPageSize, initialPageSize,
children, children,
@ -41,10 +41,10 @@ export const DataTableProvider = ({
initialPageIndex, initialPageIndex,
initialPageSize, initialPageSize,
}); });
const [globalFilter, setGlobalFilter] = useState<string>(initialGlobalFilter); const [globalFilter, setGlobalFilter] = useState<string | undefined>(initialGlobalFilter);
const [sorting, setSorting] = useState<SortingState>([]); const [sorting, setSorting] = useState<SortingState>([]);
const isFiltered = useMemo(() => Boolean(globalFilter.length), [globalFilter]); const isFiltered = useMemo(() => Boolean(globalFilter && globalFilter.length), [globalFilter]);
const resetGlobalFilter = useCallback(() => setGlobalFilter(""), []); const resetGlobalFilter = useCallback(() => setGlobalFilter(""), []);
return ( return (

View File

@ -119,7 +119,8 @@
"tabs": { "tabs": {
"all": "All", "all": "All",
"draft": "Draft", "draft": "Draft",
"emitted": "Emitted", "ready": "Ready",
"delivered": "Delivered",
"accepted": "Accepted", "accepted": "Accepted",
"rejected": "Rejected", "rejected": "Rejected",
"archived": "Archived" "archived": "Archived"

View File

@ -119,7 +119,8 @@
"tabs": { "tabs": {
"all": "Todas", "all": "Todas",
"draft": "Borradores", "draft": "Borradores",
"emitted": "Emitidas", "ready": "Preparados",
"delivered": "Entregado",
"accepted": "Accepted", "accepted": "Accepted",
"rejected": "Rejected", "rejected": "Rejected",
"archived": "Archivadas" "archived": "Archivadas"