Skip to content

Commit deca2dc

Browse files
committed
chore: multiselect field use onClose
1 parent 1cd3a93 commit deca2dc

7 files changed

Lines changed: 49 additions & 54 deletions

File tree

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
"focus-visible": "^5.2.0",
4949
"formik": "2.4.5",
5050
"gzipper": "^7.2.0",
51-
"hds-core": "^4.2.0",
52-
"hds-react": "^4.2.0",
51+
"hds-core": "^4.4.0",
52+
"hds-react": "^4.4.0",
5353
"history": "^5.3.0",
5454
"html-tags": "^3.3.1",
5555
"i18next": "^23.10.1",
@@ -59,8 +59,8 @@
5959
"object-keys-normalizer": "^1.0.1",
6060
"pretty": "^2.0.0",
6161
"qs": "^6.12.1",
62-
"react": "^18.2.0",
63-
"react-dom": "^18.2.0",
62+
"react": "^18.3.1",
63+
"react-dom": "^18.3.1",
6464
"react-helmet": "^6.1.0",
6565
"react-i18next": "^14.1.0",
6666
"react-image-crop": "^11.0.5",

src/common/components/formFields/hooks/useMultiSelectFieldProps.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { getErrorText } from '../../../../utils/validationUtils';
77
type UseMultiSelectFieldPropsState = {
88
errorText: string;
99
handleBlur: () => void;
10-
handleChange: (selectedOptions: OptionType[]) => void;
10+
handleClose: (selectedOptions: OptionType[]) => void;
1111
};
1212

