import { useSelect } from '@wordpress/data'

export type BlockEditorSelectors =
  typeof import('@wordpress/block-editor/store/selectors')

export default function useBlockEditorSelect<T>(
  mapSelect: (selectors: BlockEditorSelectors) => T,
  deps: unknown[]
): T {
  return useSelect((select) => {
    const selectors = select('core/block-editor') as BlockEditorSelectors

    return mapSelect(selectors)
  }, deps)
}
