UNPKG

@memori.ai/memori-react

Version:

[![npm version](https://img.shields.io/github/package-json/v/memori-ai/memori-react)](https://www.npmjs.com/package/@memori.ai/memori-react) ![Tests](https://github.com/memori-ai/memori-react/workflows/CI/badge.svg?branch=main) ![TypeScript Support](https

50 lines 1.6 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { createContext, useContext, useState, useCallback, useMemo } from 'react'; const ArtifactContext = createContext(null); export const ArtifactProvider = ({ children }) => { const [state, setState] = useState({ currentArtifact: null, isDrawerOpen: false, isFullscreen: false, }); const openArtifact = useCallback((artifact) => { setState(() => { return { currentArtifact: artifact, isDrawerOpen: true, isFullscreen: false, }; }); }, []); const closeArtifact = useCallback(() => { setState(prev => { return { ...prev, currentArtifact: null, isDrawerOpen: false, isFullscreen: false, }; }); }, []); const toggleFullscreen = useCallback(() => { setState(prev => ({ ...prev, isFullscreen: !prev.isFullscreen, })); }, []); const contextValue = useMemo(() => ({ state, openArtifact, closeArtifact, toggleFullscreen, }), [state, openArtifact, closeArtifact, toggleFullscreen]); return (_jsx(ArtifactContext.Provider, { value: contextValue, children: children })); }; export const useArtifact = () => { const context = useContext(ArtifactContext); if (!context) { throw new Error('useArtifact must be used within ArtifactProvider'); } return context; }; //# sourceMappingURL=ArtifactContext.js.map