| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- Copyright (C) 2025 QuantumNous
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
- For commercial licensing, please contact support@quantumnous.com
- */
- import React, { createContext, useContext } from 'react';
- /**
- * Context for Playground component to share image handling functionality
- */
- const PlaygroundContext = createContext(null);
- /**
- * Hook to access Playground context
- * @returns {Object} Context value with onPasteImage, imageUrls, and imageEnabled
- */
- export const usePlayground = () => {
- const context = useContext(PlaygroundContext);
- if (!context) {
- return {
- onPasteImage: () => {
- console.warn('PlaygroundContext not provided');
- },
- imageUrls: [],
- imageEnabled: false,
- };
- }
- return context;
- };
- /**
- * Provider component for Playground context
- * @param {Object} props - Component props
- * @param {React.ReactNode} props.children - Child components
- * @param {Object} props.value - Context value to provide
- * @returns {JSX.Element} Provider component
- */
- export const PlaygroundProvider = ({ children, value }) => {
- return (
- <PlaygroundContext.Provider value={value}>
- {children}
- </PlaygroundContext.Provider>
- );
- };
- export default PlaygroundContext;
|