DataTable refactor.
This commit is contained in:
13
src/lib/schema.ts
Normal file
13
src/lib/schema.ts
Normal 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(),
|
||||
};
|
||||
@@ -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> {
|
||||
|
||||
@@ -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(),
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user