import { useRef } from 'react'; import { Sprak } from '../pynt/FeilmeldingSprak'; export function getCookieValue(key, cookies, defaultValue) { const cookiePieces = cookies.split(';'); const cookieFound = cookiePieces.filter((cookie) => cookie.includes(key) )[0]; if (!cookieFound) { return defaultValue; } return cookieFound.split('=')[1]; } export function hentSprak(): Sprak { return getCookieValue('ForceLocale1', document.cookie, 'no'); } export function removeQuerystring(url: string, remove: string): string { return url.replaceAll(remove, ''); } export function useRefLazy(initializer: () => T): T { const ref = useRef(null); if (ref.current == null) { ref.current = initializer(); } return ref.current; } export function comparatorFraRekkefolgeIListe( rekkefolge: string[] = [], ukjenteSorteresBakerst = true ) { const rekkefolgeMap: Record = rekkefolge.reduce( (map, verdi, indeks) => ({ ...map, [verdi]: indeks, }), {} ); const defaultVerdi = ukjenteSorteresBakerst ? rekkefolge.length : -1; return function comparator(verdiA: string, verdiB: string): number { return ( (rekkefolgeMap[verdiA] ?? defaultVerdi) - (rekkefolgeMap[verdiB] ?? defaultVerdi) ); }; } export function remove( original: { [key: string]: any }, toRemove: string[] ): { [key: string]: any } { const copyObject = { ...original }; toRemove.forEach((val) => { try { delete copyObject[val]; } catch (error) {} }); return copyObject; }