feat: add grid view for streams
This commit is contained in:
@@ -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 });
|
||||
},
|
||||
}));
|
||||
Reference in New Issue
Block a user