diff --git a/libs/remix-ui/plugin-manager/src/customTypes.ts b/libs/remix-ui/plugin-manager/src/customTypes.ts
index e696caeb52..5c0efa46e1 100644
--- a/libs/remix-ui/plugin-manager/src/customTypes.ts
+++ b/libs/remix-ui/plugin-manager/src/customTypes.ts
@@ -5,3 +5,16 @@ export type PluginManagerSettings = {
settings: () => HTMLElement
render: () => HTMLElement
}
+
+export type Profile = {
+ name: 'pluginManager',
+ displayName: 'Plugin manager',
+ methods: [],
+ events: [],
+ icon: 'assets/img/pluginManager.webp',
+ description: 'Start/stop services, modules and plugins',
+ kind: 'settings',
+ location: 'sidePanel',
+ documentation: 'https://remix-ide.readthedocs.io/en/latest/plugin_manager.html',
+ version: string
+}
diff --git a/libs/remix-ui/plugin-manager/src/lib/components/listGroupItem.tsx b/libs/remix-ui/plugin-manager/src/lib/components/listGroupItem.tsx
new file mode 100644
index 0000000000..fab9496217
--- /dev/null
+++ b/libs/remix-ui/plugin-manager/src/lib/components/listGroupItem.tsx
@@ -0,0 +1,21 @@
+import React from 'react'
+import { Profile } from '../../customTypes'
+
+interface ListGroupItemProps {
+ activeProfiles: Profile[]
+ inactiveProfiles: Profile[]
+ renderItem: (profile: Profile) => void
+}
+
+function ListGroupItem ({ activeProfiles, inactiveProfiles, renderItem }: ListGroupItemProps) {
+ return (
+
+ { activeProfiles.length > 0
+ ? activeProfiles.map(profile => renderItem(profile))
+ : inactiveProfiles.map(profile => renderItem(profile))
+ }
+
+ )
+}
+
+export default ListGroupItem
diff --git a/libs/remix-ui/plugin-manager/src/lib/components/rootView.tsx b/libs/remix-ui/plugin-manager/src/lib/components/rootView.tsx
index 3c951b7ebf..266014cd7d 100644
--- a/libs/remix-ui/plugin-manager/src/lib/components/rootView.tsx
+++ b/libs/remix-ui/plugin-manager/src/lib/components/rootView.tsx
@@ -1,23 +1,38 @@
import React from 'react'
+import { Profile } from '../../customTypes'
import ActiveTile from './activeTile'
+import ListGroupItem from './listGroupItem'
-interface RowViewProps {
+interface RootViewProps {
localPluginButtonText: string
-
+ activeProfiles: Profile[]
+ inactiveProfiles?: Profile[]
+ filterPlugins: () => void
+ openLocalPlugins: () => void
+ renderItem: (profile: Profile) => void
}
-function RootView () {
+function RootView ({
+ localPluginButtonText,
+ activeProfiles,
+ inactiveProfiles,
+ filterPlugins,
+ openLocalPlugins,
+ renderItem
+}: RootViewProps) {
return (
)
diff --git a/libs/remix-ui/plugin-manager/src/lib/remix-ui-plugin-manager.tsx b/libs/remix-ui/plugin-manager/src/lib/remix-ui-plugin-manager.tsx
index ca52b183e0..93f091f2a8 100644
--- a/libs/remix-ui/plugin-manager/src/lib/remix-ui-plugin-manager.tsx
+++ b/libs/remix-ui/plugin-manager/src/lib/remix-ui-plugin-manager.tsx
@@ -1,19 +1,9 @@
import React from 'react'
-
-import './remix-ui-plugin-manager.css';
+import './remix-ui-plugin-manager.css'
/* eslint-disable-next-line */
export interface RemixUiPluginManagerProps {
- name: 'pluginManager',
- displayName: 'Plugin manager',
- methods: [],
- events: [],
- icon: 'assets/img/pluginManager.webp',
- description: 'Start/stop services, modules and plugins',
- kind: 'settings',
- location: 'sidePanel',
- documentation: 'https://remix-ide.readthedocs.io/en/latest/plugin_manager.html',
- version: string
+
}
export const RemixUiPluginManager = (props: RemixUiPluginManagerProps) => {
@@ -21,7 +11,7 @@ export const RemixUiPluginManager = (props: RemixUiPluginManagerProps) => {
Welcome to remix-ui-plugin-manager!
- );
-};
+ )
+}
-export default RemixUiPluginManager;
+export default RemixUiPluginManager
diff --git a/nx.json b/nx.json
index 64d8dcaeaf..7243217040 100644
--- a/nx.json
+++ b/nx.json
@@ -105,7 +105,7 @@
"remix-ui-checkbox": {
"tags": []
},
- "remix-ui-settings": {
+ "remix-ui-plugin-manager": {
"tags": []
}
}