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

const DataCellRenderAreaContext = createContext<string | undefined>(undefined);

/** Render area in which data cells are rendered */
export function DataCellRenderArea<C extends string>({ column, children }: PropsWithChildren<{ column: C }>) {
  return <DataCellRenderAreaContext.Provider value={column}>{children}</DataCellRenderAreaContext.Provider>;
}

/** Return `true` if current component is located inside {@link DataCellRenderArea} */
export function useIsDataCellRenderArea<C extends string>(column: C) {
  return useContext(DataCellRenderAreaContext) === column;
}
