2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-05-28 03:49:20 +00:00

[UI] Fix settings rendering (#11987)

- Do not duplicate global plugin settings
This commit is contained in:
Oliver
2026-05-22 15:19:01 +10:00
committed by GitHub
parent 5718b49bf1
commit 5489656016
3 changed files with 24 additions and 24 deletions
@@ -70,10 +70,12 @@ function PluginSettingGroupItem({
export default function PluginSettingsGroup({ export default function PluginSettingsGroup({
mixin, mixin,
message, message,
includeBaseSettings,
global global
}: { }: {
global: boolean; global: boolean;
message?: string; message?: string;
includeBaseSettings?: boolean;
mixin?: string; mixin?: string;
}) { }) {
const mixins: string = useMemo(() => { const mixins: string = useMemo(() => {
@@ -99,16 +101,18 @@ export default function PluginSettingsGroup({
return ( return (
<Stack gap='xs'> <Stack gap='xs'>
<Accordion defaultValue='plugin-settings'> {includeBaseSettings == true && (
<Accordion.Item value='plugin-settings'> <Accordion defaultValue='plugin-settings'>
<Accordion.Control> <Accordion.Item value='plugin-settings'>
<StylishText size='lg'>{t`Plugin Settings`}</StylishText> <Accordion.Control>
</Accordion.Control> <StylishText size='lg'>{t`Plugin Settings`}</StylishText>
<Accordion.Panel> </Accordion.Control>
<GlobalSettingList keys={PLUGIN_SETTINGS_KEYS} /> <Accordion.Panel>
</Accordion.Panel> <GlobalSettingList keys={PLUGIN_SETTINGS_KEYS} />
</Accordion.Item> </Accordion.Panel>
</Accordion> </Accordion.Item>
</Accordion>
)}
<Alert color='blue' icon={<IconInfoCircle />}> <Alert color='blue' icon={<IconInfoCircle />}>
<Text> <Text>
{message ?? {message ??
@@ -15,7 +15,7 @@ import {
IconShoppingCart, IconShoppingCart,
IconTruckDelivery IconTruckDelivery
} from '@tabler/icons-react'; } from '@tabler/icons-react';
import { lazy, useMemo } from 'react'; import { useMemo } from 'react';
import { PluginPanelKey } from '@lib/enums/ModelType'; import { PluginPanelKey } from '@lib/enums/ModelType';
import type { PanelType } from '@lib/types/Panel'; import type { PanelType } from '@lib/types/Panel';
@@ -25,13 +25,9 @@ import PageTitle from '../../../components/nav/PageTitle';
import { SettingsHeader } from '../../../components/nav/SettingsHeader'; import { SettingsHeader } from '../../../components/nav/SettingsHeader';
import { PanelGroup } from '../../../components/panels/PanelGroup'; import { PanelGroup } from '../../../components/panels/PanelGroup';
import { GlobalSettingList } from '../../../components/settings/SettingList'; import { GlobalSettingList } from '../../../components/settings/SettingList';
import { Loadable } from '../../../functions/loading';
import { useServerApiState } from '../../../states/ServerApiState'; import { useServerApiState } from '../../../states/ServerApiState';
import { useUserState } from '../../../states/UserState'; import { useUserState } from '../../../states/UserState';
import PluginSettingsGroup from './PluginSettingsGroup';
const PluginSettingsGroup = Loadable(
lazy(() => import('./PluginSettingsGroup'))
);
/** /**
* System settings page * System settings page
@@ -371,7 +367,9 @@ export default function SystemSettings() {
name: 'plugins', name: 'plugins',
label: t`Plugins`, label: t`Plugins`,
icon: <IconPlugConnected />, icon: <IconPlugConnected />,
content: <PluginSettingsGroup global={true} /> content: (
<PluginSettingsGroup global={true} includeBaseSettings={true} />
)
} }
]; ];
}, []); }, []);
@@ -9,7 +9,7 @@ import {
IconSearch, IconSearch,
IconUserCircle IconUserCircle
} from '@tabler/icons-react'; } from '@tabler/icons-react';
import { lazy, useMemo } from 'react'; import { useMemo } from 'react';
import { PluginPanelKey } from '@lib/enums/ModelType'; import { PluginPanelKey } from '@lib/enums/ModelType';
import type { PanelType } from '@lib/types/Panel'; import type { PanelType } from '@lib/types/Panel';
@@ -18,14 +18,10 @@ import PageTitle from '../../../components/nav/PageTitle';
import { SettingsHeader } from '../../../components/nav/SettingsHeader'; import { SettingsHeader } from '../../../components/nav/SettingsHeader';
import { PanelGroup } from '../../../components/panels/PanelGroup'; import { PanelGroup } from '../../../components/panels/PanelGroup';
import { UserSettingList } from '../../../components/settings/SettingList'; import { UserSettingList } from '../../../components/settings/SettingList';
import { Loadable } from '../../../functions/loading';
import { useUserState } from '../../../states/UserState'; import { useUserState } from '../../../states/UserState';
import { SecurityContent } from './AccountSettings/SecurityContent'; import { SecurityContent } from './AccountSettings/SecurityContent';
import { AccountContent } from './AccountSettings/UserPanel'; import { AccountContent } from './AccountSettings/UserPanel';
import PluginSettingsGroup from './PluginSettingsGroup';
const PluginSettingsGroup = Loadable(
lazy(() => import('./PluginSettingsGroup'))
);
/** /**
* User settings page * User settings page
@@ -130,7 +126,9 @@ export default function UserSettings() {
name: 'plugins', name: 'plugins',
label: t`Plugin Settings`, label: t`Plugin Settings`,
icon: <IconPlugConnected />, icon: <IconPlugConnected />,
content: <PluginSettingsGroup global={false} /> content: (
<PluginSettingsGroup global={false} includeBaseSettings={true} />
)
} }
]; ];
}, []); }, []);