@memori.ai/memori-react
Version:
[](https://www.npmjs.com/package/@memori.ai/memori-react)  ;
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