import { useAsync } from '@squiz/generic-browser-lib'; import { ResourceBrowserPlugin, ResourceBrowserResource } from '../types'; type UseResourceProps = { plugin: ResourceBrowserPlugin | null; resource: ResourceBrowserResource | null; }; /** * Loads the selected state for the provided resource */ export const useSelectedState = ({ plugin, resource }: UseResourceProps) => { // Find the resolver for this resource const renderSelectedResource = resource && plugin?.renderSelectedResource; return useAsync( { callback: () => (resource && renderSelectedResource ? renderSelectedResource(resource) : null), defaultValue: null, }, [resource], ); };