@inseefr/lunatic 3.8.0 → 3.8.1-rc.1

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.
Files changed (34) hide show
  1. package/components/Suggester/Suggester.js +23 -8
  2. package/components/Suggester/Suggester.js.map +1 -1
  3. package/components/Suggester/Suggester.spec.js +75 -25
  4. package/components/Suggester/Suggester.spec.js.map +1 -1
  5. package/components/Suggester/useSuggestions.d.ts +21 -2
  6. package/components/Suggester/useSuggestions.js +26 -12
  7. package/components/Suggester/useSuggestions.js.map +1 -1
  8. package/esm/components/Suggester/Suggester.js +25 -9
  9. package/esm/components/Suggester/Suggester.js.map +1 -1
  10. package/esm/components/Suggester/Suggester.spec.js +78 -25
  11. package/esm/components/Suggester/Suggester.spec.js.map +1 -1
  12. package/esm/components/Suggester/useSuggestions.d.ts +21 -2
  13. package/esm/components/Suggester/useSuggestions.js +24 -10
  14. package/esm/components/Suggester/useSuggestions.js.map +1 -1
  15. package/esm/utils/search/SearchInterface.d.ts +1 -0
  16. package/esm/utils/search/SearchMinisearch.d.ts +1 -0
  17. package/esm/utils/search/SearchMinisearch.js +6 -0
  18. package/esm/utils/search/SearchMinisearch.js.map +1 -1
  19. package/esm/utils/search/SuggestersDatabase.d.ts +7 -0
  20. package/esm/utils/search/SuggestersDatabase.js.map +1 -1
  21. package/package.json +1 -1
  22. package/src/components/Suggester/Suggester.spec.tsx +93 -26
  23. package/src/components/Suggester/Suggester.tsx +25 -9
  24. package/src/components/Suggester/useSuggestions.ts +39 -18
  25. package/src/utils/search/SearchInterface.ts +2 -0
  26. package/src/utils/search/SearchMinisearch.ts +7 -0
  27. package/src/utils/search/SuggestersDatabase.ts +10 -0
  28. package/tsconfig.build.tsbuildinfo +1 -1
  29. package/utils/search/SearchInterface.d.ts +1 -0
  30. package/utils/search/SearchMinisearch.d.ts +1 -0
  31. package/utils/search/SearchMinisearch.js +6 -0
  32. package/utils/search/SearchMinisearch.js.map +1 -1
  33. package/utils/search/SuggestersDatabase.d.ts +7 -0
  34. package/utils/search/SuggestersDatabase.js.map +1 -1
@@ -18,19 +18,23 @@ function Suggester(props) {
18
18
  const suggesterKey = `${id}-${iteration}`;
19
19
  return (0, react_1.createElement)(WrappedSuggester, { ...props, key: suggesterKey });
20
20
  }
