@stack-spot/portal-components 2.16.0 → 2.17.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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.17.0](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.16.1...portal-components@v2.17.0) (2025-03-24)
4
+
5
+
6
+ ### Features
7
+
8
+ * Feat 1424 remove controls of comp Creatable Select ([#832](https://github.com/stack-spot/portal-commons/issues/832)) ([2186130](https://github.com/stack-spot/portal-commons/commit/2186130215c71b53da6195b5a2f979017bdfe07f))
9
+
10
+ ## [2.16.1](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.16.0...portal-components@v2.16.1) (2025-03-21)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * improve select component ([#819](https://github.com/stack-spot/portal-commons/issues/819)) ([b914639](https://github.com/stack-spot/portal-commons/commit/b9146391a94a463810bb7325e4d95ea219dd8546))
16
+ * improve select dropdown indicator ([#824](https://github.com/stack-spot/portal-commons/issues/824)) ([9d62e43](https://github.com/stack-spot/portal-commons/commit/9d62e4343bc11c01c0acfc5f78be88aed416ea01))
17
+ * resolve select search deps ([#822](https://github.com/stack-spot/portal-commons/issues/822)) ([0712f89](https://github.com/stack-spot/portal-commons/commit/0712f8991530b28d02cbbb4d9e2701593416092b))
18
+
3
19
  ## [2.16.0](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.15.1...portal-components@v2.16.0) (2025-03-14)
4
20
 
5
21
 
@@ -9,7 +9,9 @@ export interface CreatableSelectProps {
9
9
  options?: CreatableSelectOptionType[];
10
10
  className?: string;
11
11
  value?: string | string[];
12
- onChange?: (newValue: CreatableValueType) => void;
12
+ inputValue?: CreatableValueType;
13
+ onChange: (newValue: CreatableValueType) => void;
14
+ onCreateOption?: (newValue: string) => void;
13
15
  }
14
16
  export declare const CreatableSelect: FC<CreatableSelectProps>;
15
17
  //# sourceMappingURL=CreatableSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableSelect.d.ts","sourceRoot":"","sources":["../../../src/components/Select/CreatableSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAA;AAO/C,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEvE,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAoKpD,CAAA"}
1
+ {"version":3,"file":"CreatableSelect.d.ts","sourceRoot":"","sources":["../../../src/components/Select/CreatableSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAO1B,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEvE,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAwHpD,CAAA"}
@@ -1,57 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { theme } from '@stack-spot/portal-theme';
3
3
  import { useTranslate } from '@stack-spot/portal-translate';
4
- import { useEffect, useState } from 'react';
5
4
  import Creatable from 'react-select/creatable';
6
5
  import { BadgeItem } from './BadgeItem.js';
7
6
  import { ClearInput } from './ClearInput.js';
8
7
  import { CloseItem } from './CloseItem.js';
9
8
  import { LabelItem } from './LabelItem.js';
10
- export const CreatableSelect = ({ disabled, options, value, isMulti, onChange, id, ...props }) => {
9
+ export const CreatableSelect = ({ disabled, options, inputValue, isMulti, onChange, onCreateOption, id, ...props }) => {
11
10
  const t = useTranslate(dictionary);
12
- const [inputOptions, setInputOptions] = useState(options || []);
13
- const prepareValue = () => {
14
- let startValue = undefined;
15
- if (value) {
16
- if (isMulti) {
17
- const typedValue = value || [];
18
- startValue = [...typedValue].map((v) => ({ label: v, value: v }));
19
- }
20
- else {
21
- const typedValue = value;
22
- startValue = { label: typedValue, value: typedValue };
23
- }
24
- }
25
- return startValue;
26
- };
27
- const [inputValue, setInputValue] = useState(prepareValue());
28
- useEffect(() => {
29
- const newValue = prepareValue();
30
- inputValue !== newValue && setInputValue(newValue);
31
- }, [value]);
32
- const handleCreate = (newValue) => {
33
- const newOption = { label: newValue, value: newValue };
34
- setInputOptions((prev) => [...prev, newOption]);
35
- if (isMulti) {
36
- setInputValue((prev) => {
37
- const previousValue = Array.isArray(prev) ? prev : [];
38
- const newInputValue = [...previousValue, newOption];
39
- setTimeout(() => {
40
- onChange && onChange(newInputValue);
41
- }, 100);
42
- return newInputValue;
43
- });
44
- }
45
- else {
46
- setInputValue(newOption);
47
- onChange && onChange(newOption);
48
- }
49
- };
50
- const handleChange = (newValue) => {
51
- setInputValue(newValue);
52
- onChange && onChange(newValue);
53
- };
54
- return (_jsx(Creatable, { placeholder: t.typeYourOption, ...props, inputId: id, isClearable: true, isDisabled: disabled, value: inputValue, options: inputOptions, isMulti: isMulti, onChange: handleChange, onCreateOption: handleCreate, components: { MultiValueContainer: BadgeItem, MultiValueLabel: LabelItem, MultiValueRemove: CloseItem, ClearIndicator: ClearInput }, noOptionsMessage: () => (t.typeYourOption), formatCreateLabel: (value) => (value), tabSelectsValue: false, styles: {
11
+ return (_jsx(Creatable, { placeholder: t.typeYourOption, ...props, inputId: id, isClearable: true, isDisabled: disabled, value: inputValue, options: options, isMulti: isMulti, onChange: onChange, onCreateOption: onCreateOption, components: { MultiValueContainer: BadgeItem, MultiValueLabel: LabelItem, MultiValueRemove: CloseItem, ClearIndicator: ClearInput }, noOptionsMessage: () => (t.typeYourOption), formatCreateLabel: (value) => (value), tabSelectsValue: false, styles: {
55
12
  control: (base, state) => ({
56
13
  ...base,
57
14
  minHeight: '2.5rem',
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableSelect.js","sourceRoot":"","sources":["../../../src/components/Select/CreatableSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreatableSelect.js","sourceRoot":"","sources":["../../../src/components/Select/CreatableSelect.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAGvE,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAiBvC,MAAM,CAAC,MAAM,eAAe,GAC5B,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACrF,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAElC,OAAO,CACL,KAAC,SAAS,IACR,WAAW,EAAE,CAAC,CAAC,cAAc,KACzB,KAAK,EACT,OAAO,EAAE,EAAE,EACX,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,EACnI,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAC1C,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EACrC,eAAe,EAAE,KAAK,EACtB,MAAM,EAAE;YACN,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACzB,GAAG,IAAI;gBACP,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBACvC,MAAM,EAAE,kBAAkB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAClD,YAAY,EAAE,SAAS;gBACvB,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,QAAQ;gBACnB,mBAAmB,EAAE,4BAA4B;gBACjD,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,QAAQ;gBACpB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBAEpC,SAAS,EAAE;oBACT,MAAM,EAAE,kBAAkB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;iBACnD;gBAED,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;oBACxC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;oBACrD,OAAO,EAAE,kBAAkB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;iBACjE,CAAC,CAAC,CAAC,EAAE,CAAC;aACe,CAAA;YACxB,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;aACtC,CAAC;YACF,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClB,OAAO,EAAE,MAAM;aAChB,CAAC;YACF,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxB,OAAO,EAAE,MAAM;aAChB,CAAC;YACF,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzB,OAAO,EAAE,MAAM;aAChB,CAAC;YACF,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtB,GAAG,IAAI;gBACP,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;aACf,CAAA;YACxB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACf,GAAG,IAAI;gBACP,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBACvC,MAAM,EAAE,kBAAkB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAClD,YAAY,EAAE,QAAQ;gBACtB,SAAS,EAAE,kBAAkB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACpD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;aACf,CAAA;YACxB,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrB,GAAG,IAAI;gBACP,eAAe,EAAE,SAAS;gBAC1B,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,QAAQ;gBACpB,YAAY,EAAE,QAAQ;aACvB,CAAC;YACF,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,IAAI;gBACP,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,SAAS;gBAC1B,YAAY,EAAE,CAAC;gBACf,QAAQ,EAAE;oBACR,eAAe,EAAE,SAAS;oBAC1B,KAAK,EAAE,SAAS;iBACjB;aACF,CAAC;YACF,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC1D,GAAG,MAAM;gBACT,eAAe,EAAE,UAAU;oBACzB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,UAAU;wBACV,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;wBACxB,CAAC,CAAC,SAAS;4BACT,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;4BACxB,CAAC,CAAC,SAAS;gBAEjB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;gBAE3E,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBAE9C,SAAS,EAAE;oBACT,GAAG,MAAM,CAAC,SAAS,CAAC;oBACpB,eAAe,EAAE,CAAC,UAAU;wBAC1B,CAAC,CAAC,UAAU;4BACV,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;4BAChC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;wBAC1B,CAAC,CAAC,SAAS;iBACd;gBAED,QAAQ,EAAE;oBACR,GAAG,MAAM,CAAC,QAAQ,CAAC;oBACnB,eAAe,EAAE,CAAC,UAAU;wBAC1B,CAAC,CAAC,UAAU;4BACV,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;4BACxB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;wBAC1B,CAAC,CAAC,SAAS;iBACd;aACqB,CAAA;SACzB,GACD,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,cAAc,EAAE,kBAAkB;KACnC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,oBAAoB;KACrC;CACmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectSearch.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAe,EAAE,UAAU,EAAsB,KAAK,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AAM3F,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC7D,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,GAAI,oGAQ1B,iBAAiB,4CA0GhB,CAAA"}
1
+ {"version":3,"file":"SelectSearch.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectSearch.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiC,WAAW,EAAE,MAAM,OAAO,CAAA;AAClE,OAAe,EAAE,UAAU,EAAsB,KAAK,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AAM3F,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC7D,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;CACxB;AAmBD,eAAO,MAAM,YAAY,GAAI,oGAQ1B,iBAAiB,4CA8GnB,CAAA"}
@@ -1,4 +1,6 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import { IconBox } from '@citric/core';
3
+ import { ChevronDown } from '@citric/icons';
2
4
  import { theme } from '@stack-spot/portal-theme';
3
5
  import { useTranslate } from '@stack-spot/portal-translate';
4
6
  import Select, { components } from 'react-select';
@@ -6,6 +8,15 @@ import { BadgeItem } from './BadgeItem.js';
6
8
  import { ClearInput } from './ClearInput.js';
7
9
  import { CloseItem } from './CloseItem.js';
8
10
  import { LabelItem } from './LabelItem.js';
11
+ const EmptyComponent = () => _jsx(_Fragment, {});
12
+ const DropdownIndicator = (props) => _jsx(IconBox, { "aria-hidden": "true", colorIcon: "gray.50", sx: {
13
+ cursor: 'pointer',
14
+ width: '10px',
15
+ height: '6px',
16
+ marginRight: '14px',
17
+ transition: 'transform 0.3s ease-in',
18
+ transform: `rotate(${props.selectProps.menuIsOpen ? '180' : '0'}deg)`,
19
+ }, children: _jsx(ChevronDown, {}) });
9
20
  export const SelectSearch = ({ options, components: customComponents = {}, onChange, styles: customStyles = {}, disabled, ref, ...props }) => {
10
21
  const t = useTranslate(dictionary);
11
22
  return (_jsx(Select, { options: options, onChange: onChange, isDisabled: disabled, ref: ref, noOptionsMessage: () => t.noOptions, ...props, styles: {
@@ -44,6 +55,7 @@ export const SelectSearch = ({ options, components: customComponents = {}, onCha
44
55
  input: (base, state) => ({
45
56
  ...base,
46
57
  color: theme.color.light.contrastText,
58
+ position: 'fixed',
47
59
  ...customStyles?.input?.(base, state),
48
60
  }),
49
61
  menu: (base, state) => ({
@@ -96,6 +108,8 @@ export const SelectSearch = ({ options, components: customComponents = {}, onCha
96
108
  }),
97
109
  }, components: {
98
110
  ...components,
111
+ DropdownIndicator,
112
+ IndicatorSeparator: EmptyComponent,
99
113
  MultiValueContainer: BadgeItem,
100
114
  MultiValueLabel: LabelItem,
101
115
  MultiValueRemove: CloseItem,
@@ -1 +1 @@
1
- {"version":3,"file":"SelectSearch.js","sourceRoot":"","sources":["../../../src/components/Select/SelectSearch.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectSearch.js","sourceRoot":"","sources":["../../../src/components/Select/SelectSearch.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/portal-components",
3
- "version": "2.16.0",
3
+ "version": "2.17.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,6 +1,6 @@
1
1
  import { theme } from '@stack-spot/portal-theme'
2
2
  import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
3
- import { FC, useEffect, useState } from 'react'
3
+ import { FC } from 'react'
4
4
  import { CSSObjectWithLabel } from 'react-select'
5
5
  import Creatable from 'react-select/creatable'
6
6
  import { BadgeItem } from './BadgeItem'
@@ -18,56 +18,14 @@ export interface CreatableSelectProps {
18
18
  options?: CreatableSelectOptionType[],
19
19
  className?: string,
20
20
  value?: string | string[],
21
- onChange?: (newValue: CreatableValueType) => void,
21
+ inputValue?: CreatableValueType,
22
+ onChange: (newValue: CreatableValueType) => void,
23
+ onCreateOption?: (newValue: string) => void,
22
24
  }
23
25
 
24
- export const CreatableSelect: FC<CreatableSelectProps> = ({ disabled, options, value, isMulti, onChange, id, ...props }) => {
26
+ export const CreatableSelect: FC<CreatableSelectProps> =
27
+ ({ disabled, options, inputValue, isMulti, onChange, onCreateOption, id, ...props }) => {
25
28
  const t = useTranslate(dictionary)
26
- const [inputOptions, setInputOptions] = useState(options || [])
27
- const prepareValue = () => {
28
- let startValue: CreatableValueType | undefined = undefined
29
- if (value) {
30
- if (isMulti) {
31
- const typedValue = value as string[] || []
32
- startValue = [...typedValue].map((v) => ({ label: v, value: v }))
33
- } else {
34
- const typedValue = value as string
35
- startValue = { label: typedValue, value: typedValue }
36
- }
37
- }
38
- return startValue
39
- }
40
-
41
- const [inputValue, setInputValue] = useState<CreatableValueType | undefined>(prepareValue())
42
-
43
- useEffect(() => {
44
- const newValue = prepareValue()
45
- inputValue !== newValue && setInputValue(newValue)
46
- }, [value])
47
-
48
-
49
- const handleCreate = (newValue: string) => {
50
- const newOption = { label: newValue, value: newValue }
51
- setInputOptions((prev) => [...prev, newOption])
52
- if (isMulti) {
53
- setInputValue((prev) => {
54
- const previousValue = Array.isArray(prev) ? prev : []
55
- const newInputValue = [...(previousValue as CreatableSelectOptionType[]), newOption]
56
- setTimeout(() => {
57
- onChange && onChange(newInputValue)
58
- }, 100)
59
- return newInputValue
60
- })
61
- } else {
62
- setInputValue(newOption)
63
- onChange && onChange(newOption)
64
- }
65
- }
66
-
67
- const handleChange = (newValue: CreatableValueType) => {
68
- setInputValue(newValue)
69
- onChange && onChange(newValue)
70
- }
71
29
 
72
30
  return (
73
31
  <Creatable
@@ -77,10 +35,10 @@ export const CreatableSelect: FC<CreatableSelectProps> = ({ disabled, options, v
77
35
  isClearable={true}
78
36
  isDisabled={disabled}
79
37
  value={inputValue}
80
- options={inputOptions}
38
+ options={options}
81
39
  isMulti={isMulti}
82
- onChange={handleChange}
83
- onCreateOption={handleCreate}
40
+ onChange={onChange}
41
+ onCreateOption={onCreateOption}
84
42
  components={{ MultiValueContainer: BadgeItem, MultiValueLabel: LabelItem, MultiValueRemove: CloseItem, ClearIndicator: ClearInput }}
85
43
  noOptionsMessage={() => (t.typeYourOption)}
86
44
  formatCreateLabel={(value) => (value)}
@@ -1,6 +1,8 @@
1
+ import { IconBox } from '@citric/core'
2
+ import { ChevronDown } from '@citric/icons'
1
3
  import { theme } from '@stack-spot/portal-theme'
2
4
  import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
3
- import { RefCallback } from 'react'
5
+ import { ComponentProps, ComponentType, RefCallback } from 'react'
4
6
  import Select, { components, CSSObjectWithLabel, Props as SelectProps } from 'react-select'
5
7
  import { BadgeItem } from './BadgeItem'
6
8
  import { ClearInput } from './ClearInput'
@@ -15,6 +17,23 @@ export interface SelectSearchProps extends Partial<SelectProps> {
15
17
  ref?: RefCallback<any>,
16
18
  }
17
19
 
20
+ const EmptyComponent = () => <></>
21
+
22
+ const DropdownIndicator: ComponentType<ComponentProps<typeof components.DropdownIndicator>> = (props) => <IconBox
23
+ aria-hidden="true"
24
+ colorIcon="gray.50"
25
+ sx={{
26
+ cursor: 'pointer',
27
+ width: '10px',
28
+ height: '6px',
29
+ marginRight: '14px',
30
+ transition: 'transform 0.3s ease-in',
31
+ transform: `rotate(${props.selectProps.menuIsOpen ? '180' : '0'}deg)`,
32
+ }}
33
+ >
34
+ <ChevronDown />
35
+ </IconBox>
36
+
18
37
  export const SelectSearch = ({
19
38
  options,
20
39
  components: customComponents = {},
@@ -69,12 +88,13 @@ export const SelectSearch = ({
69
88
  input: (base, state) => ({
70
89
  ...base,
71
90
  color: theme.color.light.contrastText,
91
+ position: 'fixed',
72
92
  ...customStyles?.input?.(base, state),
73
93
  }),
74
94
  menu: (base, state) => ({
75
95
  ...base,
76
96
  marginTop: '0.25rem',
77
- position: 'relative',
97
+ position: 'relative',
78
98
  ...customStyles?.menu?.(base, state),
79
99
  }),
80
100
  option: (base, state) => ({
@@ -122,6 +142,8 @@ export const SelectSearch = ({
122
142
  }}
123
143
  components={{
124
144
  ...components,
145
+ DropdownIndicator,
146
+ IndicatorSeparator: EmptyComponent,
125
147
  MultiValueContainer: BadgeItem,
126
148
  MultiValueLabel: LabelItem,
127
149
  MultiValueRemove: CloseItem,
@@ -129,7 +151,11 @@ export const SelectSearch = ({
129
151
  ...customComponents,
130
152
  }}
131
153
  />
132
- )}
154
+ )
155
+ }
156
+
157
+
158
+
133
159
 
134
160
  const dictionary = {
135
161
  en: {