35 lines
1.2 KiB
TypeScript
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());
|
|
}
|