2025-04-01 10:38:02 +09:00

35 lines
1.2 KiB
TypeScript

import { TRAIL_BREAKDOWN_VIEW_KEY, TRAIL_BREAKDOWN_SORT_KEY, OTEL_EXPERIENCE_ENABLED_KEY } from '../shared';
export function getVewByPreference() {
return localStorage.getItem(TRAIL_BREAKDOWN_VIEW_KEY) ?? 'grid';
}
export function setVewByPreference(value?: string) {
return localStorage.setItem(TRAIL_BREAKDOWN_VIEW_KEY, value ?? 'grid');
}
export function getSortByPreference(target: string, defaultSortBy: string) {
const preference = localStorage.getItem(`${TRAIL_BREAKDOWN_SORT_KEY}.${target}.by`) ?? '';
const parts = preference.split('.');
if (!parts[0] || !parts[1]) {
return { sortBy: defaultSortBy };
}
return { sortBy: parts[0], direction: parts[1] };
}
export function setSortByPreference(target: string, sortBy: string) {
// Prevent storing empty values
if (sortBy) {
localStorage.setItem(`${TRAIL_BREAKDOWN_SORT_KEY}.${target}.by`, `${sortBy}`);
}
}
export function getOtelExperienceToggleState(): boolean {
const val = localStorage.getItem(OTEL_EXPERIENCE_ENABLED_KEY);
return val !== null ? JSON.parse(val) : true;
}
export function setOtelExperienceToggleState(value: boolean) {
return localStorage.setItem(OTEL_EXPERIENCE_ENABLED_KEY, value.toString());
}