{"version":3,"file":"TextQuestion.cjs","sources":["../../../../../src/components/feedback/questions/TextQuestion.tsx"],"sourcesContent":["import React, {\n    type ChangeEventHandler,\n    useEffect,\n    useMemo,\n    useRef,\n} from \"react\";\nimport { TextArea } from \"../../text-area/TextArea.js\";\nimport { useFeedbackContext } from \"../feedbackContext.js\";\nimport { useFollowUpContext } from \"../followup/followupContext.js\";\nimport { useMainQuestionContext } from \"../main-question/mainQuestionContext.js\";\nimport type { FeedbackAnswer, QuestionProps } from \"../types.js\";\n\nexport const TextQuestion: React.FC<QuestionProps> = ({\n    label,\n    name,\n    helpLabel = \"Ikke skriv personlige opplysninger. Tilbakemeldinger som kommer inn her blir ikke besvart, men brukt i videre arbeid med å forbedre tjenestene våre.\",\n    autoFocus = false,\n}) => {\n    const { counter } = useFeedbackContext();\n    const followupContext = useFollowUpContext();\n    const feedbackContext = useMainQuestionContext();\n    const context = followupContext || feedbackContext;\n    const ref = useRef<HTMLTextAreaElement>(null);\n\n    useEffect(() => {\n        if (autoFocus && ref.current) {\n            ref.current.focus();\n        }\n    }, [autoFocus]);\n\n    const handleChange: ChangeEventHandler<HTMLTextAreaElement> = (e) => {\n        const value: FeedbackAnswer = {\n            label,\n            name: name || label,\n            type: \"text\",\n            value: e.target.value,\n        };\n        context?.setCurrentValue(value);\n    };\n\n    const currentValue = useMemo(\n        () =>\n            Array.isArray(context?.currentValue)\n                ? context?.currentValue[0].value.toString()\n                : context?.currentValue?.value.toString(),\n        [context?.currentValue],\n    );\n\n    if (!context) {\n        console.error(\n            \"Questions must be used inside a Followup or Feedback context provider\",\n        );\n        return null;\n    }\n\n    return (\n        <TextArea\n            ref={ref}\n            label={label}\n            labelProps={{ variant: \"large\" }}\n            name={name || label}\n            startOpen\n            rows={5}\n            value={currentValue}\n            onChange={handleChange}\n            helpLabel={helpLabel}\n            counter={counter}\n        />\n    );\n};\n"],"names":["label","name","helpLabel","autoFocus","counter","useFeedbackContext","followupContext","useFollowUpContext","feedbackContext","useMainQuestionContext","context","ref","useRef","useEffect","current","focus","currentValue","useMemo","Array","isArray","value","toString","jsx","TextArea","labelProps","variant","startOpen","rows","onChange","e","type","target","setCurrentValue","console","error"],"mappings":"8UAYqD,EACjDA,MAAAA,EACAC,KAAAA,EACAC,UAAAA,EAAY,uJACZC,UAAAA,GAAY,MAEZ,MAAQC,QAAAA,GAAYC,uBACdC,EAAkBC,EAAAA,qBAClBC,EAAkBC,EAAAA,yBAClBC,EAAUJ,GAAmBE,EAC7BG,EAAMC,EAAAA,OAA4B,MAExCC,EAAAA,UAAU,KACFV,GAAaQ,EAAIG,SACjBH,EAAIG,QAAQC,SAEjB,CAACZ,IAEJ,MAUMa,EAAeC,EAAAA,QACjB,IACIC,MAAMC,QAAQT,GAASM,cACjBN,GAASM,aAAa,GAAGI,MAAMC,WAC/BX,GAASM,cAAcI,MAAMC,WACvC,CAACX,GAASM,eAGd,OAAKN,EAQDY,EAAAA,IAACC,EAAAA,SAAA,CACGZ,IAAAA,EACAX,MAAAA,EACAwB,WAAY,CAAEC,QAAS,SACvBxB,KAAMA,GAAQD,EACd0B,WAAS,EACTC,KAAM,EACNP,MAAOJ,EACPY,SAlCuDC,IAC3D,MAAMT,EAAwB,CAC1BpB,MAAAA,EACAC,KAAMA,GAAQD,EACd8B,KAAM,OACNV,MAAOS,EAAEE,OAAOX,OAEpBV,GAASsB,gBAAgBZ,IA4BrBlB,UAAAA,EACAE,QAAAA,KAjBJ6B,QAAQC,MACJ,yEAEG"}