mirror of
https://github.com/ajnart/homarr.git
synced 2025-11-10 23:45:48 +01:00
🏗️ Rework moduleWrapper architecture
This commit is contained in:
@@ -2,13 +2,9 @@ import { Button, Card, Group, Menu, Switch, TextInput, useMantineTheme } from '@
|
|||||||
import { useConfig } from '../../tools/state';
|
import { useConfig } from '../../tools/state';
|
||||||
import { IModule } from './modules';
|
import { IModule } from './modules';
|
||||||
|
|
||||||
export function ModuleWrapper(props: any) {
|
function getItems(module: IModule) {
|
||||||
const { module }: { module: IModule } = props;
|
|
||||||
const { config, setConfig } = useConfig();
|
const { config, setConfig } = useConfig();
|
||||||
const enabledModules = config.modules ?? {};
|
const enabledModules = config.modules ?? {};
|
||||||
// Remove 'Module' from enabled modules titles
|
|
||||||
const isShown = enabledModules[module.title]?.enabled ?? false;
|
|
||||||
const theme = useMantineTheme();
|
|
||||||
const items: JSX.Element[] = [];
|
const items: JSX.Element[] = [];
|
||||||
if (module.options) {
|
if (module.options) {
|
||||||
const keys = Object.keys(module.options);
|
const keys = Object.keys(module.options);
|
||||||
@@ -90,11 +86,23 @@ export function ModuleWrapper(props: any) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function ModuleWrapper(props: any) {
|
||||||
|
const { module }: { module: IModule } = props;
|
||||||
|
const { config, setConfig } = useConfig();
|
||||||
|
const enabledModules = config.modules ?? {};
|
||||||
|
// Remove 'Module' from enabled modules titles
|
||||||
|
const isShown = enabledModules[module.title]?.enabled ?? false;
|
||||||
|
const theme = useMantineTheme();
|
||||||
|
const items: JSX.Element[] = getItems(module);
|
||||||
|
|
||||||
if (!isShown) {
|
if (!isShown) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<Card hidden={!isShown} mx="sm" withBorder radius="lg" shadow="sm">
|
<Card {...props} hidden={!isShown} withBorder radius="lg" shadow="sm">
|
||||||
{module.options && (
|
{module.options && (
|
||||||
<Menu
|
<Menu
|
||||||
size="lg"
|
size="lg"
|
||||||
|
|||||||
Reference in New Issue
Block a user