/**
 * Utility functions for plugin promo management
 */

/**
 * Check if there are any non-installed plugins to display in the promo page
 * 
 * @returns {boolean} True if there are displayable plugins, false otherwise
 */
export const hasDisplayablePlugins = () => {
  const eaelQuickSetup = window.localize?.eael_quick_setup_data;
  const plugins_content = eaelQuickSetup?.plugins_content?.plugins;
  
  if (!plugins_content || Object.keys(plugins_content).length === 0) return false;
  
  const plugins = Object.keys(plugins_content)
    .filter(key => !isNaN(key))
    .map(key => plugins_content[key]);
  
  if (plugins.length === 0) return false;
  
  // Check if there are any plugins that are not installed
  return plugins.some(plugin => plugin.local_plugin_data === false);
};

/**
 * Get the count of plugins in the promo page
 * 
 * @returns {number} The number of plugins in the promo page
 */
export const getPluginPromoCount = () => {
  const eaelQuickSetup = window.localize?.eael_quick_setup_data;
  return Object.keys(eaelQuickSetup?.plugins_content?.plugins || {}).length;
};

/**
 * Get all non-installed plugins from the promo page
 * 
 * @returns {Array} Array of non-installed plugins
 */
export const getNonInstalledPlugins = () => {
  const eaelQuickSetup = window.localize?.eael_quick_setup_data;
  const plugins_content = eaelQuickSetup?.plugins_content?.plugins;
  
  if (!plugins_content || Object.keys(plugins_content).length === 0) return [];
  
  return Object.keys(plugins_content)
    .filter(key => !isNaN(key))
    .map(key => plugins_content[key])
    .filter(plugin => plugin.local_plugin_data === false);
};