Skip to content

Commit 6604b1c

Browse files
committed
FO-2870 La til metrikker på søk
1 parent ab627cc commit 6604b1c

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

src/components/sok-sync.tsx

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,26 @@ import { lagBeslutterOversiktSok } from '../utils/sok-utils';
44
import { useSokStore } from '../stores/sok-store';
55
import { hasFinishedWithData } from '../rest/utils';
66
import { usePrevious } from '../utils';
7+
import { frontendlogger } from '../utils/frontend-logger';
8+
import { BeslutteroversiktSok } from '../rest/api';
9+
10+
function logSokMetrikker(sok: BeslutteroversiktSok, currentPage: number): void {
11+
const filterMetrikker: any = {};
12+
13+
if (sok.filter) {
14+
filterMetrikker.antallEnheter = sok.filter.enheter ? sok.filter.enheter.length : 0;
15+
filterMetrikker.status = sok.filter.status;
16+
filterMetrikker.soktPaNavnEllerFnr = sok.filter.navnEllerFnr != null && sok.filter.navnEllerFnr.trim().length > 0;
17+
filterMetrikker.visMineBrukere = sok.filter.visMineBrukere || false;
18+
}
19+
20+
frontendlogger.logMetrikk('sok', {}, {
21+
page: currentPage,
22+
orderByField: sok.orderByField,
23+
orderByDirection: sok.orderByDirection,
24+
...filterMetrikker
25+
});
26+
}
727

828
export const SokSync = () => {
929
const { brukereFetcher } = useDataFetcherStore();
@@ -19,6 +39,7 @@ export const SokSync = () => {
1939

2040
const sok = lagBeslutterOversiktSok(filters, curPage, pageSize, seeAll, orderByDirection, orderByField);
2141
brukereFetcher.fetch({ sok });
42+
logSokMetrikker(sok, currentPage);
2243
// eslint-disable-next-line react-hooks/exhaustive-deps
2344
}, [filters, currentPage, orderByDirection, orderByField, seeAll]);
2445

src/utils/frontend-logger.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
import { APP_NAME } from './constants';
22
import { logger } from './logger';
33

4+
const fixNullValues = (obj: object): object => {
5+
Object.entries(obj).forEach(([key, value]) => {
6+
if (value === null) {
7+
(obj as any)[key] = undefined;
8+
}
9+
});
10+
return obj;
11+
};
12+
413
const logEvent = (logTag: string, fields?: {}, tags?: {}): void => {
514
const frontlogger = (window as any).frontendlogger;
615

716
if (frontlogger && frontlogger.event) {
8-
frontlogger.event(logTag, fields ? fields : {}, tags ? tags : {});
17+
const eventFields = fields || {};
18+
const eventTags = tags || {};
19+
20+
// Frontendlogger does not handle null values at this moment
21+
fixNullValues(eventFields);
22+
fixNullValues(eventTags);
23+
24+
frontlogger.event(logTag, fields, tags);
925
} else {
1026
logger.log('Event', logTag, 'Fields:', fields, 'Tags:', tags);
1127
}

0 commit comments

Comments
 (0)