modified filters for Components
This commit is contained in:
parent
3ff877fcec
commit
9c0b1104f2
@ -20,7 +20,7 @@ const Select = ({
|
||||
value={value}
|
||||
onChange={val => setCurrentValue(val)}
|
||||
>
|
||||
{options.map((option, i) => {
|
||||
{(filter ? filter(options) : options).map((option, i) => {
|
||||
if (option)
|
||||
return (
|
||||
<AntSelect.Option key={i} value={option.value}>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import initialFilters from 'core/config/initialFilters';
|
||||
import initialOptions from 'core/config/initialOptions';
|
||||
import initialStatuses from 'core/config/initialStatuses';
|
||||
import initialValues from 'core/config/initialValues';
|
||||
@ -7,7 +8,7 @@ const valuesData = {
|
||||
statuses: initialStatuses,
|
||||
validations: {},
|
||||
options: initialOptions,
|
||||
filters: {},
|
||||
filters: initialFilters,
|
||||
};
|
||||
|
||||
const valuesActions = {
|
||||
@ -32,10 +33,25 @@ const valuesActions = {
|
||||
this.validations[elementName] = validation;
|
||||
},
|
||||
|
||||
getOptions(elementName) {
|
||||
return this.options[elementName];
|
||||
},
|
||||
setOptions(elementName, options) {
|
||||
this.options[elementName] = options;
|
||||
},
|
||||
applyOptions(options) {
|
||||
this.options = { ...this.options, ...options };
|
||||
},
|
||||
|
||||
getFilter(elementName) {
|
||||
return this.filters[elementName];
|
||||
},
|
||||
setFilter(elementName, filters) {
|
||||
this.filters[elementName] = filters;
|
||||
},
|
||||
applyFilters(filters) {
|
||||
this.filters = { ...this.filters, ...filters };
|
||||
},
|
||||
};
|
||||
|
||||
export { valuesData, valuesActions };
|
||||
|
||||
|
||||
8
src/core/config/initialFilters.ts
Normal file
8
src/core/config/initialFilters.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import { TElementFilter } from 'core/types/Calculation/filters';
|
||||
import { TElements } from 'core/types/elements';
|
||||
|
||||
const initialFilters: TElements<TElementFilter> = {
|
||||
selectQuote: options => [],
|
||||
};
|
||||
|
||||
export default initialFilters;
|
||||
3
src/core/types/Calculation/filters.ts
Normal file
3
src/core/types/Calculation/filters.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import { TElementOption } from 'core/types/Calculation/options';
|
||||
|
||||
export type TElementFilter = (options: TElementOption[]) => TElementOption[];
|
||||
@ -8,11 +8,18 @@ import { TValues, ValuesNames } from './values';
|
||||
import { TElements, ElementsNames } from './elements';
|
||||
import { TStatuses, Status } from './statuses';
|
||||
import { TElementOption } from 'core/types/Calculation/options';
|
||||
import { TElementFilter } from 'core/types/Calculation/filters';
|
||||
|
||||
export interface ICalculationStore {
|
||||
options: TElements<TElementOption[]>;
|
||||
getOptions: (elementName: ElementsNames) => any;
|
||||
setOptions: (elementName: ElementsNames, options: TElementOption[]) => void;
|
||||
applyOptions: (options: TElements<any>) => void;
|
||||
filters: TElements<any>;
|
||||
|
||||
filters: TElements<any[]>;
|
||||
getFilter: (elementName: ElementsNames) => any;
|
||||
setFilter: (elementName: ElementsNames, filter: TElementFilter) => any;
|
||||
applyFilters: (filters: TElementFilter[]) => void;
|
||||
|
||||
values: TValues;
|
||||
getValue: (sourceValueName: ValuesNames) => any;
|
||||
|
||||
Reference in New Issue
Block a user