@campxdev/react-blueprint 1.3.4 → 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;
|
|
@@ -79,101 +77,6 @@ const CustomPaper = (props: any) => (
|
|
|
79
77
|
</Paper>
|
|
80
78
|
);
|
|
81
79
|
|
|
82
|
-
enum SingleSelectActionsTypes {
|
|
83
|
-
OPEN = 'open',
|
|
84
|
-
CLOSE = 'close',
|
|
85
|
-
LOAD_INTERNAL_OPTIONS_START = 'load_internal_options_start',
|
|
86
|
-
LOAD_INTERNAL_OPTIONS_END = 'load_internal_options_end',
|
|
87
|
-
LOAD_SELECTED_OPTIONS_START = 'load_selected_options_start',
|
|
88
|
-
LOAD_SELECTED_OPTIONS_END = 'load_selected_options_end',
|
|
89
|
-
SET_NETWORK_ERROR = 'set_network_error',
|
|
90
|
-
SET_INTERNAL_OPTIONS = 'set_internal_options',
|
|
91
|
-
APPEND_INTERNAL_OPTIONS = 'append_internal_options',
|
|
92
|
-
CHANGE_HAS_MORE_FLAG = 'change_has_more_flag',
|
|
93
|
-
SET_SEARCH = 'set_search',
|
|
94
|
-
CLEAR_SEARCH = 'clear_search',
|
|
95
|
-
}
|
|
96
|
-
const singleSelectReducer = (
|
|
97
|
-
state: any,
|
|
98
|
-
{
|
|
99
|
-
actionType,
|
|
100
|
-
stateChanges,
|
|
101
|
-
}: { actionType: SingleSelectActionsTypes; stateChanges?: any },
|
|
102
|
-
) => {
|
|
103
|
-
switch (actionType) {
|
|
104
|
-
case SingleSelectActionsTypes.OPEN: {
|
|
105
|
-
return { ...state, open: true };
|
|
106
|
-
}
|
|
107
|
-
case SingleSelectActionsTypes.CLOSE: {
|
|
108
|
-
return {
|
|
109
|
-
...state,
|
|
110
|
-
open: false,
|
|
111
|
-
loadingInternalOptions: false,
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
case SingleSelectActionsTypes.LOAD_INTERNAL_OPTIONS_START: {
|
|
115
|
-
return { ...state, loadingInternalOptions: true };
|
|
116
|
-
}
|
|
117
|
-
case SingleSelectActionsTypes.LOAD_INTERNAL_OPTIONS_END: {
|
|
118
|
-
return { ...state, loadingInternalOptions: false };
|
|
119
|
-
}
|
|
120
|
-
case SingleSelectActionsTypes.LOAD_SELECTED_OPTIONS_START: {
|
|
121
|
-
return { ...state, loadingInitialInternalOptions: true };
|
|
122
|
-
}
|
|
123
|
-
case SingleSelectActionsTypes.LOAD_SELECTED_OPTIONS_END: {
|
|
124
|
-
return { ...state, loadingInitialInternalOptions: false };
|
|
125
|
-
}
|
|
126
|
-
case SingleSelectActionsTypes.SET_NETWORK_ERROR: {
|
|
127
|
-
return { ...state, ...stateChanges };
|
|
128
|
-
}
|
|
129
|
-
case SingleSelectActionsTypes.SET_SEARCH: {
|
|
130
|
-
return {
|
|
131
|
-
...state,
|
|
132
|
-
search: stateChanges.search,
|
|
133
|
-
hasMore: true,
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
case SingleSelectActionsTypes.CLEAR_SEARCH: {
|
|
137
|
-
return {
|
|
138
|
-
...state,
|
|
139
|
-
search: null,
|
|
140
|
-
offset: 0,
|
|
141
|
-
internalOptions: stateChanges.internalOptions,
|
|
142
|
-
internalOptionsMap: stateChanges.internalOptionsMap,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
case SingleSelectActionsTypes.SET_INTERNAL_OPTIONS: {
|
|
146
|
-
return {
|
|
147
|
-
...state,
|
|
148
|
-
internalOptions: stateChanges.internalOptions,
|
|
149
|
-
internalOptionsMap: stateChanges.internalOptionsMap,
|
|
150
|
-
loadingInternalOptions: false,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
case SingleSelectActionsTypes.APPEND_INTERNAL_OPTIONS: {
|
|
154
|
-
return {
|
|
155
|
-
...state,
|
|
156
|
-
internalOptions: [...state.internalOptions, ...stateChanges.newOptions],
|
|
157
|
-
internalOptionsMap: {
|
|
158
|
-
...state.internalOptionsMap,
|
|
159
|
-
...stateChanges.internalOptionsMap,
|
|
160
|
-
},
|
|
161
|
-
loadingInternalOptions: false,
|
|
162
|
-
limit: state.limit,
|
|
163
|
-
offset: state.offset + (stateChanges?.persistOffset ? 0 : 10),
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
case SingleSelectActionsTypes.CHANGE_HAS_MORE_FLAG: {
|
|
167
|
-
return {
|
|
168
|
-
...state,
|
|
169
|
-
hasMore: !state.hasMore,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
default:
|
|
173
|
-
return { ...state, ...stateChanges };
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
|
|
177
80
|
export const SingleSelect = ({
|
|
178
81
|
options,
|
|
179
82
|
optionsApiEndPoint,
|
|
@@ -202,7 +105,7 @@ export const SingleSelect = ({
|
|
|
202
105
|
return _.keyBy(options ?? [], getValue ? getValue : (o) => o.value);
|
|
203
106
|
};
|
|
204
107
|
|
|
205
|
-
const
|
|
108
|
+
const initialState: SingleSelectState = {
|
|
206
109
|
open: false,
|
|
207
110
|
loadingInternalOptions: false,
|
|
208
111
|
loadingInitialInternalOptions: false,
|
|
@@ -212,7 +115,9 @@ export const SingleSelect = ({
|
|
|
212
115
|
offset: 0,
|
|
213
116
|
hasMore: true,
|
|
214
117
|
search: null,
|
|
215
|
-
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const [state, dispatch] = useReducer(singleSelectReducer, initialState);
|
|
216
121
|
const {
|
|
217
122
|
open,
|
|
218
123
|
loadingInternalOptions,
|
|
@@ -241,8 +146,10 @@ export const SingleSelect = ({
|
|
|
241
146
|
limit,
|
|
242
147
|
offset,
|
|
243
148
|
dbValueProps: {
|
|
244
|
-
|
|
149
|
+
valueKey: dbValueProps.valueKey,
|
|
245
150
|
...(dbValueProps.isObjectId && { isObjectId: true }),
|
|
151
|
+
...(dbValueProps.isInt && { isInt: true }),
|
|
152
|
+
...(dbValueProps.isFloat && { isFloat: true }),
|
|
246
153
|
selectedValueData: value,
|
|
247
154
|
},
|
|
248
155
|
dbLabelProps,
|
|
@@ -465,6 +372,7 @@ export const SingleSelect = ({
|
|
|
465
372
|
filterBySelectedValues: true,
|
|
466
373
|
},
|
|
467
374
|
dbLabelProps,
|
|
375
|
+
...optionsApiEndpointParams,
|
|
468
376
|
},
|
|
469
377
|
});
|
|
470
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