@wecareu/select 0.1.0
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/README.md +165 -0
- package/lib/commonjs/Select.js +272 -0
- package/lib/commonjs/Select.js.map +1 -0
- package/lib/commonjs/Select.types.js +6 -0
- package/lib/commonjs/Select.types.js.map +1 -0
- package/lib/commonjs/SelectChip.js +74 -0
- package/lib/commonjs/SelectChip.js.map +1 -0
- package/lib/commonjs/SelectDropdown.js +156 -0
- package/lib/commonjs/SelectDropdown.js.map +1 -0
- package/lib/commonjs/SelectErrorMessage.js +32 -0
- package/lib/commonjs/SelectErrorMessage.js.map +1 -0
- package/lib/commonjs/SelectIcon.js +64 -0
- package/lib/commonjs/SelectIcon.js.map +1 -0
- package/lib/commonjs/SelectOption.js +140 -0
- package/lib/commonjs/SelectOption.js.map +1 -0
- package/lib/commonjs/SelectSearch.js +79 -0
- package/lib/commonjs/SelectSearch.js.map +1 -0
- package/lib/commonjs/animations/shake.js +45 -0
- package/lib/commonjs/animations/shake.js.map +1 -0
- package/lib/commonjs/index.js +13 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/index.stories.js +383 -0
- package/lib/commonjs/index.stories.js.map +1 -0
- package/lib/module/Select.js +265 -0
- package/lib/module/Select.js.map +1 -0
- package/lib/module/Select.types.js +2 -0
- package/lib/module/Select.types.js.map +1 -0
- package/lib/module/SelectChip.js +67 -0
- package/lib/module/SelectChip.js.map +1 -0
- package/lib/module/SelectDropdown.js +149 -0
- package/lib/module/SelectDropdown.js.map +1 -0
- package/lib/module/SelectErrorMessage.js +25 -0
- package/lib/module/SelectErrorMessage.js.map +1 -0
- package/lib/module/SelectIcon.js +57 -0
- package/lib/module/SelectIcon.js.map +1 -0
- package/lib/module/SelectOption.js +133 -0
- package/lib/module/SelectOption.js.map +1 -0
- package/lib/module/SelectSearch.js +72 -0
- package/lib/module/SelectSearch.js.map +1 -0
- package/lib/module/animations/shake.js +39 -0
- package/lib/module/animations/shake.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.stories.js +376 -0
- package/lib/module/index.stories.js.map +1 -0
- package/lib/typescript/src/Select.d.ts +3 -0
- package/lib/typescript/src/Select.d.ts.map +1 -0
- package/lib/typescript/src/Select.types.d.ts +245 -0
- package/lib/typescript/src/Select.types.d.ts.map +1 -0
- package/lib/typescript/src/SelectChip.d.ts +3 -0
- package/lib/typescript/src/SelectChip.d.ts.map +1 -0
- package/lib/typescript/src/SelectDropdown.d.ts +3 -0
- package/lib/typescript/src/SelectDropdown.d.ts.map +1 -0
- package/lib/typescript/src/SelectErrorMessage.d.ts +3 -0
- package/lib/typescript/src/SelectErrorMessage.d.ts.map +1 -0
- package/lib/typescript/src/SelectIcon.d.ts +3 -0
- package/lib/typescript/src/SelectIcon.d.ts.map +1 -0
- package/lib/typescript/src/SelectOption.d.ts +3 -0
- package/lib/typescript/src/SelectOption.d.ts.map +1 -0
- package/lib/typescript/src/SelectSearch.d.ts +3 -0
- package/lib/typescript/src/SelectSearch.d.ts.map +1 -0
- package/lib/typescript/src/animations/shake.d.ts +32 -0
- package/lib/typescript/src/animations/shake.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +66 -0
- package/src/Select.tsx +338 -0
- package/src/Select.types.ts +256 -0
- package/src/SelectChip.tsx +75 -0
- package/src/SelectDropdown.tsx +184 -0
- package/src/SelectErrorMessage.tsx +31 -0
- package/src/SelectIcon.tsx +63 -0
- package/src/SelectOption.tsx +168 -0
- package/src/SelectSearch.tsx +81 -0
- package/src/animations/shake.ts +76 -0
- package/src/index.stories.tsx +336 -0
- package/src/index.tsx +2 -0
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.WithRowColors = exports.WithIconsAndLabelColors = exports.WithFlags = exports.WithError = exports.WithDisabledOptions = exports.Selected = exports.Readonly = exports.MultipleWithInitialValues = exports.MultipleWithDisabledOptions = exports.MultipleSelect = exports.MultipleSearchable = exports.Disabled = exports.Default = exports.Clearable = exports.AllStates = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _addonActions = require("@storybook/addon-actions");
|
|
10
|
+
var _ = require(".");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
13
|
+
const GENDER_OPTIONS = [{
|
|
14
|
+
label: 'Female',
|
|
15
|
+
value: 'F'
|
|
16
|
+
}, {
|
|
17
|
+
label: 'Male',
|
|
18
|
+
value: 'M'
|
|
19
|
+
}, {
|
|
20
|
+
label: 'Non-binary',
|
|
21
|
+
value: 'NB'
|
|
22
|
+
}, {
|
|
23
|
+
label: 'Prefer not to say',
|
|
24
|
+
value: 'X'
|
|
25
|
+
}];
|
|
26
|
+
const COUNTRIES_OPTIONS = [{
|
|
27
|
+
description: 'South America',
|
|
28
|
+
flagCode: 'AR',
|
|
29
|
+
label: 'Argentina',
|
|
30
|
+
value: 'AR'
|
|
31
|
+
}, {
|
|
32
|
+
description: 'Oceania',
|
|
33
|
+
flagCode: 'AU',
|
|
34
|
+
label: 'Australia',
|
|
35
|
+
value: 'AU'
|
|
36
|
+
}, {
|
|
37
|
+
description: 'South America',
|
|
38
|
+
flagCode: 'BR',
|
|
39
|
+
label: 'Brazil',
|
|
40
|
+
value: 'BR'
|
|
41
|
+
}, {
|
|
42
|
+
description: 'North America',
|
|
43
|
+
flagCode: 'CA',
|
|
44
|
+
label: 'Canada',
|
|
45
|
+
value: 'CA'
|
|
46
|
+
}, {
|
|
47
|
+
description: 'South America',
|
|
48
|
+
flagCode: 'CL',
|
|
49
|
+
label: 'Chile',
|
|
50
|
+
value: 'CL'
|
|
51
|
+
}, {
|
|
52
|
+
description: 'Asia',
|
|
53
|
+
flagCode: 'CN',
|
|
54
|
+
label: 'China',
|
|
55
|
+
value: 'CN'
|
|
56
|
+
}, {
|
|
57
|
+
description: 'Europe',
|
|
58
|
+
flagCode: 'FR',
|
|
59
|
+
label: 'France',
|
|
60
|
+
value: 'FR'
|
|
61
|
+
}, {
|
|
62
|
+
description: 'Europe',
|
|
63
|
+
flagCode: 'DE',
|
|
64
|
+
label: 'Germany',
|
|
65
|
+
value: 'DE'
|
|
66
|
+
}, {
|
|
67
|
+
description: 'Asia',
|
|
68
|
+
flagCode: 'IN',
|
|
69
|
+
label: 'India',
|
|
70
|
+
value: 'IN'
|
|
71
|
+
}, {
|
|
72
|
+
description: 'Europe',
|
|
73
|
+
flagCode: 'IT',
|
|
74
|
+
label: 'Italy',
|
|
75
|
+
value: 'IT'
|
|
76
|
+
}, {
|
|
77
|
+
description: 'Asia',
|
|
78
|
+
flagCode: 'JP',
|
|
79
|
+
label: 'Japan',
|
|
80
|
+
value: 'JP'
|
|
81
|
+
}, {
|
|
82
|
+
description: 'Europe',
|
|
83
|
+
flagCode: 'PT',
|
|
84
|
+
label: 'Portugal',
|
|
85
|
+
value: 'PT'
|
|
86
|
+
}, {
|
|
87
|
+
description: 'Europe',
|
|
88
|
+
flagCode: 'ES',
|
|
89
|
+
label: 'Spain',
|
|
90
|
+
value: 'ES'
|
|
91
|
+
}, {
|
|
92
|
+
description: 'North America',
|
|
93
|
+
flagCode: 'US',
|
|
94
|
+
label: 'United States',
|
|
95
|
+
value: 'US'
|
|
96
|
+
}];
|
|
97
|
+
const TAGS_OPTIONS = [{
|
|
98
|
+
label: 'Design System',
|
|
99
|
+
value: 'ds'
|
|
100
|
+
}, {
|
|
101
|
+
label: 'Expo',
|
|
102
|
+
value: 'expo'
|
|
103
|
+
}, {
|
|
104
|
+
label: 'React Native',
|
|
105
|
+
value: 'rn'
|
|
106
|
+
}, {
|
|
107
|
+
label: 'Storybook',
|
|
108
|
+
value: 'sb'
|
|
109
|
+
}, {
|
|
110
|
+
label: 'Testing',
|
|
111
|
+
value: 'test'
|
|
112
|
+
}, {
|
|
113
|
+
label: 'TypeScript',
|
|
114
|
+
value: 'ts'
|
|
115
|
+
}];
|
|
116
|
+
const STATUS_OPTIONS = [{
|
|
117
|
+
description: 'User is available',
|
|
118
|
+
icon: 'correct',
|
|
119
|
+
label: 'Available',
|
|
120
|
+
labelColor: '#22c55e',
|
|
121
|
+
value: 'available'
|
|
122
|
+
}, {
|
|
123
|
+
description: 'User is in a meeting',
|
|
124
|
+
icon: 'time',
|
|
125
|
+
label: 'Busy',
|
|
126
|
+
labelColor: '#f59e0b',
|
|
127
|
+
value: 'busy'
|
|
128
|
+
}, {
|
|
129
|
+
description: 'User is not here',
|
|
130
|
+
disabled: true,
|
|
131
|
+
icon: 'close',
|
|
132
|
+
label: 'Away',
|
|
133
|
+
value: 'away'
|
|
134
|
+
}, {
|
|
135
|
+
description: 'Appears offline to others',
|
|
136
|
+
icon: 'notificationOff',
|
|
137
|
+
label: 'Offline',
|
|
138
|
+
labelColor: '#94a3b8',
|
|
139
|
+
value: 'offline'
|
|
140
|
+
}];
|
|
141
|
+
const ROLE_OPTIONS = [{
|
|
142
|
+
color: '#fef9c3',
|
|
143
|
+
label: 'Admin',
|
|
144
|
+
labelColor: '#854d0e',
|
|
145
|
+
value: 'admin'
|
|
146
|
+
}, {
|
|
147
|
+
color: '#dcfce7',
|
|
148
|
+
label: 'Editor',
|
|
149
|
+
labelColor: '#166534',
|
|
150
|
+
value: 'editor'
|
|
151
|
+
}, {
|
|
152
|
+
color: '#dbeafe',
|
|
153
|
+
label: 'Viewer',
|
|
154
|
+
labelColor: '#1e40af',
|
|
155
|
+
value: 'viewer'
|
|
156
|
+
}, {
|
|
157
|
+
color: '#fee2e2',
|
|
158
|
+
disabled: true,
|
|
159
|
+
label: 'Banned',
|
|
160
|
+
labelColor: '#991b1b',
|
|
161
|
+
value: 'banned'
|
|
162
|
+
}];
|
|
163
|
+
function StatefulSingleSelect({
|
|
164
|
+
initialValue = null,
|
|
165
|
+
...rest
|
|
166
|
+
}) {
|
|
167
|
+
const [value, setValue] = _react.default.useState(initialValue);
|
|
168
|
+
const handleChange = _react.default.useCallback(next => {
|
|
169
|
+
setValue(next);
|
|
170
|
+
(0, _addonActions.action)('onChange')(next);
|
|
171
|
+
}, []);
|
|
172
|
+
return /*#__PURE__*/_react.default.createElement(_.Select, _extends({}, rest, {
|
|
173
|
+
onChange: handleChange,
|
|
174
|
+
value: value
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
function StatefulMultiSelect({
|
|
178
|
+
initialValues = [],
|
|
179
|
+
...rest
|
|
180
|
+
}) {
|
|
181
|
+
const [values, setValues] = _react.default.useState(initialValues);
|
|
182
|
+
const handleChange = _react.default.useCallback(next => {
|
|
183
|
+
setValues(next);
|
|
184
|
+
(0, _addonActions.action)('onChange')(next);
|
|
185
|
+
}, []);
|
|
186
|
+
return /*#__PURE__*/_react.default.createElement(_.Select, _extends({}, rest, {
|
|
187
|
+
multiple: true,
|
|
188
|
+
onChange: handleChange,
|
|
189
|
+
value: values
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
const meta = {
|
|
193
|
+
component: _.Select,
|
|
194
|
+
parameters: {
|
|
195
|
+
layout: 'centered'
|
|
196
|
+
},
|
|
197
|
+
tags: ['autodocs'],
|
|
198
|
+
title: 'Forms/Select'
|
|
199
|
+
};
|
|
200
|
+
var _default = exports.default = meta;
|
|
201
|
+
const Default = exports.Default = {
|
|
202
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
203
|
+
style: styles.container
|
|
204
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
205
|
+
options: GENDER_OPTIONS,
|
|
206
|
+
placeholder: "Select gender"
|
|
207
|
+
}))
|
|
208
|
+
};
|
|
209
|
+
const Selected = exports.Selected = {
|
|
210
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
211
|
+
style: styles.container
|
|
212
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
213
|
+
initialValue: "BR",
|
|
214
|
+
options: COUNTRIES_OPTIONS,
|
|
215
|
+
placeholder: "Select country"
|
|
216
|
+
}))
|
|
217
|
+
};
|
|
218
|
+
const WithFlags = exports.WithFlags = {
|
|
219
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
220
|
+
style: styles.container
|
|
221
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
222
|
+
clearable: true,
|
|
223
|
+
options: COUNTRIES_OPTIONS,
|
|
224
|
+
placeholder: "Select country",
|
|
225
|
+
searchable: true
|
|
226
|
+
}))
|
|
227
|
+
};
|
|
228
|
+
const WithIconsAndLabelColors = exports.WithIconsAndLabelColors = {
|
|
229
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
230
|
+
style: styles.container
|
|
231
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
232
|
+
clearable: true,
|
|
233
|
+
options: STATUS_OPTIONS,
|
|
234
|
+
placeholder: "Select status"
|
|
235
|
+
}))
|
|
236
|
+
};
|
|
237
|
+
const WithRowColors = exports.WithRowColors = {
|
|
238
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
239
|
+
style: styles.container
|
|
240
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
241
|
+
clearable: true,
|
|
242
|
+
options: ROLE_OPTIONS,
|
|
243
|
+
placeholder: "Select role"
|
|
244
|
+
}))
|
|
245
|
+
};
|
|
246
|
+
const MultipleSelect = exports.MultipleSelect = {
|
|
247
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
248
|
+
style: styles.container
|
|
249
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulMultiSelect, {
|
|
250
|
+
clearable: true,
|
|
251
|
+
options: TAGS_OPTIONS,
|
|
252
|
+
placeholder: "Select tags"
|
|
253
|
+
}))
|
|
254
|
+
};
|
|
255
|
+
const MultipleWithInitialValues = exports.MultipleWithInitialValues = {
|
|
256
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
257
|
+
style: styles.container
|
|
258
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulMultiSelect, {
|
|
259
|
+
clearable: true,
|
|
260
|
+
initialValues: ['rn', 'ts'],
|
|
261
|
+
options: TAGS_OPTIONS,
|
|
262
|
+
placeholder: "Select tags"
|
|
263
|
+
}))
|
|
264
|
+
};
|
|
265
|
+
const MultipleSearchable = exports.MultipleSearchable = {
|
|
266
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
267
|
+
style: styles.container
|
|
268
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulMultiSelect, {
|
|
269
|
+
clearable: true,
|
|
270
|
+
options: COUNTRIES_OPTIONS,
|
|
271
|
+
placeholder: "Select countries",
|
|
272
|
+
searchable: true
|
|
273
|
+
}))
|
|
274
|
+
};
|
|
275
|
+
const MultipleWithDisabledOptions = exports.MultipleWithDisabledOptions = {
|
|
276
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
277
|
+
style: styles.container
|
|
278
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulMultiSelect, {
|
|
279
|
+
clearable: true,
|
|
280
|
+
options: STATUS_OPTIONS,
|
|
281
|
+
placeholder: "Select statuses"
|
|
282
|
+
}))
|
|
283
|
+
};
|
|
284
|
+
const Clearable = exports.Clearable = {
|
|
285
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
286
|
+
style: styles.container
|
|
287
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
288
|
+
clearable: true,
|
|
289
|
+
initialValue: "M",
|
|
290
|
+
options: GENDER_OPTIONS,
|
|
291
|
+
placeholder: "Select gender"
|
|
292
|
+
}))
|
|
293
|
+
};
|
|
294
|
+
const WithError = exports.WithError = {
|
|
295
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
296
|
+
style: styles.container
|
|
297
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
298
|
+
errorMessage: "This field is required",
|
|
299
|
+
inputError: true,
|
|
300
|
+
options: GENDER_OPTIONS,
|
|
301
|
+
placeholder: "Select gender",
|
|
302
|
+
required: true
|
|
303
|
+
}))
|
|
304
|
+
};
|
|
305
|
+
const Disabled = exports.Disabled = {
|
|
306
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
307
|
+
style: styles.container
|
|
308
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
309
|
+
disabled: true,
|
|
310
|
+
initialValue: "M",
|
|
311
|
+
options: GENDER_OPTIONS,
|
|
312
|
+
placeholder: "Select gender"
|
|
313
|
+
}))
|
|
314
|
+
};
|
|
315
|
+
const Readonly = exports.Readonly = {
|
|
316
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
317
|
+
style: styles.container
|
|
318
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
319
|
+
initialValue: "BR",
|
|
320
|
+
options: COUNTRIES_OPTIONS,
|
|
321
|
+
placeholder: "Select country",
|
|
322
|
+
readonly: true
|
|
323
|
+
}))
|
|
324
|
+
};
|
|
325
|
+
const WithDisabledOptions = exports.WithDisabledOptions = {
|
|
326
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
327
|
+
style: styles.container
|
|
328
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
329
|
+
options: STATUS_OPTIONS,
|
|
330
|
+
placeholder: "Select status"
|
|
331
|
+
}))
|
|
332
|
+
};
|
|
333
|
+
const AllStates = exports.AllStates = {
|
|
334
|
+
render: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
335
|
+
style: styles.column
|
|
336
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
337
|
+
style: styles.storyItem
|
|
338
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
339
|
+
options: GENDER_OPTIONS,
|
|
340
|
+
placeholder: "Default - empty"
|
|
341
|
+
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
342
|
+
style: styles.storyItem
|
|
343
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
344
|
+
clearable: true,
|
|
345
|
+
initialValue: "M",
|
|
346
|
+
options: GENDER_OPTIONS,
|
|
347
|
+
placeholder: "With value + clearable"
|
|
348
|
+
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
349
|
+
style: styles.storyItem
|
|
350
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
351
|
+
errorMessage: "Required field",
|
|
352
|
+
inputError: true,
|
|
353
|
+
options: GENDER_OPTIONS,
|
|
354
|
+
placeholder: "Error state"
|
|
355
|
+
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
356
|
+
style: styles.storyItem
|
|
357
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulSingleSelect, {
|
|
358
|
+
disabled: true,
|
|
359
|
+
initialValue: "F",
|
|
360
|
+
options: GENDER_OPTIONS,
|
|
361
|
+
placeholder: "Disabled"
|
|
362
|
+
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
363
|
+
style: styles.storyItem
|
|
364
|
+
}, /*#__PURE__*/_react.default.createElement(StatefulMultiSelect, {
|
|
365
|
+
clearable: true,
|
|
366
|
+
initialValues: ['ts', 'rn'],
|
|
367
|
+
options: TAGS_OPTIONS,
|
|
368
|
+
placeholder: "Multi select with chips"
|
|
369
|
+
})))
|
|
370
|
+
};
|
|
371
|
+
const styles = _reactNative.StyleSheet.create({
|
|
372
|
+
column: {
|
|
373
|
+
gap: 12,
|
|
374
|
+
width: 320
|
|
375
|
+
},
|
|
376
|
+
container: {
|
|
377
|
+
width: 320
|
|
378
|
+
},
|
|
379
|
+
storyItem: {
|
|
380
|
+
width: '100%'
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
//# sourceMappingURL=index.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_addonActions","_","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","GENDER_OPTIONS","label","value","COUNTRIES_OPTIONS","description","flagCode","TAGS_OPTIONS","STATUS_OPTIONS","icon","labelColor","disabled","ROLE_OPTIONS","color","StatefulSingleSelect","initialValue","rest","setValue","React","useState","handleChange","useCallback","next","action","createElement","Select","onChange","StatefulMultiSelect","initialValues","values","setValues","multiple","meta","component","parameters","layout","tags","title","_default","exports","Default","render","View","style","styles","container","options","placeholder","Selected","WithFlags","clearable","searchable","WithIconsAndLabelColors","WithRowColors","MultipleSelect","MultipleWithInitialValues","MultipleSearchable","MultipleWithDisabledOptions","Clearable","WithError","errorMessage","inputError","required","Disabled","Readonly","readonly","WithDisabledOptions","AllStates","column","storyItem","StyleSheet","create","gap","width"],"sourceRoot":"..\\..\\src","sources":["index.stories.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Animated, Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { useTheme } from '@wecareu/theme';
|
|
4
|
+
import { useShakeAnimation } from './animations/shake';
|
|
5
|
+
import { SelectChip } from './SelectChip';
|
|
6
|
+
import { SelectDropdown } from './SelectDropdown';
|
|
7
|
+
import { SelectErrorMessage } from './SelectErrorMessage';
|
|
8
|
+
import { SelectIcon } from './SelectIcon';
|
|
9
|
+
export function Select(props) {
|
|
10
|
+
const theme = useTheme();
|
|
11
|
+
const styles = React.useMemo(() => createStyles(theme), [theme]);
|
|
12
|
+
const {
|
|
13
|
+
clearable = false,
|
|
14
|
+
disabled = false,
|
|
15
|
+
errorMessage,
|
|
16
|
+
inputError = false,
|
|
17
|
+
labels,
|
|
18
|
+
leftIcon,
|
|
19
|
+
multiple,
|
|
20
|
+
onValidation,
|
|
21
|
+
options,
|
|
22
|
+
placeholder,
|
|
23
|
+
readonly = false,
|
|
24
|
+
required = false,
|
|
25
|
+
searchable = false,
|
|
26
|
+
style,
|
|
27
|
+
testID,
|
|
28
|
+
value
|
|
29
|
+
} = props;
|
|
30
|
+
if (!options || options.length === 0) {
|
|
31
|
+
console.error('[Select] The "options" prop must be a non-empty array. Received:', options);
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
const isInteractive = !(disabled || readonly);
|
|
35
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
36
|
+
const [touched, setTouched] = React.useState(false);
|
|
37
|
+
const {
|
|
38
|
+
animatedStyle,
|
|
39
|
+
triggerShake
|
|
40
|
+
} = useShakeAnimation({
|
|
41
|
+
distance: theme.spacing.sm
|
|
42
|
+
});
|
|
43
|
+
const isEmpty = multiple ? value.length === 0 : value === null || value === undefined;
|
|
44
|
+
const internalHasError = React.useMemo(() => {
|
|
45
|
+
if (!required || !touched) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return isEmpty;
|
|
49
|
+
}, [isEmpty, required, touched]);
|
|
50
|
+
React.useEffect(() => {
|
|
51
|
+
if (!required || !touched) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
onValidation?.(!internalHasError);
|
|
55
|
+
}, [internalHasError, onValidation, required, touched]);
|
|
56
|
+
const shouldShowError = inputError || internalHasError;
|
|
57
|
+
const requiredErrorMessage = labels?.requiredError ?? 'This field is required';
|
|
58
|
+
const effectiveErrorMessage = inputError ? errorMessage : internalHasError ? requiredErrorMessage : undefined;
|
|
59
|
+
const previousErrorRef = React.useRef(false);
|
|
60
|
+
React.useEffect(() => {
|
|
61
|
+
if (shouldShowError && !previousErrorRef.current) {
|
|
62
|
+
triggerShake();
|
|
63
|
+
}
|
|
64
|
+
previousErrorRef.current = shouldShowError;
|
|
65
|
+
}, [shouldShowError, triggerShake]);
|
|
66
|
+
const selectedValues = React.useMemo(() => {
|
|
67
|
+
if (multiple) {
|
|
68
|
+
return value ?? [];
|
|
69
|
+
}
|
|
70
|
+
if (value !== null && value !== undefined) {
|
|
71
|
+
return [value];
|
|
72
|
+
}
|
|
73
|
+
return [];
|
|
74
|
+
}, [multiple, value]);
|
|
75
|
+
const selectedOptions = React.useMemo(() => options.filter(o => selectedValues.includes(o.value)), [options, selectedValues]);
|
|
76
|
+
const singleLabel = React.useMemo(() => {
|
|
77
|
+
if (multiple || isEmpty) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
return options.find(o => o.value === value)?.label ?? null;
|
|
81
|
+
}, [isEmpty, multiple, options, value]);
|
|
82
|
+
const handleOpen = React.useCallback(() => {
|
|
83
|
+
if (!isInteractive) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
setTouched(true);
|
|
87
|
+
setIsOpen(true);
|
|
88
|
+
}, [isInteractive]);
|
|
89
|
+
const handleClose = React.useCallback(() => {
|
|
90
|
+
setIsOpen(false);
|
|
91
|
+
}, []);
|
|
92
|
+
const handleToggleOption = React.useCallback(option => {
|
|
93
|
+
if (multiple) {
|
|
94
|
+
const multiProps = props;
|
|
95
|
+
const current = multiProps.value;
|
|
96
|
+
const isSelected = current.includes(option.value);
|
|
97
|
+
const next = isSelected ? current.filter(v => v !== option.value) : [...current, option.value];
|
|
98
|
+
multiProps.onChange(next);
|
|
99
|
+
} else {
|
|
100
|
+
const singleProps = props;
|
|
101
|
+
singleProps.onChange(option.value);
|
|
102
|
+
setIsOpen(false);
|
|
103
|
+
}
|
|
104
|
+
}, [multiple, props]);
|
|
105
|
+
const handleClear = React.useCallback(() => {
|
|
106
|
+
if (multiple) {
|
|
107
|
+
const multiProps = props;
|
|
108
|
+
multiProps.onChange([]);
|
|
109
|
+
} else {
|
|
110
|
+
const singleProps = props;
|
|
111
|
+
singleProps.onChange(null);
|
|
112
|
+
}
|
|
113
|
+
}, [multiple, props]);
|
|
114
|
+
const handleRemoveChip = React.useCallback(optionValue => {
|
|
115
|
+
if (!multiple) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const multiProps = props;
|
|
119
|
+
multiProps.onChange(multiProps.value.filter(v => v !== optionValue));
|
|
120
|
+
}, [multiple, props]);
|
|
121
|
+
const showClearButton = clearable && !isEmpty && isInteractive;
|
|
122
|
+
const renderFieldContent = () => {
|
|
123
|
+
if (multiple && selectedOptions.length > 0) {
|
|
124
|
+
return /*#__PURE__*/React.createElement(ScrollView, {
|
|
125
|
+
horizontal: true,
|
|
126
|
+
keyboardShouldPersistTaps: "handled",
|
|
127
|
+
showsHorizontalScrollIndicator: false,
|
|
128
|
+
style: styles.chipsScroll,
|
|
129
|
+
contentContainerStyle: styles.chipsContainer
|
|
130
|
+
}, selectedOptions.map(opt => /*#__PURE__*/React.createElement(SelectChip, {
|
|
131
|
+
key: String(opt.value),
|
|
132
|
+
disabled: disabled,
|
|
133
|
+
label: opt.label,
|
|
134
|
+
onRemove: () => handleRemoveChip(opt.value)
|
|
135
|
+
})));
|
|
136
|
+
}
|
|
137
|
+
if (!isEmpty && singleLabel) {
|
|
138
|
+
return /*#__PURE__*/React.createElement(Text, {
|
|
139
|
+
numberOfLines: 1,
|
|
140
|
+
style: styles.selectedLabel
|
|
141
|
+
}, singleLabel);
|
|
142
|
+
}
|
|
143
|
+
return /*#__PURE__*/React.createElement(Text, {
|
|
144
|
+
numberOfLines: 1,
|
|
145
|
+
style: styles.placeholder
|
|
146
|
+
}, placeholder ?? 'Select...');
|
|
147
|
+
};
|
|
148
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
149
|
+
style: styles.wrapper
|
|
150
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
151
|
+
accessible: false,
|
|
152
|
+
style: [styles.container, !isInteractive && styles.containerDisabled, shouldShowError && styles.containerError, animatedStyle, style],
|
|
153
|
+
testID: testID
|
|
154
|
+
}, leftIcon ? /*#__PURE__*/React.createElement(View, {
|
|
155
|
+
style: styles.iconLeft
|
|
156
|
+
}, /*#__PURE__*/React.createElement(SelectIcon, leftIcon)) : null, /*#__PURE__*/React.createElement(Pressable, {
|
|
157
|
+
accessibilityHint: placeholder,
|
|
158
|
+
accessibilityLabel: singleLabel ?? placeholder ?? 'Select option',
|
|
159
|
+
accessibilityRole: "combobox",
|
|
160
|
+
accessibilityState: {
|
|
161
|
+
disabled: !isInteractive,
|
|
162
|
+
expanded: isOpen
|
|
163
|
+
},
|
|
164
|
+
disabled: !isInteractive,
|
|
165
|
+
onPress: handleOpen,
|
|
166
|
+
style: styles.fieldPressable
|
|
167
|
+
}, renderFieldContent()), /*#__PURE__*/React.createElement(View, {
|
|
168
|
+
style: styles.rightIcons
|
|
169
|
+
}, showClearButton ? /*#__PURE__*/React.createElement(Pressable, {
|
|
170
|
+
accessibilityLabel: "Clear selection",
|
|
171
|
+
accessibilityRole: "button",
|
|
172
|
+
hitSlop: 8,
|
|
173
|
+
onPress: handleClear
|
|
174
|
+
}, /*#__PURE__*/React.createElement(SelectIcon, {
|
|
175
|
+
color: theme.colors.text.tertiary,
|
|
176
|
+
name: "close",
|
|
177
|
+
size: theme.spacing.md
|
|
178
|
+
})) : /*#__PURE__*/React.createElement(Pressable, {
|
|
179
|
+
accessibilityLabel: isOpen ? 'Close options' : 'Open options',
|
|
180
|
+
accessibilityRole: "button",
|
|
181
|
+
disabled: !isInteractive,
|
|
182
|
+
hitSlop: 8,
|
|
183
|
+
onPress: handleOpen
|
|
184
|
+
}, /*#__PURE__*/React.createElement(SelectIcon, {
|
|
185
|
+
color: theme.colors.text.tertiary,
|
|
186
|
+
name: isOpen ? 'chevronUp' : 'chevronDown',
|
|
187
|
+
size: theme.spacing.md
|
|
188
|
+
})))), /*#__PURE__*/React.createElement(SelectErrorMessage, {
|
|
189
|
+
message: shouldShowError ? effectiveErrorMessage : undefined,
|
|
190
|
+
testID: effectiveErrorMessage ? `${testID ?? 'select'}-error` : undefined
|
|
191
|
+
}), /*#__PURE__*/React.createElement(SelectDropdown, {
|
|
192
|
+
isMulti: multiple,
|
|
193
|
+
isOpen: isOpen,
|
|
194
|
+
onClose: handleClose,
|
|
195
|
+
onToggleOption: handleToggleOption,
|
|
196
|
+
options: options,
|
|
197
|
+
searchable: searchable,
|
|
198
|
+
selectedValues: selectedValues
|
|
199
|
+
}));
|
|
200
|
+
}
|
|
201
|
+
function createStyles(theme) {
|
|
202
|
+
return StyleSheet.create({
|
|
203
|
+
chipsContainer: {
|
|
204
|
+
alignItems: 'center',
|
|
205
|
+
flexDirection: 'row',
|
|
206
|
+
gap: theme.spacing.xs,
|
|
207
|
+
paddingVertical: 2
|
|
208
|
+
},
|
|
209
|
+
chipsScroll: {
|
|
210
|
+
flex: 1
|
|
211
|
+
},
|
|
212
|
+
container: {
|
|
213
|
+
alignItems: 'center',
|
|
214
|
+
backgroundColor: 'transparent',
|
|
215
|
+
borderColor: theme.colors.brand.primary,
|
|
216
|
+
borderRadius: theme.radius.xxl,
|
|
217
|
+
borderWidth: 1,
|
|
218
|
+
flexDirection: 'row',
|
|
219
|
+
minHeight: 48,
|
|
220
|
+
paddingHorizontal: theme.spacing.xl,
|
|
221
|
+
paddingVertical: theme.spacing.xs,
|
|
222
|
+
width: '100%'
|
|
223
|
+
},
|
|
224
|
+
containerDisabled: {
|
|
225
|
+
backgroundColor: theme.colors.surface.disabled,
|
|
226
|
+
borderColor: theme.colors.border.disabled
|
|
227
|
+
},
|
|
228
|
+
containerError: {
|
|
229
|
+
borderColor: theme.colors.status.error
|
|
230
|
+
},
|
|
231
|
+
fieldPressable: {
|
|
232
|
+
alignItems: 'center',
|
|
233
|
+
flex: 1,
|
|
234
|
+
flexDirection: 'row',
|
|
235
|
+
justifyContent: 'center',
|
|
236
|
+
minHeight: 32
|
|
237
|
+
},
|
|
238
|
+
iconLeft: {
|
|
239
|
+
marginRight: theme.spacing.xs
|
|
240
|
+
},
|
|
241
|
+
placeholder: {
|
|
242
|
+
color: theme.colors.text.tertiary,
|
|
243
|
+
flex: 1,
|
|
244
|
+
fontFamily: theme.typography.fontFamily.body,
|
|
245
|
+
lineHeight: theme.typography.lineHeight.bodySmall,
|
|
246
|
+
textAlign: 'center'
|
|
247
|
+
},
|
|
248
|
+
rightIcons: {
|
|
249
|
+
alignItems: 'center',
|
|
250
|
+
flexDirection: 'row',
|
|
251
|
+
marginLeft: theme.spacing.xs
|
|
252
|
+
},
|
|
253
|
+
selectedLabel: {
|
|
254
|
+
color: theme.colors.text.primary,
|
|
255
|
+
flex: 1,
|
|
256
|
+
fontFamily: theme.typography.fontFamily.body,
|
|
257
|
+
lineHeight: theme.typography.lineHeight.bodySmall,
|
|
258
|
+
textAlign: 'center'
|
|
259
|
+
},
|
|
260
|
+
wrapper: {
|
|
261
|
+
width: '100%'
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=Select.js.map
|