Skip to content

Props-referanse

Komplett oversikt over alle props for LumiSurveyDock-komponenten.

Top-level props

PropTypePåkrevdBeskrivelse
surveyIdstringUnik identifikator for surveyen (f.eks. "soknad-kvittering")
surveyLumiSurveyConfigKonfigurasjonsobjekt med spørsmålene
transportLumiSurveyTransportObjekt med submit-funksjon for innsending
contextLumiSurveyContextMetadata/tags/debug for segmentering
behaviorLumiSurveyBehaviorStyrer åpning, lukking, cooldown og storage
eventsLumiSurveyEventsEvent-callbacks for sporing og livssyklus
labelsLumiSurveyLabelsTekster for UI-elementer
successLumiSurveySuccessConfigKonfigurer suksess-visning
styleLumiSurveyStyleVisuell styling (posisjon, farger, classNames)
introLumiSurveyIntroConfigIntro-skjerm før første spørsmål

surveyLumiSurveyConfig

ts
interface LumiSurveyConfig {
  /** Survey-type for analytics. Default: "custom" */
  type?: "rating" | "topTasks" | "discovery" | "taskPriority" | "custom";

  /** Alle spørsmål, i rekkefølge */
  questions: LumiSurveyQuestion[];
}

Se Spørsmålstyper for detaljer om spørsmål-objektene.

transportLumiSurveyTransport

ts
interface LumiSurveyTransport {
  submit: (submission: LumiSurveySubmission) => Promise<void>;
}

submission.transportPayload er den ferdig-formaterte payloaden du kan sende direkte til Lumi API fra nettleseren med en API-nøkkel, eller via en egen backend hvis du vil proxy/videreprosessere. Se Koble til backend → Sjekkliste for oppsett.

behaviorLumiSurveyBehavior

Styrer åpning, lukking, lagring og layout.

PropertyTypeDefaultBeskrivelse
initialOpenbooleantrueOm docken starter åpen
resetOnClosebooleantrueNullstill skjema ved lukking
dismissCooldownDaysnumber30Dager før dismissed dock vises igjen
hideAfterSubmitbooleantrueSkjul helt etter vellykket innsending
questionLayout"auto" | "singlePage" | "steps""auto"Hvordan spørsmål presenteres
showPersonalDataNoticebooleantrueVis personverninfo
personalDataNoticeReactNodeTilpasset personverninfo
collectLocationbooleanfalseAuto-collect pathname fra URL
storageStrategy"localStorage" | "none""localStorage"Lagringsstrategi for dismissed-tilstand
showProgressbooleanfalseVis fremdriftslinje i step-modus
questionLayout-verdier
  • "auto" (default): Step-modus brukes automatisk når branching-logikk (logic) finnes. Ellers vises alle synlige spørsmål på én side.
  • "singlePage": Alle synlige spørsmål vises alltid på én side.
  • "steps": Alltid ett spørsmål om gangen med Neste/Tilbake-knapper.

labelsLumiSurveyLabels

Tekster for UI-elementer. Alle har fornuftige norske defaults.

PropertyTypeDefaultBeskrivelse
submitstring"Send inn"Send-knapp
submitPendingstring"Sender inn..."Send-knapp under innsending
cancelstring"Lukk"Lukk-knapp
validationErrorstring"Vennligst fyll ut alle påkrevde felt"Valideringsfeilmelding
transportErrorstring"Noe gikk galt ved innsending. Prøv igjen senere."Innsendingsfeil
minimizedButtonstring"Gi tilbakemelding"Tekst på minimert knapp
tsx
<LumiSurveyDock
  labels={{
    submit: "Send tilbakemelding",
    cancel: "Avbryt",
    minimizedButton: "Hjelp oss å bli bedre",
  }}
/>

successLumiSurveySuccessConfig

Konfigurer suksess-skjermen etter innsending.

PropertyTypeDefaultBeskrivelse
titlestring"Takk for tilbakemeldingen!"Overskrift
bodyReactNodeValgfri tekst under overskriften
primaryLabelstring"Lukk"Knappetekst
autoClosebooleanfalseLukk automatisk etter suksess
autoCloseDelayMsnumber1600Forsinkelse før auto-lukk (ms)
tsx
<LumiSurveyDock
  success={{
    title: "Tusen takk!",
    body: "Tilbakemeldingen din hjelper oss å forbedre tjenesten.",
    autoClose: true,
    autoCloseDelayMs: 2000,
  }}
/>

styleLumiSurveyStyle

Visuell tilpasning av dock-panelet.

PropertyTypeDefaultBeskrivelse
position"bottom-right" | "bottom-left""bottom-right"Posisjon på skjermen
offsetnumber24Avstand fra viewport-kant i px
containerClassNamestringEkstra CSS-klasse for container
panelClassNamestringEkstra CSS-klasse for panelet
panelBackground--lumi-* CSS custom property eller CSS-fargestreng"default"Bakgrunnsfarge
panelBorderColor--lumi-* CSS custom property eller CSS-fargestreng"neutral-subtle"Kantfarge
tsx
<LumiSurveyDock
  style={{
    position: "bottom-left",
    offset: 16,
    panelBackground: "surface-subtle",
  }}
/>

Se Styling for mer om visuell tilpasning.

eventsLumiSurveyEvents

Event-callbacks for livssyklus og sporing. Se Events for fullstendig dokumentasjon med brukseksempler.

introLumiSurveyIntroConfig

Viser en intro-skjerm før første spørsmål.

PropertyTypeDefaultBeskrivelse
titlestring✅ (påkrevd)Overskrift på intro-skjermen
bodyReactNodeValgfri brødtekst
startLabelstring"Start"Knappetekst for å starte surveyen
tsx
<LumiSurveyDock
  intro={{
    title: "Hjelp oss å forbedre tjenesten",
    body: "Det tar bare 30 sekunder. Alle svar er anonyme.",
    startLabel: "Gi tilbakemelding",
  }}
/>

contextLumiSurveyContext

Metadata for segmentering og feilsøking. Se Context & tags for fullstendig dokumentasjon.

ts
interface LumiSurveyContext {
  // Auto-collected
  viewport?: { width: number; height: number };
  deviceType?: "mobile" | "tablet" | "desktop";
  userAgent?: string;

  // Opt-in (krever collectLocation: true)
  url?: string;
  pathname?: string;

  // Manuelt satt
  tags?: Record<string, string | number | boolean>;
  debug?: Record<string, unknown>;
}

Lumi Analytics — bygget på navikt/lumi (MIT-lisens)