import React, { createContext, useContext, useState } from 'react'; interface BrowserStep { id: number; label: string; value: string; selector: string; } interface BrowserStepsContextType { browserSteps: BrowserStep[]; addBrowserStep: (label: string, value: string, selector: string) => void; deleteBrowserStep: (id: number) => void; updateBrowserStepLabel: (id: number, newLabel: string) => void; } const BrowserStepsContext = createContext(undefined); export const BrowserStepsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { const [browserSteps, setBrowserSteps] = useState([]); const addBrowserStep = (label: string, value: string, selector: string) => { setBrowserSteps(prevSteps => [ ...prevSteps, { id: Date.now(), label, value, selector } ]); }; const deleteBrowserStep = (id: number) => { setBrowserSteps(prevSteps => prevSteps.filter(step => step.id !== id)); }; const updateBrowserStepLabel = (id: number, newLabel: string) => { setBrowserSteps(prevSteps => prevSteps.map(step => step.id === id ? { ...step, label: newLabel } : step ) ); }; return ( {children} ); }; export const useBrowserSteps = () => { const context = useContext(BrowserStepsContext); if (!context) { throw new Error('useBrowserSteps must be used within a BrowserStepsProvider'); } return context; };