21
+ const ARBITRARY_ID = 'OTHER';
21
22
  function WrappedSuggester({ storeName, id, className, optionRenderer, labelRenderer, handleChanges, disabled, value, label, declarations, description, errors, readOnly, response, optionResponses = [], executeExpression, iteration, arbitrary, arbitraryValue, }) {
23
+ const { store, storeState, setStoreState, getLabelById } = (0, useSuggestions_1.useStore)({
24
+ storeName,
25
+ });
22
26
  // Default options should not change between render
23
27
  // so we can break the rule of hooks here
24
28
  const computeSelectedOptions = () => {
25
29
  if (arbitraryValue) {
26
- return [{ id: 'OTHER', label: arbitraryValue, value: 'OTHER' }];
30
+ return [{ id: ARBITRARY_ID, label: arbitraryValue, value: ARBITRARY_ID }];
27
31
  }
28
32
  if (!value) {
29
33
  return [];
30
34
  }
31
35
  const labelResponse = optionResponses?.find((o) => o.attribute === 'label');
32
36
  if (!labelResponse) {
33
- return [{ id: value, label: value, value: value }];
37
+ return [{ id: value, label: getLabelById(value), value: value }];
34
38
  }
35
39
  const label = executeExpression({ value: labelResponse.name, type: 'VTL' }, {
36
40
  iteration,
@@ -48,7 +52,9 @@ function WrappedSuggester({ storeName, id, className, optionRenderer, labelRende
48
52
  };
49
53
  const [selectedOptions, setSelectedOptions] = (0, react_2.useState)(computeSelectedOptions);
50
54
  const { state, options, search, setSearch, onFocus, onBlur } = (0, useSuggestions_1.useSuggestions)({
51
- storeName: storeName,
55
+ store,
56
+ storeState,
57
+ setStoreState,
52
58
  allowArbitrary: !!arbitrary,
53
59
  selectedOptions: selectedOptions,
54
60
  });
@@ -82,7 +88,7 @@ function WrappedSuggester({ storeName, id, className, optionRenderer, labelRende
82
88
  { name: response.name, value: null },
83
89
  ];
84
90
  // User chose an arbitrary option or clear the value
85
- if (arbitrary && arbitrary.response) {
91
+ if (arbitrary?.response) {
86
92
  newResponses.push({
87
93
  name: arbitrary.response.name,
88
94
  value: v?.id === useSuggestions_1.OTHER_VALUE ? search : null,
@@ -113,11 +119,20 @@ function WrappedSuggester({ storeName, id, className, optionRenderer, labelRende
113
119
  onChange(null);
114
120
  setSearch('');
115
121
  };
116
- // Fix display issue (when handleChanges is called outside this component (in management mode, return to FORCED value by example) )
117
- // We have to re-compute actual selection
118
122
  (0, react_2.useEffect)(() => {
119
- if (value) {
120
- setSelectedOptions(computeSelectedOptions());
123
+ // Fix display issue (when handleChanges is called outside this component (in management mode, return to FORCED value by example)
124
+ // "value" does'nt match selectedOption's "id"
125
+ if (selectedOptions[0]?.id !== value) {
126
+ const actualSelection = computeSelectedOptions();
127
+ const selectedOptionsWithLabel = actualSelection.map((selection) => {
128
+ if (selection.id === ARBITRARY_ID)
129
+ return selection;
130
+ return {
131
+ ...selection,
132
+ label: getLabelById(selection.id),
133
+ };
134
+ });
135
+ setSelectedOptions(selectedOptionsWithLabel);
121
136
  }
122
137
  // eslint-disable-next-line react-hooks/exhaustive-deps
123
138
  }, [value]);
@@ -1 +1 @@
1
- {"version":3,"file":"Suggester.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Suggester.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
4
  const react_1 = require("@testing-library/react");
5
5
  const vitest_1 = require("vitest");
6
- const Suggester_1 = require("./Suggester"); // Ajuste le chemin selon ton projet
6
+ const Suggester_1 = require("./Suggester");
7
7
  // Mock of useSuggestions
8
8
  vitest_1.vi.mock('./useSuggestions', () => ({
9
9
  useSuggestions: vitest_1.vi.fn(() => ({
@@ -13,46 +13,96 @@ vitest_1.vi.mock('./useSuggestions', () => ({
13
13
  setSearch: vitest_1.vi.fn(),
14
14
  onFocus: vitest_1.vi.fn(),
15
15
  onBlur: vitest_1.vi.fn(),
16
+ getSelectedLabelById: vitest_1.vi.fn(),
17
+ })),
18
+ useStore: vitest_1.vi.fn(() => ({
19
+ store: {},
20
+ storeState: 'success',
21
+ setStoreState: vitest_1.vi.fn(),
22
+ getLabelById: vitest_1.vi.fn(),
16
23
  })),
17
24
  }));
25
+ const FAKE_PLACE_HOLDER = 'place holder...';
18
26
  // Mock of CustomSuggester
19
27
  vitest_1.vi.mock('./CustomSuggester', () => ({
20
- CustomSuggester: vitest_1.vi.fn(({ value }) => ((0, jsx_runtime_1.jsx)("div", { "data-testid": "custom-suggester", children: JSON.stringify(value) }))),
28
+ CustomSuggester: vitest_1.vi.fn(({ value }) => ((0, jsx_runtime_1.jsx)("div", { "data-testid": "custom-suggester", children: Array.isArray(value) && value.length > 0
29
+ ? (value[0].value ?? FAKE_PLACE_HOLDER)
30
+ : FAKE_PLACE_HOLDER }))),
21
31
  }));
22
32
  (0, vitest_1.describe)('WrappedSuggester useEffect', () => {
33
+ // Given initial props
34
+ const initialProps = {
35
+ storeName: 'store',
36
+ id: 'suggester-1',
37
+ className: '',
38
+ handleChanges: vitest_1.vi.fn(),
39
+ disabled: false,
40
+ value: 'initialValue',
41
+ label: 'Label',
42
+ declarations: [],
43
+ description: '',
44
+ errors: {},
45
+ readOnly: false,
46
+ response: { name: 'response' },
47
+ optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
48
+ executeExpression: vitest_1.vi.fn(),
49
+ iteration: 1,
50
+ arbitrary: { response: { name: 'ARBITRARY' } },
51
+ optionRenderer: vitest_1.vi.fn(),
52
+ labelRenderer: vitest_1.vi.fn(),
53
+ focused: false,
54
+ };
55
+ (0, vitest_1.it)('should display place holder when no value is set', () => {
56
+ // Given the composant initialize
57
+ const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps, value: null }));
58
+ const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
59
+ (0, vitest_1.expect)(suggesterValue).toContain(FAKE_PLACE_HOLDER);
60
+ const forcedValue = 'FORCED value';
61
+ // When we change the value
62
+ const newProps = { ...initialProps, value: forcedValue };
63
+ rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
64
+ // Then selectedOptions, i.e value props of customSuggester have to be updated
65
+ const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
66
+ (0, vitest_1.expect)(updatedValue).toContain('FORCED value');
67
+ });
23
68
  (0, vitest_1.it)('should update selectedOptions when value prop changes', () => {
24
- // Given initial props
25
- const initialProps = {
26
- storeName: 'store',
27
- id: 'suggester-1',
28
- className: '',
29
- handleChanges: vitest_1.vi.fn(),
30
- disabled: false,
31
- value: 'initialValue',
32
- label: 'Label',
33
- declarations: [],
34
- description: '',
35
- errors: {},
36
- readOnly: false,
37
- response: { name: 'response' },
38
- optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
39
- executeExpression: vitest_1.vi.fn(),
40
- iteration: 1,
41
- arbitrary: { response: { name: 'ARBITRARY' } },
42
- optionRenderer: vitest_1.vi.fn(),
43
- labelRenderer: vitest_1.vi.fn(),
44
- focused: false,
45
- };
46
69
  // Given the composant initialize
47
70
  const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps }));
48
71
  const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
49
72
  (0, vitest_1.expect)(suggesterValue).toContain('initialValue');
73
+ const forcedValue = 'FORCED value';
50
74
  // When we change the value
51
- const newProps = { ...initialProps, value: 'FORCED value' };
75
+ const newProps = { ...initialProps, value: forcedValue };
52
76
  rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
53
77
  // Then selectedOptions, i.e value props of customSuggester have to be updated
54
78
  const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
55
79
  (0, vitest_1.expect)(updatedValue).toContain('FORCED value');
56
80
  });
81
+ (0, vitest_1.it)('should update selectedOptions when value prop is set to null', () => {
82
+ // Given the composant initialize
83
+ const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps }));
84
+ const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
85
+ (0, vitest_1.expect)(suggesterValue).toContain('initialValue');
86
+ const forcedValue = null;
87
+ // When we change the value
88
+ const newProps = { ...initialProps, value: forcedValue };
89
+ rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
90
+ // Then selectedOptions, i.e value props of customSuggester have to be updated
91
+ const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
92
+ (0, vitest_1.expect)(updatedValue).toContain(FAKE_PLACE_HOLDER);
93
+ });
94
+ (0, vitest_1.it)('should update selectedOptions when value prop is set to an empty string ("")', () => {
95
+ // Given the composant initialize
96
+ const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps }));
97
+ const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
98
+ (0, vitest_1.expect)(suggesterValue).toContain('initialValue');
99
+ const forcedValue = '';
100
+ // When we change the value
101
+ const newProps = { ...initialProps, value: forcedValue };
102
+ rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
103
+ // Then selectedOptions, i.e value props of customSuggester have to be updated
104
+ const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
105
+ (0, vitest_1.expect)(updatedValue).toContain(FAKE_PLACE_HOLDER);
106
+ });
57
107
  });
58
108
  //# sourceMappingURL=Suggester.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":";;;AAAA,kDAAwD;AACxD,mCAAkD;AAClD,2CAA+C,CAAC,oCAAoC;AAEpF,yBAAyB;AACzB,WAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,cAAc,EAAE,WAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,WAAE,CAAC,EAAE,EAAE;QAClB,OAAO,EAAE,WAAE,CAAC,EAAE,EAAE;QAChB,MAAM,EAAE,WAAE,CAAC,EAAE,EAAE;KACf,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,0BAA0B;AAC1B,WAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,eAAe,EAAE,WAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrC,+CAAiB,kBAAkB,YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAO,CACjE,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC3C,IAAA,WAAE,EAAC,uDAAuD,EAAE,GAAG,EAAE;QAChE,sBAAsB;QACtB,MAAM,YAAY,GAAG;YACpB,SAAS,EAAE,OAAO;YAClB,EAAE,EAAE,aAAa;YACjB,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,WAAE,CAAC,EAAE,EAAE;YACtB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;YAC9B,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YAChE,iBAAiB,EAAE,WAAE,CAAC,EAAE,EAAE;YAC1B,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YAC9C,cAAc,EAAE,WAAE,CAAC,EAAE,EAAE;YACvB,aAAa,EAAE,WAAE,CAAC,EAAE,EAAE;YACtB,OAAO,EAAE,KAAK;SACd,CAAC;QAEF,iCAAiC;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,cAAM,EAAC,uBAAC,4BAAgB,OAAK,YAAY,GAAI,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,cAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC;QAC1E,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAC5D,QAAQ,CAAC,uBAAC,4BAAgB,OAAK,QAAQ,GAAI,CAAC,CAAC;QAE7C,8EAA8E;QAC9E,MAAM,YAAY,GAAG,cAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC;QACxE,IAAA,eAAM,EAAC,YAAY,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,31 @@
1
1
  import type { SuggesterOptionType } from './SuggesterType';
2
+ import { SearchStore } from '../../utils/search/SuggestersDatabase';
2
3
  type Props = {
3
- storeName: string;
4
+ store: SearchStore;
5
+ storeState: State;
6
+ setStoreState: (s: State) => any;
4
7
  selectedOptions: SuggesterOptionType[];
5
8
  allowArbitrary: boolean;
6
9
  };
7
10
  export declare const OTHER_VALUE = "OTHER";
8
11
  type State = 'success' | 'loading' | 'error';
9
- export declare function useSuggestions({ storeName, selectedOptions, allowArbitrary, }: Props): {
12
+ export declare function useStore({ storeName }: {
13
+ storeName: string;
14
+ }): {
15
+ store: {
16
+ error: string;
17
+ search?: undefined;
18
+ index?: undefined;
19
+ } | {
20
+ error: null;
21
+ search: import("../../utils/search/SearchInterface").SearchInterface<import("../../utils/search/SearchInterface").IndexEntry>;
22
+ index: () => Promise<void>;
23
+ };
24
+ storeState: State;
25
+ setStoreState: import("react").Dispatch<import("react").SetStateAction<State>>;
26
+ getLabelById: (id: any) => string;
27
+ };
28
+ export declare function useSuggestions({ store, storeState: state, setStoreState: setState, selectedOptions, allowArbitrary, }: Props): {
10
29
  search: string;
11
30
  setSearch: (s: string) => void;
12
31
  state: State;
@@ -1,21 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OTHER_VALUE = void 0;
4
+ exports.useStore = useStore;
4
5
  exports.useSuggestions = useSuggestions;
5
6
  const react_1 = require("react");
6
7
  const useDebounce_1 = require("../../hooks/useDebounce");
7
8
  const SuggestersDatabase_1 = require("../../utils/search/SuggestersDatabase");
8
9
  const useRefSync_1 = require("../../hooks/useRefSync");
9
10
  exports.OTHER_VALUE = 'OTHER';
10
- function useSuggestions({ storeName, selectedOptions, allowArbitrary, }) {
11
- const [searchQuery, setSearchQuery] = (0, react_1.useState)('');
11
+ function useStore({ storeName }) {
12
12
  const store = (0, SuggestersDatabase_1.getSearchForStore)(storeName);
13
13
  const searchIndexRef = (0, useRefSync_1.useRefSync)(store.index);
14
- // eslint-disable-next-line prefer-const
15
- let [options, setOptions] = (0, react_1.useState)(selectedOptions);
16
14
  const [state, setState] = (0, react_1.useState)(store.error !== null
17
15
  ? 'error'
18
- : store.search.isIndexed()
16
+ : store?.search.isIndexed()
19
17
  ? 'success'
20
18
  : 'loading');
21
19
  // Index the data when the component is loaded
@@ -32,18 +30,34 @@ function useSuggestions({ storeName, selectedOptions, allowArbitrary, }) {
32
30
  setState('error');
33
31
  });
34
32
  }, [searchIndexRef]);
33
+ return {
34
+ store,
35
+ storeState: state,
36
+ setStoreState: setState,
37
+ getLabelById: (id) => {
38
+ if (!id)
39
+ return '';
40
+ return store.search?.getFieldsById(id)?.label ?? '';
41
+ },
42
+ };
43
+ }
44
+ function useSuggestions({ store, storeState: state, setStoreState: setState, selectedOptions, allowArbitrary, }) {
45
+ const [searchQuery, setSearchQuery] = (0, react_1.useState)('');
46
+ // eslint-disable-next-line prefer-const
47
+ let [options, setOptions] = (0, react_1.useState)(selectedOptions);
35
48
  (0, useDebounce_1.useEffectDebounced)(() => {
36
49
  // Do not reset search for empty search
37
50
  if (!searchQuery) {
38
51
  return;
39
52
  }
40
- store.search
41
- ?.search(searchQuery)
42
- .then((r) => {
43
- setOptions(r);
44
- setState('success');
45
- })
46
- .catch(() => setState('error'));
53
+ if (store.error === null)
54
+ store.search
55
+ ?.search(searchQuery)
56
+ .then((r) => {
57
+ setOptions(r);
58
+ setState('success');
59
+ })
60
+ .catch(() => setState('error'));
47
61
  }, [searchQuery], 300);
48
62
  if (searchQuery &&
49
63
  allowArbitrary &&
@@ -1 +1 @@
1
- {"version":3,"file":"useSuggestions.js","sourceRoot":"","sources":["../../src/components/Suggester/useSuggestions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSuggestions.js","sourceRoot":"","sources":["../../src/components/Suggester/useSuggestions.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { createElement as _createElement } from "react";
3
3
  import { useEffect, useState } from 'react';
4
4
  import { CustomSuggester } from './CustomSuggester';
5
5
  import { getComponentErrors } from '../shared/ComponentErrors/ComponentErrors';
6
- import { OTHER_VALUE, useSuggestions } from './useSuggestions';
6
+ import { OTHER_VALUE, useStore, useSuggestions } from './useSuggestions';
7
7
  import D from '../../i18n';
8
8
  export function Suggester(props) {
9
9
  const { id, iteration } = props;
@@ -11,20 +11,24 @@ export function Suggester(props) {
11
11
  const suggesterKey = `${id}-${iteration}`;
12
12
  return _createElement(WrappedSuggester, { ...props, key: suggesterKey });
13
13
  }
14
+ const ARBITRARY_ID = 'OTHER';
14
15
  export function WrappedSuggester({ storeName, id, className, optionRenderer, labelRenderer, handleChanges, disabled, value, label, declarations, description, errors, readOnly, response, optionResponses = [], executeExpression, iteration, arbitrary, arbitraryValue, }) {
15
16
  var _a;
17
+ const { store, storeState, setStoreState, getLabelById } = useStore({
18
+ storeName,
19
+ });
16
20
  // Default options should not change between render
17
21
  // so we can break the rule of hooks here
18
22
  const computeSelectedOptions = () => {
19
23
  if (arbitraryValue) {
20
- return [{ id: 'OTHER', label: arbitraryValue, value: 'OTHER' }];
24
+ return [{ id: ARBITRARY_ID, label: arbitraryValue, value: ARBITRARY_ID }];
21
25
  }
22
26
  if (!value) {
23
27
  return [];
24
28
  }
25
29
  const labelResponse = optionResponses === null || optionResponses === void 0 ? void 0 : optionResponses.find((o) => o.attribute === 'label');
26
30
  if (!labelResponse) {
27
- return [{ id: value, label: value, value: value }];
31
+ return [{ id: value, label: getLabelById(value), value: value }];
28
32
  }
29
33
  const label = executeExpression({ value: labelResponse.name, type: 'VTL' }, {
30
34
  iteration,
@@ -42,7 +46,9 @@ export function WrappedSuggester({ storeName, id, className, optionRenderer, lab
42
46
  };
43
47
  const [selectedOptions, setSelectedOptions] = useState(computeSelectedOptions);
44
48
  const { state, options, search, setSearch, onFocus, onBlur } = useSuggestions({
45
- storeName: storeName,
49
+ store,
50
+ storeState,
51
+ setStoreState,
46
52
  allowArbitrary: !!arbitrary,
47
53
  selectedOptions: selectedOptions,
48
54
  });
@@ -76,7 +82,7 @@ export function WrappedSuggester({ storeName, id, className, optionRenderer, lab
76
82
  { name: response.name, value: null },
77
83
  ];
78
84
  // User chose an arbitrary option or clear the value
79
- if (arbitrary && arbitrary.response) {
85
+ if (arbitrary === null || arbitrary === void 0 ? void 0 : arbitrary.response) {
80
86
  newResponses.push({
81
87
  name: arbitrary.response.name,
82
88
  value: (v === null || v === void 0 ? void 0 : v.id) === OTHER_VALUE ? search : null,
@@ -107,11 +113,21 @@ export function WrappedSuggester({ storeName, id, className, optionRenderer, lab
107
113
  onChange(null);
108
114
  setSearch('');
109
115
  };
110
- // Fix display issue (when handleChanges is called outside this component (in management mode, return to FORCED value by example) )
111
- // We have to re-compute actual selection
112
116
  useEffect(() => {
113
- if (value) {
114
- setSelectedOptions(computeSelectedOptions());
117
+ var _a;
118
+ // Fix display issue (when handleChanges is called outside this component (in management mode, return to FORCED value by example)
119
+ // "value" does'nt match selectedOption's "id"
120
+ if (((_a = selectedOptions[0]) === null || _a === void 0 ? void 0 : _a.id) !== value) {
121
+ const actualSelection = computeSelectedOptions();
122
+ const selectedOptionsWithLabel = actualSelection.map((selection) => {
123
+ if (selection.id === ARBITRARY_ID)
124
+ return selection;
125
+ return {
126
+ ...selection,
127
+ label: getLabelById(selection.id),
128
+ };
129
+ });
130
+ setSelectedOptions(selectedOptionsWithLabel);
115
131
  }
116
132
  // eslint-disable-next-line react-hooks/exhaustive-deps
117
133
  }, [value]);
@@ -1 +1 @@
1
- {"version":3,"file":"Suggester.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Suggester.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { render, screen } from '@testing-library/react';
3
3
  import { describe, it, expect, vi } from 'vitest';
4
- import { WrappedSuggester } from './Suggester'; // Ajuste le chemin selon ton projet
4
+ import { WrappedSuggester } from './Suggester';
5
5
  // Mock of useSuggestions
6
6
  vi.mock('./useSuggestions', () => ({
7
7
  useSuggestions: vi.fn(() => ({
@@ -11,46 +11,99 @@ vi.mock('./useSuggestions', () => ({
11
11
  setSearch: vi.fn(),
12
12
  onFocus: vi.fn(),
13
13
  onBlur: vi.fn(),
14
+ getSelectedLabelById: vi.fn(),
15
+ })),
16
+ useStore: vi.fn(() => ({
17
+ store: {},
18
+ storeState: 'success',
19
+ setStoreState: vi.fn(),
20
+ getLabelById: vi.fn(),
14
21
  })),
15
22
  }));
23
+ const FAKE_PLACE_HOLDER = 'place holder...';
16
24
  // Mock of CustomSuggester
17
25
  vi.mock('./CustomSuggester', () => ({
18
- CustomSuggester: vi.fn(({ value }) => (_jsx("div", { "data-testid": "custom-suggester", children: JSON.stringify(value) }))),
26
+ CustomSuggester: vi.fn(({ value }) => {
27
+ var _a;
28
+ return (_jsx("div", { "data-testid": "custom-suggester", children: Array.isArray(value) && value.length > 0
29
+ ? ((_a = value[0].value) !== null && _a !== void 0 ? _a : FAKE_PLACE_HOLDER)
30
+ : FAKE_PLACE_HOLDER }));
31
+ }),
19
32
  }));
20
33
  describe('WrappedSuggester useEffect', () => {
34
+ // Given initial props
35
+ const initialProps = {
36
+ storeName: 'store',
37
+ id: 'suggester-1',
38
+ className: '',
39
+ handleChanges: vi.fn(),
40
+ disabled: false,
41
+ value: 'initialValue',
42
+ label: 'Label',
43
+ declarations: [],
44
+ description: '',
45
+ errors: {},
46
+ readOnly: false,
47
+ response: { name: 'response' },
48
+ optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
49
+ executeExpression: vi.fn(),
50
+ iteration: 1,
51
+ arbitrary: { response: { name: 'ARBITRARY' } },
52
+ optionRenderer: vi.fn(),
53
+ labelRenderer: vi.fn(),
54
+ focused: false,
55
+ };
56
+ it('should display place holder when no value is set', () => {
57
+ // Given the composant initialize
58
+ const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps, value: null }));
59
+ const suggesterValue = screen.getByTestId('custom-suggester').textContent;
60
+ expect(suggesterValue).toContain(FAKE_PLACE_HOLDER);
61
+ const forcedValue = 'FORCED value';
62
+ // When we change the value
63
+ const newProps = { ...initialProps, value: forcedValue };
64
+ rerender(_jsx(WrappedSuggester, { ...newProps }));
65
+ // Then selectedOptions, i.e value props of customSuggester have to be updated
66
+ const updatedValue = screen.getByTestId('custom-suggester').textContent;
67
+ expect(updatedValue).toContain('FORCED value');
68
+ });
21
69
  it('should update selectedOptions when value prop changes', () => {
22
- // Given initial props
23
- const initialProps = {
24
- storeName: 'store',
25
- id: 'suggester-1',
26
- className: '',
27
- handleChanges: vi.fn(),
28
- disabled: false,
29
- value: 'initialValue',
30
- label: 'Label',
31
- declarations: [],
32
- description: '',
33
- errors: {},
34
- readOnly: false,
35
- response: { name: 'response' },
36
- optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
37
- executeExpression: vi.fn(),
38
- iteration: 1,
39
- arbitrary: { response: { name: 'ARBITRARY' } },
40
- optionRenderer: vi.fn(),
41
- labelRenderer: vi.fn(),
42
- focused: false,
43
- };
44
70
  // Given the composant initialize
45
71
  const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps }));
46
72
  const suggesterValue = screen.getByTestId('custom-suggester').textContent;
47
73
  expect(suggesterValue).toContain('initialValue');
74
+ const forcedValue = 'FORCED value';
48
75
  // When we change the value
49
- const newProps = { ...initialProps, value: 'FORCED value' };
76
+ const newProps = { ...initialProps, value: forcedValue };
50
77
  rerender(_jsx(WrappedSuggester, { ...newProps }));
51
78
  // Then selectedOptions, i.e value props of customSuggester have to be updated
52
79
  const updatedValue = screen.getByTestId('custom-suggester').textContent;
53
80
  expect(updatedValue).toContain('FORCED value');
54
81
  });
82
+ it('should update selectedOptions when value prop is set to null', () => {
83
+ // Given the composant initialize
84
+ const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps }));
85
+ const suggesterValue = screen.getByTestId('custom-suggester').textContent;
86
+ expect(suggesterValue).toContain('initialValue');
87
+ const forcedValue = null;
88
+ // When we change the value
89
+ const newProps = { ...initialProps, value: forcedValue };
90
+ rerender(_jsx(WrappedSuggester, { ...newProps }));
91
+ // Then selectedOptions, i.e value props of customSuggester have to be updated
92
+ const updatedValue = screen.getByTestId('custom-suggester').textContent;
93
+ expect(updatedValue).toContain(FAKE_PLACE_HOLDER);
94
+ });
95
+ it('should update selectedOptions when value prop is set to an empty string ("")', () => {
96
+ // Given the composant initialize
97
+ const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps }));
98
+ const suggesterValue = screen.getByTestId('custom-suggester').textContent;
99
+ expect(suggesterValue).toContain('initialValue');
100
+ const forcedValue = '';
101
+ // When we change the value
102
+ const newProps = { ...initialProps, value: forcedValue };
103
+ rerender(_jsx(WrappedSuggester, { ...newProps }));
104
+ // Then selectedOptions, i.e value props of customSuggester have to be updated
105
+ const updatedValue = screen.getByTestId('custom-suggester').textContent;
106
+ expect(updatedValue).toContain(FAKE_PLACE_HOLDER);
107
+ });
55
108
  });
56
109
  //# sourceMappingURL=Suggester.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC,CAAC,oCAAoC;AAEpF,yBAAyB;AACzB,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;QAClB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;KACf,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,0BAA0B;AAC1B,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrC,6BAAiB,kBAAkB,YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAO,CACjE,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAChE,sBAAsB;QACtB,MAAM,YAAY,GAAG;YACpB,SAAS,EAAE,OAAO;YAClB,EAAE,EAAE,aAAa;YACjB,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;YACtB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;YAC9B,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YAChE,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;YAC1B,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YAC9C,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;YACvB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;YACtB,OAAO,EAAE,KAAK;SACd,CAAC;QAEF,iCAAiC;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAC,gBAAgB,OAAK,YAAY,GAAI,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC;QAC1E,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAC5D,QAAQ,CAAC,KAAC,gBAAgB,OAAK,QAAQ,GAAI,CAAC,CAAC;QAE7C,8EAA8E;QAC9E,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC;QACxE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":"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"}