DataTable refactor.

This commit is contained in:
Mike Cao 2023-09-22 00:59:00 -07:00
parent 92ccc64e47
commit 6846355c63
17 changed files with 94 additions and 114 deletions

13
src/lib/schema.ts Normal file
View file

@ -0,0 +1,13 @@
import * as yup from 'yup';
export const dateRange = {
startAt: yup.number().integer().required(),
endAt: yup.number().integer().moreThan(yup.ref('startAt')).required(),
};
export const pageInfo = {
query: yup.string(),
page: yup.number().integer().positive(),
pageSize: yup.number().integer().positive().max(200),
orderBy: yup.string(),
};

View file

@ -54,11 +54,11 @@ export interface ReportSearchFilter extends SearchFilter<ReportSearchFilterType>
}
export interface SearchFilter<T> {
filter?: string;
filterType?: T;
pageSize: number;
page: number;
query?: string;
page?: number;
pageSize?: number;
orderBy?: string;
data?: T;
}
export interface FilterResult<T> {

View file

@ -1,19 +0,0 @@
import * as yup from 'yup';
export function getDateRangeValidation() {
return {
startAt: yup.number().integer().required(),
endAt: yup.number().integer().moreThan(yup.ref('startAt')).required(),
};
}
// ex: /funnel|insights|retention/i
export function getFilterValidation(matchRegex) {
return {
filter: yup.string(),
filterType: yup.string().matches(matchRegex),
pageSize: yup.number().integer().positive().max(200),
page: yup.number().integer().positive(),
orderBy: yup.string(),
};
}