supermemory/apps/web/lib/view-mode-context.tsx
2026-02-10 09:44:42 -08:00

24 lines
630 B
TypeScript

"use client"
import { useQueryState } from "nuqs"
import { viewParam, type ViewParamValue } from "@/lib/search-params"
import { analytics } from "@/lib/analytics"
import { useCallback } from "react"
export type ViewMode = ViewParamValue
type SetViewMode = (value: ViewMode | null) => Promise<URLSearchParams>
export function useViewMode() {
const [viewMode, _setViewMode] = useQueryState("view", viewParam)
const setViewMode = useCallback(
(mode: ViewMode) => {
analytics.viewModeChanged(mode)
;(_setViewMode as SetViewMode)(mode)
},
[_setViewMode],
)
return { viewMode, setViewMode, isInitialized: true }
}