diff --git a/packages/twenty-front/src/modules/settings/integrations/hooks/useSettingsIntegrationCategories.ts b/packages/twenty-front/src/modules/settings/integrations/hooks/useSettingsIntegrationCategories.ts index 38a639127..d70dd9b49 100644 --- a/packages/twenty-front/src/modules/settings/integrations/hooks/useSettingsIntegrationCategories.ts +++ b/packages/twenty-front/src/modules/settings/integrations/hooks/useSettingsIntegrationCategories.ts @@ -29,15 +29,17 @@ export const useSettingsIntegrationCategories = ({ name }) => name === 'stripe', )?.isActive; + const allIntegrations = getSettingsIntegrationAll({ + isAirtableIntegrationEnabled, + isAirtableIntegrationActive, + isPostgresqlIntegrationEnabled, + isPostgresqlIntegrationActive, + isStripeIntegrationEnabled, + isStripeIntegrationActive, + }); + return [ - getSettingsIntegrationAll({ - isAirtableIntegrationEnabled, - isAirtableIntegrationActive, - isPostgresqlIntegrationEnabled, - isPostgresqlIntegrationActive, - isStripeIntegrationEnabled, - isStripeIntegrationActive, - }), + ...(allIntegrations.integrations.length > 0 ? [allIntegrations] : []), SETTINGS_INTEGRATION_ZAPIER_CATEGORY, SETTINGS_INTEGRATION_WINDMILL_CATEGORY, SETTINGS_INTEGRATION_REQUEST_CATEGORY, diff --git a/packages/twenty-front/src/modules/settings/integrations/utils/getSettingsIntegrationAll.ts b/packages/twenty-front/src/modules/settings/integrations/utils/getSettingsIntegrationAll.ts index a61532673..97061ade9 100644 --- a/packages/twenty-front/src/modules/settings/integrations/utils/getSettingsIntegrationAll.ts +++ b/packages/twenty-front/src/modules/settings/integrations/utils/getSettingsIntegrationAll.ts @@ -1,3 +1,4 @@ +import { SettingsIntegration } from '@/settings/integrations/types/SettingsIntegration'; import { SettingsIntegrationCategory } from '@/settings/integrations/types/SettingsIntegrationCategory'; export const getSettingsIntegrationAll = ({ @@ -18,44 +19,32 @@ export const getSettingsIntegrationAll = ({ key: 'all', title: 'All', integrations: [ - { + isAirtableIntegrationEnabled && { from: { key: 'airtable', image: '/images/integrations/airtable-logo.png', }, - type: !isAirtableIntegrationEnabled - ? 'Soon' - : isAirtableIntegrationActive - ? 'Active' - : 'Add', + type: isAirtableIntegrationActive ? 'Active' : 'Add', text: 'Airtable', link: '/settings/integrations/airtable', }, - { + isPostgresqlIntegrationEnabled && { from: { key: 'postgresql', image: '/images/integrations/postgresql-logo.png', }, - type: !isPostgresqlIntegrationEnabled - ? 'Soon' - : isPostgresqlIntegrationActive - ? 'Active' - : 'Add', + type: isPostgresqlIntegrationActive ? 'Active' : 'Add', text: 'PostgreSQL', link: '/settings/integrations/postgresql', }, - { + isStripeIntegrationEnabled && { from: { key: 'stripe', image: '/images/integrations/stripe-logo.png', }, - type: !isStripeIntegrationEnabled - ? 'Soon' - : isStripeIntegrationActive - ? 'Active' - : 'Add', + type: isStripeIntegrationActive ? 'Active' : 'Add', text: 'Stripe', link: '/settings/integrations/stripe', }, - ], + ].filter(Boolean) as SettingsIntegration[], });