diff --git a/src/sider/sokperson/SokPerson.tsx b/src/sider/sokperson/SokPerson.tsx index 799ccc94..d263b5ee 100644 --- a/src/sider/sokperson/SokPerson.tsx +++ b/src/sider/sokperson/SokPerson.tsx @@ -95,6 +95,71 @@ function logSokPersonResults(amount: number, requestDTO: SokDTO) { }); } +interface LogSokPersonErrorProps { + birthdate: string; + isValidBirthdate: boolean; + isInvalidBirthdate: boolean; + initials: string; + isValidInitials: boolean; + isInvalidInitials: boolean; + isError: boolean; +} + +function logSokPersonError({ + birthdate, + isValidBirthdate, + isInvalidBirthdate, + initials, + isValidInitials, + isInvalidInitials, + isError, +}: LogSokPersonErrorProps) { + Amplitude.logEvent({ + type: Amplitude.EventType.ErrorMessageShowed, + data: { + url: window.location.href, + handling: 'Søk etter sykmeldt - feilmeldinger', + feilmelding: + 'Fødselsdato: ' + + getValidationMessage({ + value: birthdate, + isValid: isValidBirthdate, + isInvalid: isInvalidBirthdate, + }) + + ' - Initialer: ' + + getValidationMessage({ + value: initials, + isValid: isValidInitials, + isInvalid: isInvalidInitials, + }) + + (isError ? ' - Feil ved søk' : ''), + }, + }); +} + +interface ValidationArgs { + value: string; + isValid: boolean; + isInvalid: boolean; +} + +function getValidationMessage({ + value, + isValid, + isInvalid, +}: ValidationArgs): string { + if (value === '') { + return 'ingen innhold'; + } + if (isValid) { + return 'gyldig innhold'; + } + if (isInvalid) { + return 'ugyldig innhold'; + } + return ''; +} + function InitialerLabel() { return (
@@ -165,6 +230,15 @@ export default function SokPerson() { }); } else { setIsFormError(true); + logSokPersonError({ + birthdate: birthdate, + isValidBirthdate: !!parsedBirthdate, + isInvalidBirthdate: isInvalidBirthdate, + initials: initials, + isValidInitials: isValidInitials(initials), + isInvalidInitials: isInvalidInitials, + isError: isError, + }); } }; diff --git a/src/utils/amplitude.ts b/src/utils/amplitude.ts index 6d19971d..ee0582c1 100644 --- a/src/utils/amplitude.ts +++ b/src/utils/amplitude.ts @@ -12,6 +12,7 @@ export enum EventType { ButtonClick = 'knapp trykket', SortingColumn = 'kolonne sortert på', AmountDisplayed = 'antall vist', + ErrorMessageShowed = 'feilmelding vist', } type EventPageView = { @@ -66,13 +67,23 @@ type EventAmountDisplayed = { }; }; +type ErrorMessageShowed = { + type: EventType.ErrorMessageShowed; + data: { + url: string; + handling: string; + feilmelding: string; + }; +}; + type Event = | EventPageView | Navigation | OptionSelected | EventButtonClick | EventSortingColumn - | EventAmountDisplayed; + | EventAmountDisplayed + | ErrorMessageShowed; export const logEvent = (event: Event) => amplitude.track(event.type, { ...event.data });