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

55 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useArtifact = exports.ArtifactProvider = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const ArtifactContext = (0, react_1.createContext)(null); const ArtifactProvider = ({ children }) => { const [state, setState] = (0, react_1.useState)({ currentArtifact: null, isDrawerOpen: false, isFullscreen: false, }); const openArtifact = (0, react_1.useCallback)((artifact) => { setState(() => { return { currentArtifact: artifact, isDrawerOpen: true, isFullscreen: false, }; }); }, []); const closeArtifact = (0, react_1.useCallback)(() => { setState(prev => { return { ...prev, currentArtifact: null, isDrawerOpen: false, isFullscreen: false, }; }); }, []); const toggleFullscreen = (0, react_1.useCallback)(() => { setState(prev => ({ ...prev, isFullscreen: !prev.isFullscreen, })); }, []); const contextValue = (0, react_1.useMemo)(() => ({ state, openArtifact, closeArtifact, toggleFullscreen, }), [state, openArtifact, closeArtifact, toggleFullscreen]); return ((0, jsx_runtime_1.jsx)(ArtifactContext.Provider, { value: contextValue, children: children })); }; exports.ArtifactProvider = ArtifactProvider; const useArtifact = () => { const context = (0, react_1.useContext)(ArtifactContext); if (!context) { throw new Error('useArtifact must be used within ArtifactProvider'); } return context; }; exports.useArtifact = useArtifact; //# sourceMappingURL=ArtifactContext.js.map