import { create } from './tinyStore.js' // Viewer-side labels. Stream names persist in this browser (localStorage, keyed by the MediaMTX path); // group names live for the session (dockview group ids are regenerated on reload). const KEY = 'vg.names' let saved = {} try { saved = JSON.parse(localStorage.getItem(KEY) || '{}') || {} } catch {} export const names = create({ streams: saved, groups: {}, rename(id, value) { const streams = { ...this.streams } if (value) streams[id] = value; else delete streams[id] try { localStorage.setItem(KEY, JSON.stringify(streams)) } catch {} return { streams } }, renameGroup(id, value) { const groups = { ...this.groups } if (value) groups[id] = value; else delete groups[id] return { groups } }, }) export const streamLabel = (id, params) => names.get().streams[id] || `${params.user} ยท ${params.title}`