@wordpress/components
Version:
UI components for WordPress.
28 lines (24 loc) • 546 B
JavaScript
// @ts-nocheck
/**
* WordPress dependencies
*/
import { useContext, useSyncExternalStore } from '@wordpress/element';
/**
* Internal dependencies
*/
import SlotFillContext from './context';
/**
* React hook returning the active slot given a name.
*
* @param {string} name Slot name.
* @return {Object} Slot object.
*/
const useSlot = ( name ) => {
const { getSlot, subscribe } = useContext( SlotFillContext );
return useSyncExternalStore(
subscribe,
() => getSlot( name ),
() => getSlot( name )
);
};
export default useSlot;