1313
export type UseMultiSelectFieldPropsProps = {
@@ -31,7 +31,7 @@ const useMultiSelectFieldProps = ({
3131
onBlur({ target: { id: name, value } });
3232
};
3333

34-
const handleChange = (selectedOptions: OptionType[]) => {
34+
const handleClose = (selectedOptions: OptionType[]) => {
3535
// TODO: HDS Combobox component allowes to remove value even if component
3636
// is disabled. Remove if statement when that behaviour is fixed to HDS
3737

@@ -46,7 +46,7 @@ const useMultiSelectFieldProps = ({
4646
}, 5);
4747
};
4848

49-
return { errorText, handleBlur, handleChange };
49+
return { errorText, handleBlur, handleClose };
5050
};
5151

5252
export default useMultiSelectFieldProps;

src/common/components/formFields/keywordSelectorField/KeywordSelectorField.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const KeywordSelectorField: React.FC<Props> = ({
1414
disabled,
1515
...rest
1616
}) => {
17-
const { errorText, handleBlur, handleChange } = useMultiSelectFieldProps({
17+
const { errorText, handleBlur, handleClose } = useMultiSelectFieldProps({
1818
name,
1919
onBlur,
2020
onChange,
@@ -28,7 +28,7 @@ const KeywordSelectorField: React.FC<Props> = ({
2828
disabled={disabled}
2929
name={name}
3030
onBlur={handleBlur}
31-
onChange={handleChange}
31+
onClose={handleClose}
3232
value={value}
3333
texts={{ ...texts, error: errorText }}
3434
invalid={!!errorText}

src/common/components/formFields/userSelectorField/UserSelectorField.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const UserSelectorField: React.FC<Props> = ({
1414
disabled,
1515
...rest
1616
}) => {
17-
const { errorText, handleBlur, handleChange } = useMultiSelectFieldProps({
17+
const { errorText, handleBlur, handleClose } = useMultiSelectFieldProps({
1818
name,
1919
onBlur,
2020
onChange,
@@ -28,7 +28,7 @@ const UserSelectorField: React.FC<Props> = ({
2828
disabled={disabled}
2929
name={name}
3030
onBlur={handleBlur}
31-
onChange={handleChange}
31+
onClose={handleClose}
3232
value={value}
3333
texts={{ ...texts, error: errorText }}
3434
invalid={!!errorText}

src/common/components/keywordSelector/KeywordSelector.tsx

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
useApolloClient,
77
} from '@apollo/client';
88
import { SearchFunction, SearchResult } from 'hds-react';
9-
import React, { useCallback } from 'react';
9+
import React from 'react';
1010
import { useTranslation } from 'react-i18next';
1111

1212
import {
@@ -17,7 +17,6 @@ import {
1717
import {
1818
Keyword,
1919
KeywordFieldsFragment,
20-
KeywordsQuery,
2120
useKeywordsQuery,
2221
} from '../../../generated/graphql';
2322
import useLocale from '../../../hooks/useLocale';
@@ -56,50 +55,46 @@ const KeywordSelector: React.FC<KeywordSelectorProps> = ({
5655
[]
5756
);
5857

59-
const QUERY_VARIABLES = {
60-
createPath: getPathBuilder(keywordsPathBuilder),
61-
dataSource: ['yso', 'helsinki'],
62-
showAllKeywords: true,
63-
};
64-
6558
const {
6659
data: keywordsData,
6760
loading,
61+
previousData: previousKeywordsData,
6862
refetch,
6963
} = useKeywordsQuery({
70-
variables: QUERY_VARIABLES,
64+
variables: {
65+
createPath: getPathBuilder(keywordsPathBuilder),
66+
dataSource: ['yso', 'helsinki'],
67+
showAllKeywords: true,
68+
freeText: '',
69+
},
7170
});
7271

73-
const getKeywordsData = useCallback(
74-
(data: KeywordsQuery | undefined) =>
72+
const getKeywordsData = React.useCallback(
73+
() =>
7574
getValue(
76-
data?.keywords.data.map((keyword) =>
75+
(keywordsData || previousKeywordsData)?.keywords.data.map((keyword) =>
7776
getOption({ keyword: keyword as KeywordFieldsFragment, locale })
7877
),
7978
[]
8079
),
81-
[locale]
80+
[keywordsData, locale, previousKeywordsData]
8281
);
8382

84-
const options = React.useMemo(
85-
() => getKeywordsData(keywordsData),
86-
[getKeywordsData, keywordsData]
87-
);
83+
const options = React.useMemo(() => getKeywordsData(), [getKeywordsData]);
8884

8985
const handleSearch: SearchFunction = async (
9086
searchValue: string
9187
): Promise<SearchResult> => {
9288
try {
93-
const { data: searchKeywordsData, error } = await refetch({
94-
...QUERY_VARIABLES,
89+
const { error } = await refetch({
9590
freeText: searchValue,
9691
});
9792

9893
if (error) {
9994
throw error;
10095
}
10196

102-
return { options: getKeywordsData(searchKeywordsData) };
97+
return Promise.resolve({ options: getKeywordsData() });
10398
} catch (error) {
10499
return Promise.reject(error as ApolloError);
105100
}

src/domain/event/eventForm/EventForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ const EventFormWrapper: React.FC<EventFormWrapperProps> = (props) => {
657657
validationSchema={validationSchema}
658658
validateOnMount
659659
validateOnBlur={true}
660-
validateOnChange={false}
660+
validateOnChange={true}
661661
>
662662
{({ setErrors, setTouched, values }) => {
663663
return (

yarn.lock

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6880,15 +6880,15 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2:
68806880
dependencies:
68816881
function-bind "^1.1.2"
68826882

6883-
hds-core@4.2.0, hds-core@^4.2.0:
6884-
version "4.2.0"
6885-
resolved "https://registry.yarnpkg.com/hds-core/-/hds-core-4.2.0.tgz#2b7bbd94b48a5246c1abdc109d0c4dfdbfed7f32"
6886-
integrity sha512-D9GqQ/CdIrJp2ypQRB2FEbkfT/D4s/ehjwSWVQ/7pc5bZ8plOEvUTaIf2Kfl46/7U8QrQ6+N9BUd8nSl9TE0hA==
6883+
hds-core@4.4.0, hds-core@^4.4.0:
6884+
version "4.4.0"
6885+
resolved "https://registry.yarnpkg.com/hds-core/-/hds-core-4.4.0.tgz#6f17eaa1db94294fd8708395f759ffe350f84709"
6886+
integrity sha512-2CRkUGyOLSVLCLOE9bfOe/Ed75qxizPyZaSFuA+hCqb/67TB2H662v9LJ5ZTfMIIn90dPd3fAocepZeUiM3stQ==
68876887

6888-
hds-react@^4.2.0:
6889-
version "4.2.0"
6890-
resolved "https://registry.yarnpkg.com/hds-react/-/hds-react-4.2.0.tgz#5d8318f5883ea528bc8c30163ccfa0593fa93393"
6891-
integrity sha512-Tj1TzAb2Ov+JO/WSllcEvD3vlxEkSjJznTBcF1ScrAV/ZNwPDsIix+cs7bVFY/uNB8Kl2qoESf9vcd88cN0HSQ==
6888+
hds-react@^4.4.0:
6889+
version "4.4.0"
6890+
resolved "https://registry.yarnpkg.com/hds-react/-/hds-react-4.4.0.tgz#d66da099bf15f146436858e28cfe128b578654c4"
6891+
integrity sha512-VSUCiP5CSfw94V+Hb1AWVjZW/wXQGeNHSrTzM+ro6uZ+4pL/TLNK4+WONkLvPzzSmI5my837w9fLAKKVCf409A==
68926892
dependencies:
68936893
"@apollo/client" "^3.10.1"
68946894
"@babel/runtime" "7.17.9"
@@ -6906,7 +6906,7 @@ hds-react@^4.2.0:
69066906
date-fns "2.16.1"
69076907
downshift "6.0.6"
69086908
graphql "^16.8.1"
6909-
hds-core "4.2.0"
6909+
hds-core "4.4.0"
69106910
jwt-decode "^3.1.2"
69116911
kashe "1.0.4"
69126912
lodash "^4.17.21"
@@ -8732,13 +8732,13 @@ quotemeta@0.0.0:
87328732
resolved "https://registry.yarnpkg.com/quotemeta/-/quotemeta-0.0.0.tgz#51d3a06ee0fcd6e3b501dbd28904351ad7a5a38c"
87338733
integrity sha512-1XGObUh7RN5b58vKuAsrlfqT+Rc4vmw8N4pP9gFCq1GFlTdV0Ex/D2Ro1Drvrqj++HPi3ig0Np17XPslELeMRA==
87348734

8735-
react-dom@^18.2.0:
8736-
version "18.2.0"
8737-
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
8738-
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
8735+
react-dom@^18.3.1:
8736+
version "18.3.1"
8737+
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
8738+
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
87398739
dependencies:
87408740
loose-envify "^1.1.0"
8741-
scheduler "^0.23.0"
8741+
scheduler "^0.23.2"
87428742

87438743
react-fast-compare@^2.0.1:
87448744
version "2.0.4"
@@ -8865,10 +8865,10 @@ react-virtual@2.10.4:
88658865
dependencies:
88668866
"@reach/observe-rect" "^1.1.0"
88678867

8868-
react@^18.2.0:
8869-
version "18.2.0"
8870-
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
8871-
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
8868+
react@^18.3.1:
8869+
version "18.3.1"
8870+
resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
8871+
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
88728872
dependencies:
88738873
loose-envify "^1.1.0"
88748874

@@ -9221,10 +9221,10 @@ saxes@^6.0.0:
92219221
dependencies:
92229222
xmlchars "^2.2.0"
92239223

9224-
scheduler@^0.23.0:
9225-
version "0.23.0"
9226-
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
9227-
integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
9224+
scheduler@^0.23.2:
9225+
version "0.23.2"
9226+
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3"
9227+
integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==
92289228
dependencies:
92299229
loose-envify "^1.1.0"
92309230

0 commit comments

Comments
 (0)