import React from 'react';
import { AnnotatorStore } from './store';

const defaultStore = new AnnotatorStore();

const AnnotatorContext = React.createContext(defaultStore);

export const useStoreInstance = () => React.useContext(AnnotatorContext);

export function AnnotatorProvider({
  store,
  children,
}: React.PropsWithChildren<{
  store?: AnnotatorStore;
}>) {
  const storeRef = React.useRef(new AnnotatorStore());

  return (
    <AnnotatorContext.Provider value={store || storeRef.current}>
      {children}
    </AnnotatorContext.Provider>
  );
}
