From f91af70dc8f3dac81e84ecc7892830c26d325cb0 Mon Sep 17 00:00:00 2001 From: Ken Date: Wed, 6 Sep 2023 10:24:56 +0200 Subject: [PATCH] =?UTF-8?q?:recycle:=20Oppdatert=20Search=20escape-h=C3=A5?= =?UTF-8?q?ndtering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/pink-falcons-develop.md | 5 +++ @navikt/core/react/src/form/search/Search.tsx | 35 ++++++------------- 2 files changed, 16 insertions(+), 24 deletions(-) create mode 100644 .changeset/pink-falcons-develop.md diff --git a/.changeset/pink-falcons-develop.md b/.changeset/pink-falcons-develop.md new file mode 100644 index 0000000000..a50effd39e --- /dev/null +++ b/.changeset/pink-falcons-develop.md @@ -0,0 +1,5 @@ +--- +"@navikt/ds-react": patch +--- + +Search: Kjører nå bare preventDefault ved Escape når `input` inneholder tekst diff --git a/@navikt/core/react/src/form/search/Search.tsx b/@navikt/core/react/src/form/search/Search.tsx index ca081e0a0d..f822f96c44 100644 --- a/@navikt/core/react/src/form/search/Search.tsx +++ b/@navikt/core/react/src/form/search/Search.tsx @@ -8,14 +8,7 @@ import React, { useRef, useState, } from "react"; -import { - BodyShort, - ErrorMessage, - Label, - mergeRefs, - omit, - useEventListener, -} from "../.."; +import { BodyShort, ErrorMessage, Label, mergeRefs, omit } from "../.."; import { FormFieldProps, useFormField } from "../useFormField"; import SearchButton, { SearchButtonType } from "./SearchButton"; @@ -135,7 +128,6 @@ export const Search = forwardRef( const searchRef = useRef(null); const mergedRef = useMemo(() => mergeRefs([searchRef, ref]), [ref]); - const [wrapperRef, setWrapperRef] = useState(null); const [internalValue, setInternalValue] = useState(defaultValue ?? ""); @@ -156,27 +148,22 @@ export const Search = forwardRef( [handleChange, onClear] ); - useEventListener( - "keydown", - useCallback( - (e) => { - if (e.key === "Escape") { - e.preventDefault(); - handleClear({ trigger: "Escape", event: e }); - } - }, - [handleClear] - ), - wrapperRef - ); - const handleClick = () => { onSearchClick?.(`${value ?? internalValue}`); }; return (
{ + if (e.key !== "Escape") { + return; + } + searchRef.current?.value && + searchRef.current?.value !== "" && + e.preventDefault(); + + handleClear({ trigger: "Escape", event: e }); + }} className={cl( className, "navds-form-field",