feat: filters for profit statistics table
This commit is contained in:
@@ -5,6 +5,9 @@
|
|||||||
import type { ProfitTableGroupBy } from './ProfitTableGroupBy';
|
import type { ProfitTableGroupBy } from './ProfitTableGroupBy';
|
||||||
export type GetProfitTableDataRequest = {
|
export type GetProfitTableDataRequest = {
|
||||||
dateRange: any[];
|
dateRange: any[];
|
||||||
|
clientId: number;
|
||||||
|
baseMarketplaceKey: string;
|
||||||
|
dealStatusId: number;
|
||||||
groupTableBy: ProfitTableGroupBy;
|
groupTableBy: ProfitTableGroupBy;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ export const useProfitTable = () => {
|
|||||||
initialValues: {
|
initialValues: {
|
||||||
dateRange: getDefaultDates(),
|
dateRange: getDefaultDates(),
|
||||||
groupTableBy: GroupStatisticsTable.BY_DATES,
|
groupTableBy: GroupStatisticsTable.BY_DATES,
|
||||||
|
client: null,
|
||||||
|
marketplace: null,
|
||||||
|
dealStatus: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const [isLoading, setIsLoading] = useState(false);
|
const [isLoading, setIsLoading] = useState(false);
|
||||||
@@ -33,6 +36,9 @@ export const useProfitTable = () => {
|
|||||||
dateToString(dateRange[1]),
|
dateToString(dateRange[1]),
|
||||||
],
|
],
|
||||||
groupTableBy: form.values.groupTableBy,
|
groupTableBy: form.values.groupTableBy,
|
||||||
|
clientId: form.values.client?.id ?? -1,
|
||||||
|
baseMarketplaceKey: form.values.marketplace?.key ?? "all",
|
||||||
|
dealStatusId: form.values.dealStatus?.id ?? -1,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ export const ProfitTableFiltersModal = ({ form }: Props) => {
|
|||||||
value: form.values.groupTableBy.toString(),
|
value: form.values.groupTableBy.toString(),
|
||||||
onChange: (value: string) => form.setFieldValue("groupTableBy", parseInt(value)),
|
onChange: (value: string) => form.setFieldValue("groupTableBy", parseInt(value)),
|
||||||
}}
|
}}
|
||||||
|
clientSelectProps={form.getInputProps("client")}
|
||||||
|
onClientClear={() => form.setFieldValue("client", null)}
|
||||||
|
baseMarketplaceSelectProps={form.getInputProps("marketplace")}
|
||||||
|
onBaseMarketplaceClear={() => form.setFieldValue("marketplace", null)}
|
||||||
|
dealStatusSelectProps={form.getInputProps("dealStatus")}
|
||||||
|
onDealStatusClear={() => form.setFieldValue("dealStatus", null)}
|
||||||
/>
|
/>
|
||||||
</Modal>
|
</Modal>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
import { GroupStatisticsTable } from "../tabs/ProfitTab/components/ProfitTableSegmentedControl/ProfitTableSegmentedControl.tsx";
|
import {
|
||||||
|
GroupStatisticsTable,
|
||||||
|
} from "../tabs/ProfitTab/components/ProfitTableSegmentedControl/ProfitTableSegmentedControl.tsx";
|
||||||
|
import { BaseMarketplaceSchema, ClientSchema } from "../../../client";
|
||||||
|
import { DealStatusType } from "../../../shared/enums/DealStatus.ts";
|
||||||
|
|
||||||
export interface TableFormFilters {
|
export interface TableFormFilters {
|
||||||
dateRange: [Date | null, Date | null];
|
dateRange: [Date | null, Date | null];
|
||||||
groupTableBy: GroupStatisticsTable;
|
groupTableBy: GroupStatisticsTable;
|
||||||
|
client: ClientSchema | null;
|
||||||
|
marketplace: BaseMarketplaceSchema | null;
|
||||||
|
dealStatus: DealStatusType | null;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user