import { useMemo } from 'react';

/**
 * Hook for accessing resource information for a field
 *
 * @param field The field to get resource information for
 * @return Object containing resource information
 */
export function useResource(field: GravityFormsField) {
	return useMemo(() => {
		const resourceId = field.gpiResource;
		const resources = window.gpi_inventory_page_strings.resources || {};
		const resource = resourceId ? resources[resourceId] : null;
		const hasProperties =
			resource && resource.properties && resource.properties.length > 0;

		return {
			resource,
			resourceId,
			hasProperties,
			properties: resource?.properties || [],
		};
	}, [field.gpiResource]);
}
