diff --git a/ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx b/ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx index 755aadb6..65e96495 100644 --- a/ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx +++ b/ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx @@ -19,22 +19,62 @@ export default function ExtensionList({ isStatic, disableConfiguration: _disableConfiguration, }: ExtensionListProps) { - // Sort extensions alphabetically by their friendly title - const sortedExtensions = [...extensions].sort((a, b) => + // Separate enabled and disabled extensions + const enabledExtensions = extensions.filter((ext) => ext.enabled); + const disabledExtensions = extensions.filter((ext) => !ext.enabled); + // Sort each group alphabetically by their friendly title + const sortedEnabledExtensions = [...enabledExtensions].sort((a, b) => + getFriendlyTitle(a).localeCompare(getFriendlyTitle(b)) + ); + const sortedDisabledExtensions = [...disabledExtensions].sort((a, b) => getFriendlyTitle(a).localeCompare(getFriendlyTitle(b)) ); return ( -
- {sortedExtensions.map((extension) => ( - - ))} +
+ {sortedEnabledExtensions.length > 0 && ( +
+

+ + Enabled Extensions ({sortedEnabledExtensions.length}) +

+
+ {sortedEnabledExtensions.map((extension) => ( + + ))} +
+
+ )} + + {sortedDisabledExtensions.length > 0 && ( +
+

+ + Available Extensions ({sortedDisabledExtensions.length}) +

+
+ {sortedDisabledExtensions.map((extension) => ( + + ))} +
+
+ )} + + {extensions.length === 0 && ( +
No extensions available
+ )}
); }