Something went wrong. Try again.
A Bsky-like frontend using the atprotocol natively.
Something went wrong. Try again.
775 B · 25 lines
TSX
at main
1234567891011121314151617181920212223242526import { useState, useCallback } from 'react';import type { PostViewMode } from '../settings/storage';import { PostViewerContext } from './postViewerContext';
export { PostViewerContext } from './postViewerContext';
export function PostViewerProvider({ children }: { children: React.ReactNode }) { const [activePostUri, setActivePostUri] = useState<string | null>(null); const [mode, setMode] = useState<PostViewMode>('page');
const open = useCallback((uri: string, m: PostViewMode) => { setActivePostUri(uri); setMode(m); }, []);
const close = useCallback(() => { setActivePostUri(null); }, []);
return ( <PostViewerContext.Provider value={{ activePostUri, mode, open, close }}> {children} </PostViewerContext.Provider> );}