import { useMemo } from 'react'; export const PLUGINS_KEYS = Object.freeze( { ELEMENTOR: 'Elementor', ELEMENTOR_PRO: 'Elementor Pro', } ); export default function usePluginsData( plugins ) { const getPluginsData = () => { if ( ! plugins ) { return []; } const elementorPlugins = [], generalPlugins = []; plugins.forEach( ( plugin ) => { switch ( plugin.name ) { case PLUGINS_KEYS.ELEMENTOR: // Making sure that the core plugin is always first. elementorPlugins.unshift( plugin ); break; case PLUGINS_KEYS.ELEMENTOR_PRO: // Making sure that the pro plugin is always second. elementorPlugins.push( plugin ); break; default: generalPlugins.push( plugin ); } } ); // Making sure that the elementor plugins are always first. return elementorPlugins.concat( generalPlugins ); }; return { pluginsData: useMemo( () => getPluginsData(), [ plugins ] ), }; }