import React, { createContext } from 'react';

import { EQStateManagement } from './useEQStateManagement';

export const EQStateContext = createContext<EQStateManagement | null>(null);

export function EQStateProvider({
  children,
  value,
}: {
  children: React.ReactNode;
  value: EQStateManagement;
}) {
  return (
    <EQStateContext.Provider value={value}>{children}</EQStateContext.Provider>
  );
}

export function useEQState(): EQStateManagement {
  const context = React.useContext(EQStateContext);
  if (!context) {
    throw new Error('useEQState must be used within EQStateProvider');
  }
  return context;
}
