diff --git a/libs/remix-ui/plugin-manager/src/lib/components/LocalPluginForm.tsx b/libs/remix-ui/plugin-manager/src/lib/components/LocalPluginForm.tsx index 6e768a935e..44ba3de3c2 100644 --- a/libs/remix-ui/plugin-manager/src/lib/components/LocalPluginForm.tsx +++ b/libs/remix-ui/plugin-manager/src/lib/components/LocalPluginForm.tsx @@ -20,7 +20,8 @@ const initialState: FormStateProps = { type: 'iframe', hash: '', methods: [], - location: 'sidePanel' + location: 'sidePanel', + canActivate: [] } const defaultProfile = { @@ -48,9 +49,10 @@ function LocalPluginForm ({ closeModal, visible, pluginManager }: LocalPluginFor setName(storagePlugin.name) setUrl(storagePlugin.url) setLocation(storagePlugin.location as 'sidePanel' | 'mainPanel' | 'none') - setMethods(storagePlugin.methods) + setMethods(Array.isArray(storagePlugin.methods) ? storagePlugin.methods.join(',') : storagePlugin.methods) setType(storagePlugin.type) setDisplayName(storagePlugin.displayName) + setCanactivate(Array.isArray(storagePlugin.canActivate) ? storagePlugin.canActivate.join(',') : storagePlugin.canActivate) }, []) const handleModalOkClick = async () => { @@ -61,7 +63,7 @@ function LocalPluginForm ({ closeModal, visible, pluginManager }: LocalPluginFor } if (!location) throw new Error('Plugin should have a location') if (!url) throw new Error('Plugin should have an URL') - const newMethods = typeof methods === 'string' ? methods.split(',').filter(val => val) : [] + const newMethods = typeof methods === 'string' ? methods.split(',').filter(val => val).map(val => { return val.trim() }) : [] const targetPlugin = { name: name, displayName: displayName, @@ -75,7 +77,7 @@ function LocalPluginForm ({ closeModal, visible, pluginManager }: LocalPluginFor type: type, location: location, icon: 'assets/img/localPlugin.webp', - canActivate: typeof canactivate === 'string' ? canactivate.split(',').filter(val => val) : [] + canActivate: typeof canactivate === 'string' ? canactivate.split(',').filter(val => val).map(val => { return val.trim() }) : [] } const localPlugin = type === 'iframe' ? new IframePlugin(initialState) : new WebsocketPlugin(initialState) localPlugin.profile.hash = `local-${name}` diff --git a/libs/remix-ui/plugin-manager/src/types.d.ts b/libs/remix-ui/plugin-manager/src/types.d.ts index 4e8326832e..e907c41f71 100644 --- a/libs/remix-ui/plugin-manager/src/types.d.ts +++ b/libs/remix-ui/plugin-manager/src/types.d.ts @@ -178,8 +178,9 @@ export interface FormStateProps { url: string type: 'iframe' | 'ws' hash: string - methods: any + methods: string[] location: string + canActivate: string[] } export type PluginManagerProfile = Profile & {