feat: add grid view for streams

This commit is contained in:
talksik
2026-03-30 12:08:16 -07:00
parent 76c538dca2
commit 9f6633bf1f
10 changed files with 498 additions and 120 deletions
+36
View File
@@ -0,0 +1,36 @@
import { create } from "zustand";
type ViewMode = "list" | "grid";
const STORAGE_KEY = "llink:view-mode";
function loadViewMode(): ViewMode {
try {
const stored = localStorage.getItem(STORAGE_KEY);
if (stored === "grid") return "grid";
return "list";
} catch {
return "list";
}
}
function saveViewMode(mode: ViewMode) {
try {
localStorage.setItem(STORAGE_KEY, mode);
} catch {
// Storage unavailable
}
}
interface ViewModeState {
viewMode: ViewMode;
setViewMode: (mode: ViewMode) => void;
}
export const useViewModeStore = create<ViewModeState>((set) => ({
viewMode: loadViewMode(),
setViewMode: (mode) => {
saveViewMode(mode);
set({ viewMode: mode });
},
}));