{"version":3,"file":"Followup.cjs","sources":["../../../../../src/components/feedback/followup/Followup.tsx"],"sourcesContent":["import React, { type FC, useEffect, useRef, useState } from \"react\";\nimport {\n    PrimaryButton,\n    SecondaryButton,\n    TertiaryButton,\n} from \"../../button/Button.js\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess.js\";\nimport { useFeedbackContext } from \"../feedbackContext.js\";\nimport type { FollowupProps } from \"../types.js\";\nimport { getQuestionFromType } from \"../utils.js\";\nimport { FollowUpProvider } from \"./followupContext.js\";\nimport { useFollowup } from \"./useFollowup.js\";\n\nconst defaultSuccessMessage = {\n    title: \"Takk, igjen!\",\n    children:\n        \"Vi setter pris på at du tok deg tid til å svare på flere spørsmål. Det hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem.\",\n};\n\nexport const Followup: FC<FollowupProps> = ({\n    questions,\n    successMessage = defaultSuccessMessage,\n    onSubmit,\n}) => {\n    const [noThanks, setNoThanks] = useState(false);\n    const focusRef = useRef<HTMLParagraphElement>(null);\n    const followupState = useFollowup(questions, onSubmit);\n    const { handleAbort, handleNext, step, submitted } = followupState;\n    const {\n        followupStarted,\n        setFollowupStarted,\n        setFollowupSubmitted,\n        contactSubmitted,\n        landmarkLabel,\n    } = useFeedbackContext();\n\n    useEffect(() => {\n        if (step.number === 0) {\n            return;\n        }\n        focusRef.current?.focus();\n    }, [step]);\n\n    useEffect(() => {\n        setFollowupSubmitted(submitted);\n    }, [submitted, setFollowupSubmitted]);\n\n    const QuestionComponent = getQuestionFromType(questions[step.number].type);\n    const Button = step.isLast ? PrimaryButton : SecondaryButton;\n\n    if (noThanks) {\n        return null;\n    }\n\n    return (\n        <div aria-live=\"polite\">\n            <FollowUpProvider state={followupState}>\n                {!followupStarted && (\n                    <div className=\"jkl-feedback__fade-in\">\n                        <p className=\"jkl-heading-4 jkl-spacing-40--top jkl-spacing-8--bottom\">\n                            Har du tid til å svare på noen flere spørsmål?\n                        </p>\n                        <p className=\"jkl-body jkl-spacing-40--bottom\">\n                            Det tar kun et minutt, og hjelper oss å lage bedre\n                            løsninger for deg.\n                        </p>\n                        <PrimaryButton\n                            onClick={() => setFollowupStarted(true)}\n                            className=\"jkl-spacing-40--right\"\n                        >\n                            Jeg har tid!\n                        </PrimaryButton>\n                        <TertiaryButton onClick={() => setNoThanks(true)}>\n                            Nei takk\n                        </TertiaryButton>\n                    </div>\n                )}\n                {!submitted && followupStarted && (\n                    <form\n                        onSubmit={handleNext}\n                        className=\"jkl-feedback__fade-in\"\n                        aria-label={landmarkLabel}\n                    >\n                        <p\n                            className=\"jkl-feedback__step-counter\"\n                            ref={focusRef}\n                        >\n                            Steg {step.number + 1} av {questions.length}\n                        </p>\n                        <QuestionComponent\n                            {...questions[step.number]}\n                            // eslint-disable-next-line jsx-a11y/no-autofocus\n                            autoFocus\n                            key={step.number}\n                        />\n                        <div className=\"jkl-spacing-40--top\" aria-live=\"off\">\n                            <Button type=\"submit\">\n                                {step.isLast ? \"Send inn\" : \"Neste\"}\n                            </Button>\n                            <TertiaryButton\n                                onClick={handleAbort}\n                                className=\"jkl-spacing-40--left\"\n                            >\n                                Avbryt\n                            </TertiaryButton>\n                        </div>\n                    </form>\n                )}\n                {submitted && !contactSubmitted && (\n                    <FeedbackSuccess {...successMessage} />\n                )}\n            </FollowUpProvider>\n        </div>\n    );\n};\n"],"names":["defaultSuccessMessage","title","children","questions","successMessage","onSubmit","noThanks","setNoThanks","useState","focusRef","useRef","followupState","useFollowup","handleAbort","handleNext","step","submitted","followupStarted","setFollowupStarted","setFollowupSubmitted","contactSubmitted","landmarkLabel","useFeedbackContext","useEffect","number","current","focus","QuestionComponent","getQuestionFromType","type","Button","isLast","PrimaryButton","SecondaryButton","jsxs","FollowUpProvider","state","className","jsx","onClick","TertiaryButton","ref","length","createElement","autoFocus","key","FeedbackSuccess"],"mappings":"iVAaMA,EAAwB,CAC1BC,MAAO,eACPC,SACI,0KAGmC,EACvCC,UAAAA,EACAC,eAAAA,EAAiBJ,EACjBK,SAAAA,MAEA,MAAOC,EAAUC,GAAeC,EAAAA,UAAS,GACnCC,EAAWC,EAAAA,OAA6B,MACxCC,EAAgBC,EAAAA,YAAYT,EAAWE,IACrCQ,YAAAA,EAAaC,WAAAA,EAAYC,KAAAA,EAAMC,UAAAA,GAAcL,GAEjDM,gBAAAA,EACAC,mBAAAA,EACAC,qBAAAA,EACAC,iBAAAA,EACAC,cAAAA,GACAC,uBAEJC,EAAAA,UAAU,KACc,IAAhBR,EAAKS,QAGTf,EAASgB,SAASC,SACnB,CAACX,IAEJQ,EAAAA,UAAU,KACNJ,EAAqBH,IACtB,CAACA,EAAWG,IAEf,MAAMQ,EAAoBC,EAAAA,oBAAoBzB,EAAUY,EAAKS,QAAQK,MAC/DC,EAASf,EAAKgB,OAASC,EAAAA,cAAgBC,EAAAA,gBAE7C,OAAI3B,EACO,WAIN,MAAA,CAAI,YAAU,SACXJ,SAAAgC,EAAAA,KAACC,mBAAA,CAAiBC,MAAOzB,EACpBT,SAAA,EAACe,GACEiB,EAAAA,KAAC,MAAA,CAAIG,UAAU,wBACXnC,SAAA,CAAAoC,EAAAA,IAAC,IAAA,CAAED,UAAU,0DAA0DnC,SAAA,mDAGvEoC,EAAAA,IAAC,IAAA,CAAED,UAAU,kCAAkCnC,SAAA,0EAI/CoC,EAAAA,IAACN,EAAAA,cAAA,CACGO,QAAS,IAAMrB,GAAmB,GAClCmB,UAAU,wBACbnC,SAAA,uBAGAsC,EAAAA,eAAA,CAAeD,QAAS,IAAMhC,GAAY,GAAOL,SAAA,iBAKxDc,GAAaC,GACXiB,EAAAA,KAAC,OAAA,CACG7B,SAAUS,EACVuB,UAAU,wBACV,aAAYhB,EAEZnB,SAAA,CAAAgC,EAAAA,KAAC,IAAA,CACGG,UAAU,6BACVI,IAAKhC,EACRP,SAAA,CAAA,QACSa,EAAKS,OAAS,EAAE,OAAKrB,EAAUuC,UAEzCC,EAAAA,cAAChB,EAAA,IACOxB,EAAUY,EAAKS,QAEnBoB,WAAS,EACTC,IAAK9B,EAAKS,SAEdU,EAAAA,KAAC,MAAA,CAAIG,UAAU,sBAAsB,YAAU,MAC3CnC,SAAA,CAAAoC,MAACR,GAAOD,KAAK,SACR3B,SAAAa,EAAKgB,OAAS,WAAa,UAEhCO,EAAAA,IAACE,EAAAA,eAAA,CACGD,QAAS1B,EACTwB,UAAU,uBACbnC,SAAA,iBAMZc,IAAcI,GACXkB,EAAAA,IAACQ,EAAAA,gBAAA,IAAoB1C"}