Skip to content

Commit a624f0a

Browse files
committed
frontend: Add usePlugins hook to plugin settings logic
Signed-off-by: Vincent T <[email protected]>
1 parent db0a628 commit a624f0a

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

frontend/src/components/App/PluginSettings/PluginSettings.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { useEffect, useState } from 'react';
2626
import { useTranslation } from 'react-i18next';
2727
import { useDispatch } from 'react-redux';
2828
import { isElectron } from '../../../helpers/isElectron';
29+
import { usePlugins } from '../../../lib/k8s/api/v2/plugins';
2930
import { useFilterFunc } from '../../../lib/util';
3031
import { PluginInfo, reloadPage, setPluginSettings } from '../../../plugin/pluginsSlice';
3132
import { useTypedSelector } from '../../../redux/reducers/reducers';
@@ -306,9 +307,15 @@ export default function PluginSettings() {
306307

307308
const pluginSettings = useTypedSelector(state => state.plugins.pluginSettings);
308309

310+
const { data: plugins } = usePlugins(pluginSettings);
311+
312+
if (!plugins?.length) {
313+
return null;
314+
}
315+
309316
return (
310317
<PluginSettingsPure
311-
plugins={pluginSettings}
318+
plugins={plugins}
312319
onSave={plugins => {
313320
dispatch(setPluginSettings(plugins));
314321
dispatch(reloadPage());

frontend/src/components/App/PluginSettings/PluginSettingsDetails.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { useParams } from 'react-router-dom';
2525
import { useHistory } from 'react-router-dom';
2626
import { isElectron } from '../../../helpers/isElectron';
2727
import { getCluster } from '../../../lib/cluster';
28+
import { usePlugins } from '../../../lib/k8s/api/v2/plugins';
2829
import { deletePlugin } from '../../../lib/k8s/apiProxy';
2930
import { ConfigStore } from '../../../plugin/configStore';
3031
import { PluginInfo, reloadPage } from '../../../plugin/pluginsSlice';
@@ -82,13 +83,14 @@ const PluginSettingsDetailsInitializer = (props: { plugin: PluginInfo }) => {
8283
};
8384

8485
export default function PluginSettingsDetails() {
85-
const pluginSettings = useTypedSelector(state => state.plugins.pluginSettings);
8686
const { name } = useParams<{ name: string }>();
87+
const pluginSettings = useTypedSelector(state => state.plugins.pluginSettings);
88+
const { data: plugins } = usePlugins(pluginSettings);
8789

8890
const plugin = useMemo(() => {
8991
const decodedName = decodeURIComponent(name);
90-
return pluginSettings.find(plugin => plugin.name === decodedName);
91-
}, [pluginSettings, name]);
92+
return plugins?.find((plugin: PluginInfo) => plugin.name === decodedName);
93+
}, [plugins, name]);
9294

9395
if (!plugin) {
9496
return <NotFoundComponent />;

0 commit comments

Comments
 (0)