@campxdev/react-blueprint 1.3.3 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -14,6 +14,11 @@ import { Spinner } from '../../Feedback/Spinner/Spinner';
|
|
|
14
14
|
import { TextField } from '../TextField/TextField';
|
|
15
15
|
import { OptionsLoader } from '../components/OptionsLoader';
|
|
16
16
|
import { OptionContainer } from '../styles';
|
|
17
|
+
import {
|
|
18
|
+
SingleSelectActionsTypes,
|
|
19
|
+
singleSelectReducer,
|
|
20
|
+
SingleSelectState,
|
|
21
|
+
} from './singleSelectReducer';
|
|
17
22
|
|
|
18
23
|
function sleep(duration: number): Promise<void> {
|
|
19
24
|
return new Promise<void>((resolve) => {
|
|
@@ -23,13 +28,6 @@ function sleep(duration: number): Promise<void> {
|
|
|
23
28
|
});
|
|
24
29
|
}
|
|
25
30
|
|
|
26
|
-
declare module '@mui/material/Autocomplete' {
|
|
27
|
-
interface AutocompletePaperSlotPropsOverrides {
|
|
28
|
-
loadingOptions: boolean;
|
|
29
|
-
isSearch: boolean;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
31
|
export type SingleSelectProps = {
|
|
34
32
|
options?: { label: string; subLabel?: string; value: any }[] | any[];
|
|
35
33
|
optionsApiEndPoint?: string;
|
|
@@ -42,6 +40,8 @@ export type SingleSelectProps = {
|
|
|
42
40
|
dbValueProps?: {
|
|
43
41
|
valueKey: string;
|
|
44
42
|
isObjectId?: boolean;
|
|
43
|
+
isInt?: boolean;
|
|
44
|
+
isFloat?: boolean;
|
|
45
45
|
};
|
|
46
46
|
dbLabelProps?: { labelKey: string; subLabelKey?: string };
|
|
47
47
|
onChange: (value: any) => void;
|
|
@@ -77,101 +77,6 @@ const CustomPaper = (props: any) => (
|
|
|
77
77
|
</Paper>
|
|
78
78
|
);
|
|
79
79
|
|
|
80
|
-
enum SingleSelectActionsTypes {
|
|
81
|
-
OPEN = 'open',
|
|
82
|
-
CLOSE = 'close',
|
|
83
|
-
LOAD_INTERNAL_OPTIONS_START = 'load_internal_options_start',
|
|
84
|
-
LOAD_INTERNAL_OPTIONS_END = 'load_internal_options_end',
|
|
85
|
-
LOAD_SELECTED_OPTIONS_START = 'load_selected_options_start',
|
|
86
|
-
LOAD_SELECTED_OPTIONS_END = 'load_selected_options_end',
|
|
87
|
-
SET_NETWORK_ERROR = 'set_network_error',
|
|
88
|
-
SET_INTERNAL_OPTIONS = 'set_internal_options',
|
|
89
|
-
APPEND_INTERNAL_OPTIONS = 'append_internal_options',
|
|
90
|
-
CHANGE_HAS_MORE_FLAG = 'change_has_more_flag',
|
|
91
|
-
SET_SEARCH = 'set_search',
|
|
92
|
-
CLEAR_SEARCH = 'clear_search',
|
|
93
|
-
}
|
|
94
|
-
const singleSelectReducer = (
|
|
95
|
-
state: any,
|
|
96
|
-
{
|
|
97
|
-
actionType,
|
|
98
|
-
stateChanges,
|
|
99
|
-
}: { actionType: SingleSelectActionsTypes; stateChanges?: any },
|
|
100
|
-
) => {
|
|
101
|
-
switch (actionType) {
|
|
102
|
-
case SingleSelectActionsTypes.OPEN: {
|
|
103
|
-
return { ...state, open: true };
|
|
104
|
-
}
|
|
105
|
-
case SingleSelectActionsTypes.CLOSE: {
|
|
106
|
-
return {
|
|
107
|
-
...state,
|
|
108
|
-
open: false,
|
|
109
|
-
loadingInternalOptions: false,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
case SingleSelectActionsTypes.LOAD_INTERNAL_OPTIONS_START: {
|
|
113
|
-
return { ...state, loadingInternalOptions: true };
|
|
114
|
-
}
|
|
115
|
-
case SingleSelectActionsTypes.LOAD_INTERNAL_OPTIONS_END: {
|
|
116
|
-
return { ...state, loadingInternalOptions: false };
|
|
117
|
-
}
|
|
118
|
-
case SingleSelectActionsTypes.LOAD_SELECTED_OPTIONS_START: {
|
|
119
|
-
return { ...state, loadingInitialInternalOptions: true };
|
|
120
|
-
}
|
|
121
|
-
case SingleSelectActionsTypes.LOAD_SELECTED_OPTIONS_END: {
|
|
122
|
-
return { ...state, loadingInitialInternalOptions: false };
|
|
123
|
-
}
|
|
124
|
-
case SingleSelectActionsTypes.SET_NETWORK_ERROR: {
|
|
125
|
-
return { ...state, ...stateChanges };
|
|
126
|
-
}
|
|
127
|
-
case SingleSelectActionsTypes.SET_SEARCH: {
|
|
128
|
-
return {
|
|
129
|
-
...state,
|
|
130
|
-
search: stateChanges.search,
|
|
131
|
-
hasMore: true,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
case SingleSelectActionsTypes.CLEAR_SEARCH: {
|
|
135
|
-
return {
|
|
136
|
-
...state,
|
|
137
|
-
search: null,
|
|
138
|
-
offset: 0,
|
|
139
|
-
internalOptions: stateChanges.internalOptions,
|
|
140
|
-
internalOptionsMap: stateChanges.internalOptionsMap,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
case SingleSelectActionsTypes.SET_INTERNAL_OPTIONS: {
|
|
144
|
-
return {
|
|
145
|
-
...state,
|
|
146
|
-
internalOptions: stateChanges.internalOptions,
|
|
147
|
-
internalOptionsMap: stateChanges.internalOptionsMap,
|
|
148
|
-
loadingInternalOptions: false,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
case SingleSelectActionsTypes.APPEND_INTERNAL_OPTIONS: {
|
|
152
|
-
return {
|
|
153
|
-
...state,
|
|
154
|
-
internalOptions: [...state.internalOptions, ...stateChanges.newOptions],
|
|
155
|
-
internalOptionsMap: {
|
|
156
|
-
...state.internalOptionsMap,
|
|
157
|
-
...stateChanges.internalOptionsMap,
|
|
158
|
-
},
|
|
159
|
-
loadingInternalOptions: false,
|
|
160
|
-
limit: state.limit,
|
|
161
|
-
offset: state.offset + (stateChanges?.persistOffset ? 0 : 10),
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
case SingleSelectActionsTypes.CHANGE_HAS_MORE_FLAG: {
|
|
165
|
-
return {
|
|
166
|
-
...state,
|
|
167
|
-
hasMore: !state.hasMore,
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
default:
|
|
171
|
-
return { ...state, ...stateChanges };
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
|
|
175
80
|
export const SingleSelect = ({
|
|
176
81
|
options,
|
|
177
82
|
optionsApiEndPoint,
|
|
@@ -188,6 +93,8 @@ export const SingleSelect = ({
|
|
|
188
93
|
dbValueProps = {
|
|
189
94
|
valueKey: 'id',
|
|
190
95
|
isObjectId: false,
|
|
96
|
+
isInt: false,
|
|
97
|
+
isFloat: false,
|
|
191
98
|
},
|
|
192
99
|
dbLabelProps,
|
|
193
100
|
onOpen,
|
|
@@ -198,7 +105,7 @@ export const SingleSelect = ({
|
|
|
198
105
|
return _.keyBy(options ?? [], getValue ? getValue : (o) => o.value);
|
|
199
106
|
};
|
|
200
107
|
|
|
201
|
-
const
|
|
108
|
+
const initialState: SingleSelectState = {
|
|
202
109
|
open: false,
|
|
203
110
|
loadingInternalOptions: false,
|
|
204
111
|
loadingInitialInternalOptions: false,
|
|
@@ -208,7 +115,9 @@ export const SingleSelect = ({
|
|
|
208
115
|
offset: 0,
|
|
209
116
|
hasMore: true,
|
|
210
117
|
search: null,
|
|
211
|
-
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const [state, dispatch] = useReducer(singleSelectReducer, initialState);
|
|
212
121
|
const {
|
|
213
122
|
open,
|
|
214
123
|
loadingInternalOptions,
|
|
@@ -237,8 +146,10 @@ export const SingleSelect = ({
|
|
|
237
146
|
limit,
|
|
238
147
|
offset,
|
|
239
148
|
dbValueProps: {
|
|
240
|
-
|
|
149
|
+
valueKey: dbValueProps.valueKey,
|
|
241
150
|
...(dbValueProps.isObjectId && { isObjectId: true }),
|
|
151
|
+
...(dbValueProps.isInt && { isInt: true }),
|
|
152
|
+
...(dbValueProps.isFloat && { isFloat: true }),
|
|
242
153
|
selectedValueData: value,
|
|
243
154
|
},
|
|
244
155
|
dbLabelProps,
|
|
@@ -328,8 +239,10 @@ export const SingleSelect = ({
|
|
|
328
239
|
offset: offset + 10,
|
|
329
240
|
|
|
330
241
|
dbValueProps: {
|
|
331
|
-
|
|
242
|
+
valueKey: dbValueProps.valueKey,
|
|
332
243
|
...(dbValueProps.isObjectId && { isObjectId: true }),
|
|
244
|
+
...(dbValueProps.isInt && { isInt: true }),
|
|
245
|
+
...(dbValueProps.isFloat && { isFloat: true }),
|
|
333
246
|
selectedValueData: value,
|
|
334
247
|
},
|
|
335
248
|
dbLabelProps: {
|
|
@@ -385,8 +298,10 @@ export const SingleSelect = ({
|
|
|
385
298
|
limit,
|
|
386
299
|
offset: 0,
|
|
387
300
|
dbValueProps: {
|
|
388
|
-
|
|
301
|
+
valueKey: dbValueProps.valueKey,
|
|
389
302
|
...(dbValueProps.isObjectId && { isObjectId: true }),
|
|
303
|
+
...(dbValueProps.isInt && { isInt: true }),
|
|
304
|
+
...(dbValueProps.isFloat && { isFloat: true }),
|
|
390
305
|
selectedValueData: value,
|
|
391
306
|
},
|
|
392
307
|
dbLabelProps: {
|
|
@@ -449,12 +364,15 @@ export const SingleSelect = ({
|
|
|
449
364
|
limit,
|
|
450
365
|
offset,
|
|
451
366
|
dbValueProps: {
|
|
452
|
-
|
|
367
|
+
valueKey: dbValueProps.valueKey,
|
|
453
368
|
...(dbValueProps.isObjectId && { isObjectId: true }),
|
|
369
|
+
...(dbValueProps.isInt && { isInt: true }),
|
|
370
|
+
...(dbValueProps.isFloat && { isFloat: true }),
|
|
454
371
|
selectedValueData: value,
|
|
455
372
|
filterBySelectedValues: true,
|
|
456
373
|
},
|
|
457
374
|
dbLabelProps,
|
|
375
|
+
...optionsApiEndpointParams,
|
|
458
376
|
},
|
|
459
377
|
});
|
|
460
378
|
dispatch({
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Reducer } from 'react';
|
|
2
|
+
|
|
3
|
+
export enum SingleSelectActionsTypes {
|
|
4
|
+
OPEN = 'open',
|
|
5
|
+
CLOSE = 'close',
|
|
6
|
+
LOAD_INTERNAL_OPTIONS_START = 'load_internal_options_start',
|
|
7
|
+
LOAD_INTERNAL_OPTIONS_END = 'load_internal_options_end',
|
|
8
|
+
LOAD_SELECTED_OPTIONS_START = 'load_selected_options_start',
|
|
9
|
+
LOAD_SELECTED_OPTIONS_END = 'load_selected_options_end',
|
|
10
|
+
SET_NETWORK_ERROR = 'set_network_error',
|
|
11
|
+
SET_INTERNAL_OPTIONS = 'set_internal_options',
|
|
12
|
+
APPEND_INTERNAL_OPTIONS = 'append_internal_options',
|
|
13
|
+
CHANGE_HAS_MORE_FLAG = 'change_has_more_flag',
|
|
14
|
+
SET_SEARCH = 'set_search',
|
|
15
|
+
CLEAR_SEARCH = 'clear_search',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type Option = {
|
|
19
|
+
label: string;
|
|
20
|
+
subLabel?: string;
|
|
21
|
+
value: any;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type SingleSelectState = {
|
|
25
|
+
open: boolean;
|
|
26
|
+
loadingInternalOptions: boolean;
|
|
27
|
+
loadingInitialInternalOptions: boolean;
|
|
28
|
+
internalOptions: Option[];
|
|
29
|
+
internalOptionsMap: { [x: string]: Option };
|
|
30
|
+
limit: number;
|
|
31
|
+
offset: number;
|
|
32
|
+
hasMore: boolean;
|
|
33
|
+
search: string | null;
|
|
34
|
+
error?: any;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export type SingleSelectAction = {
|
|
38
|
+
actionType: SingleSelectActionsTypes;
|
|
39
|
+
stateChanges?: Partial<SingleSelectState> & {
|
|
40
|
+
persistOffset?: boolean;
|
|
41
|
+
newOptions?: Option[];
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const singleSelectReducer: Reducer<
|
|
46
|
+
SingleSelectState,
|
|
47
|
+
SingleSelectAction
|
|
48
|
+
> = (state: SingleSelectState, action: SingleSelectAction) => {
|
|
49
|
+
const { actionType, stateChanges } = action;
|
|
50
|
+
switch (actionType) {
|
|
51
|
+
case SingleSelectActionsTypes.OPEN: {
|
|
52
|
+
return { ...state, open: true };
|
|
53
|
+
}
|
|
54
|
+
case SingleSelectActionsTypes.CLOSE: {
|
|
55
|
+
return {
|
|
56
|
+
...state,
|
|
57
|
+
open: false,
|
|
58
|
+
loadingInternalOptions: false,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
case SingleSelectActionsTypes.LOAD_INTERNAL_OPTIONS_START: {
|
|
62
|
+
return { ...state, loadingInternalOptions: true };
|
|
63
|
+
}
|
|
64
|
+
case SingleSelectActionsTypes.LOAD_INTERNAL_OPTIONS_END: {
|
|
65
|
+
return { ...state, loadingInternalOptions: false };
|
|
66
|
+
}
|
|
67
|
+
case SingleSelectActionsTypes.LOAD_SELECTED_OPTIONS_START: {
|
|
68
|
+
return { ...state, loadingInitialInternalOptions: true };
|
|
69
|
+
}
|
|
70
|
+
case SingleSelectActionsTypes.LOAD_SELECTED_OPTIONS_END: {
|
|
71
|
+
return { ...state, loadingInitialInternalOptions: false };
|
|
72
|
+
}
|
|
73
|
+
case SingleSelectActionsTypes.SET_NETWORK_ERROR: {
|
|
74
|
+
return { ...state, ...stateChanges };
|
|
75
|
+
}
|
|
76
|
+
case SingleSelectActionsTypes.SET_SEARCH: {
|
|
77
|
+
return {
|
|
78
|
+
...state,
|
|
79
|
+
search: stateChanges?.search ?? null,
|
|
80
|
+
hasMore: true,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
case SingleSelectActionsTypes.CLEAR_SEARCH: {
|
|
84
|
+
return {
|
|
85
|
+
...state,
|
|
86
|
+
search: null,
|
|
87
|
+
offset: 0,
|
|
88
|
+
internalOptions: stateChanges?.internalOptions ?? [],
|
|
89
|
+
internalOptionsMap: stateChanges?.internalOptionsMap ?? {},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
case SingleSelectActionsTypes.SET_INTERNAL_OPTIONS: {
|
|
93
|
+
return {
|
|
94
|
+
...state,
|
|
95
|
+
internalOptions: stateChanges?.internalOptions ?? [],
|
|
96
|
+
internalOptionsMap: stateChanges?.internalOptionsMap ?? {},
|
|
97
|
+
loadingInternalOptions: false,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
case SingleSelectActionsTypes.APPEND_INTERNAL_OPTIONS: {
|
|
101
|
+
return {
|
|
102
|
+
...state,
|
|
103
|
+
internalOptions: [
|
|
104
|
+
...state.internalOptions,
|
|
105
|
+
...(stateChanges?.newOptions ?? []),
|
|
106
|
+
],
|
|
107
|
+
internalOptionsMap: {
|
|
108
|
+
...state.internalOptionsMap,
|
|
109
|
+
...stateChanges?.internalOptionsMap,
|
|
110
|
+
},
|
|
111
|
+
loadingInternalOptions: false,
|
|
112
|
+
limit: state.limit,
|
|
113
|
+
offset: state.offset + (stateChanges?.persistOffset ? 0 : 10),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
case SingleSelectActionsTypes.CHANGE_HAS_MORE_FLAG: {
|
|
117
|
+
return {
|
|
118
|
+
...state,
|
|
119
|
+
hasMore: !state.hasMore,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
default:
|
|
123
|
+
return { ...state, ...stateChanges };
|
|
124
|
+
}
|
|
125
|
+
};
|
package/src/utils/logout.ts
CHANGED
package/types/theme.d.ts
CHANGED