{"version":3,"file":"FormErrorMessage.cjs","sources":["../../../../src/components/message/FormErrorMessage.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef, useEffect, useRef } from \"react\";\nimport { useAnimatedHeight } from \"../../hooks/useAnimatedHeight/useAnimatedHeight.js\";\nimport { Message } from \"./Message.js\";\nimport type { FormErrorMessageProps } from \"./types.js\";\n\nconst defaultMessageProps = {\n    title: \"Feil og mangler i skjemaet\",\n};\n\nexport const FormErrorMessage = forwardRef<\n    HTMLDivElement,\n    FormErrorMessageProps\n>((props, forwardedRef): JSX.Element | null => {\n    const { className, errors, isSubmitted, isValid, messageProps, ...rest } =\n        props;\n\n    const showSummary = isSubmitted && !isValid;\n\n    const [messageRef] = useAnimatedHeight<HTMLDivElement>(showSummary, {\n        display: \"grid\",\n    });\n\n    const previousErrors = useRef<Array<string | undefined>>(errors);\n    useEffect(() => {\n        previousErrors.current = errors;\n    }, [errors]);\n    const hasNewErrors = errors.length > previousErrors.current.length;\n\n    return (\n        <div\n            ref={forwardedRef}\n            className={clsx(\"jkl-form-error-message\", className)}\n            {...rest}\n        >\n            <Message\n                {...defaultMessageProps}\n                {...messageProps}\n                variant=\"error\"\n                ref={messageRef}\n                role={hasNewErrors ? \"alert\" : \"presentation\"} // Unngå å repetere hele oppsummeringen etter hvert som feilene rettes\n            >\n                <ul className=\"jkl-list\">\n                    {errors\n                        .filter((error) => typeof error !== \"undefined\")\n                        .map((error) => (\n                            <li className=\"jkl-list__item\" key={error}>\n                                {error}\n                            </li>\n                        ))}\n                </ul>\n            </Message>\n        </div>\n    );\n});\n\nFormErrorMessage.displayName = \"FormErrorMessage\";\n"],"names":["defaultMessageProps","title","FormErrorMessage","forwardRef","props","forwardedRef","className","errors","isSubmitted","isValid","messageProps","rest","showSummary","messageRef","useAnimatedHeight","display","previousErrors","useRef","useEffect","current","hasNewErrors","length","jsx","ref","clsx","children","Message","variant","role","filter","error","map","displayName"],"mappings":"4QAMMA,EAAsB,CACxBC,MAAO,8BAGEC,EAAmBC,EAAAA,WAG9B,CAACC,EAAOC,KACN,MAAQC,UAAAA,EAAWC,OAAAA,EAAQC,YAAAA,EAAaC,QAAAA,EAASC,aAAAA,KAAiBC,GAC9DP,EAEEQ,EAAcJ,IAAgBC,GAE7BI,GAAcC,EAAAA,kBAAkCF,EAAa,CAChEG,QAAS,SAGPC,EAAiBC,EAAAA,OAAkCV,GACzDW,EAAAA,UAAU,KACNF,EAAeG,QAAUZ,GAC1B,CAACA,IACJ,MAAMa,EAAeb,EAAOc,OAASL,EAAeG,QAAQE,OAE5D,OACIC,EAAAA,IAAC,MAAA,CACGC,IAAKlB,EACLC,UAAWkB,EAAAA,KAAK,yBAA0BlB,MACtCK,EAEJc,SAAAH,EAAAA,IAACI,EAAAA,QAAA,IACO1B,KACAU,EACJiB,QAAQ,QACRJ,IAAKV,EACLe,KAAMR,EAAe,QAAU,eAE/BK,SAAAH,EAAAA,IAAC,MAAGhB,UAAU,WACTmB,WACII,OAAQC,UAAiBA,EAAU,KACnCC,IAAKD,GACFR,EAAAA,IAAC,KAAA,CAAGhB,UAAU,iBACTmB,SAAAK,GAD+BA,YAUhE5B,EAAiB8B,YAAc"}