@selfcommunity/react-ui 0.10.0-alpha.1 → 0.10.0-alpha.2
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.
|
@@ -48,13 +48,13 @@ const TagAutocomplete = (inProps) => {
|
|
|
48
48
|
name: PREFIX
|
|
49
49
|
});
|
|
50
50
|
// Props
|
|
51
|
-
const { onChange, defaultValue = null, TextFieldProps = {
|
|
51
|
+
const { onChange, multiple = true, defaultValue = multiple ? [] : null, TextFieldProps = {
|
|
52
52
|
variant: 'outlined',
|
|
53
53
|
label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.composer.layer.audience.tags.label", defaultMessage: "ui.composer.layer.audience.tags.label" })
|
|
54
|
-
}, TagChipProps = {} } = props, rest = tslib_1.__rest(props, ["onChange", "defaultValue", "TextFieldProps", "TagChipProps"]);
|
|
54
|
+
}, TagChipProps = {} } = props, rest = tslib_1.__rest(props, ["onChange", "multiple", "defaultValue", "TextFieldProps", "TagChipProps"]);
|
|
55
55
|
// State
|
|
56
56
|
const [open, setOpen] = (0, react_1.useState)(false);
|
|
57
|
-
const [value, setValue] = (0, react_1.useState)(defaultValue
|
|
57
|
+
const [value, setValue] = (0, react_1.useState)(typeof defaultValue === 'string' ? null : defaultValue);
|
|
58
58
|
// HOOKS
|
|
59
59
|
const { scAddressingTags } = (0, react_core_1.useSCFetchAddressingTagList)({ fetch: open });
|
|
60
60
|
(0, react_1.useEffect)(() => {
|
|
@@ -63,6 +63,11 @@ const TagAutocomplete = (inProps) => {
|
|
|
63
63
|
}
|
|
64
64
|
onChange && onChange(value);
|
|
65
65
|
}, [value]);
|
|
66
|
+
(0, react_1.useEffect)(() => {
|
|
67
|
+
if (typeof defaultValue === 'string') {
|
|
68
|
+
setValue(multiple ? scAddressingTags.filter((t) => t.id === Number(defaultValue)) : scAddressingTags.find((t) => t.id === Number(defaultValue)));
|
|
69
|
+
}
|
|
70
|
+
}, [defaultValue]);
|
|
66
71
|
// Handlers
|
|
67
72
|
const handleOpen = () => {
|
|
68
73
|
setOpen(true);
|
|
@@ -74,7 +79,7 @@ const TagAutocomplete = (inProps) => {
|
|
|
74
79
|
setValue(newValue);
|
|
75
80
|
};
|
|
76
81
|
// Render
|
|
77
|
-
return ((0, jsx_runtime_1.jsx)(Root, Object.assign({ className: classes.root, open: open, onOpen: handleOpen, onClose: handleClose,
|
|
82
|
+
return ((0, jsx_runtime_1.jsx)(Root, Object.assign({ className: classes.root, multiple: multiple, open: open, onOpen: handleOpen, onClose: handleClose, options: scAddressingTags || [], getOptionLabel: (option) => option.name || '', value: value, selectOnFocus: true, clearOnBlur: true, handleHomeEndKeys: true, clearIcon: null, noOptionsText: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.composer.layer.audience.tags.empty", defaultMessage: "ui.composer.layer.audience.tags.empty" }), onChange: handleChange, isOptionEqualToValue: (option, value) => value.id === option.id, renderTags: (value, getTagProps) => {
|
|
78
83
|
return value.map((option, index) => (0, jsx_runtime_1.jsx)(TagChip_1.default, Object.assign({ tag: option }, getTagProps({ index })), option.id));
|
|
79
84
|
}, renderOption: (props, option, { selected, inputValue }) => {
|
|
80
85
|
const matches = (0, match_1.default)(option.name, inputValue);
|
|
@@ -46,13 +46,13 @@ const TagAutocomplete = (inProps) => {
|
|
|
46
46
|
name: PREFIX
|
|
47
47
|
});
|
|
48
48
|
// Props
|
|
49
|
-
const { onChange, defaultValue = null, TextFieldProps = {
|
|
49
|
+
const { onChange, multiple = true, defaultValue = multiple ? [] : null, TextFieldProps = {
|
|
50
50
|
variant: 'outlined',
|
|
51
51
|
label: _jsx(FormattedMessage, { id: "ui.composer.layer.audience.tags.label", defaultMessage: "ui.composer.layer.audience.tags.label" })
|
|
52
|
-
}, TagChipProps = {} } = props, rest = __rest(props, ["onChange", "defaultValue", "TextFieldProps", "TagChipProps"]);
|
|
52
|
+
}, TagChipProps = {} } = props, rest = __rest(props, ["onChange", "multiple", "defaultValue", "TextFieldProps", "TagChipProps"]);
|
|
53
53
|
// State
|
|
54
54
|
const [open, setOpen] = useState(false);
|
|
55
|
-
const [value, setValue] = useState(defaultValue
|
|
55
|
+
const [value, setValue] = useState(typeof defaultValue === 'string' ? null : defaultValue);
|
|
56
56
|
// HOOKS
|
|
57
57
|
const { scAddressingTags } = useSCFetchAddressingTagList({ fetch: open });
|
|
58
58
|
useEffect(() => {
|
|
@@ -61,6 +61,11 @@ const TagAutocomplete = (inProps) => {
|
|
|
61
61
|
}
|
|
62
62
|
onChange && onChange(value);
|
|
63
63
|
}, [value]);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (typeof defaultValue === 'string') {
|
|
66
|
+
setValue(multiple ? scAddressingTags.filter((t) => t.id === Number(defaultValue)) : scAddressingTags.find((t) => t.id === Number(defaultValue)));
|
|
67
|
+
}
|
|
68
|
+
}, [defaultValue]);
|
|
64
69
|
// Handlers
|
|
65
70
|
const handleOpen = () => {
|
|
66
71
|
setOpen(true);
|
|
@@ -72,7 +77,7 @@ const TagAutocomplete = (inProps) => {
|
|
|
72
77
|
setValue(newValue);
|
|
73
78
|
};
|
|
74
79
|
// Render
|
|
75
|
-
return (_jsx(Root, Object.assign({ className: classes.root, open: open, onOpen: handleOpen, onClose: handleClose,
|
|
80
|
+
return (_jsx(Root, Object.assign({ className: classes.root, multiple: multiple, open: open, onOpen: handleOpen, onClose: handleClose, options: scAddressingTags || [], getOptionLabel: (option) => option.name || '', value: value, selectOnFocus: true, clearOnBlur: true, handleHomeEndKeys: true, clearIcon: null, noOptionsText: _jsx(FormattedMessage, { id: "ui.composer.layer.audience.tags.empty", defaultMessage: "ui.composer.layer.audience.tags.empty" }), onChange: handleChange, isOptionEqualToValue: (option, value) => value.id === option.id, renderTags: (value, getTagProps) => {
|
|
76
81
|
return value.map((option, index) => _jsx(TagChip, Object.assign({ tag: option }, getTagProps({ index })), option.id));
|
|
77
82
|
}, renderOption: (props, option, { selected, inputValue }) => {
|
|
78
83
|
const matches = match(option.name, inputValue);
|