import { createContext, useContext, useState } from 'react';

import { MediaStore } from './MediaStore';

export const MarketingStoreContext = createContext<MediaStore | null>(null);

export function MarketingStoreProvider({
  children,
}: {
  children: React.ReactNode;
}) {
  const [mediaStore] = useState(() => new MediaStore());

  return (
    <MarketingStoreContext.Provider value={mediaStore}>
      {children}
    </MarketingStoreContext.Provider>
  );
}

export function useMarketingStore() {
  const store = useContext(MarketingStoreContext);
  if (!store) {
    throw new Error(
      'useMarketingStore must be used within MarketingStoreProvider'
    );
  }
  return store;
}
