mirror of
https://github.com/ajnart/homarr.git
synced 2025-11-09 23:15:46 +01:00
Improve Module matching
More TypeScript magic ! 🪄
This commit is contained in:
@@ -4,26 +4,24 @@ import { useConfig } from '../../tools/state';
|
|||||||
|
|
||||||
export default function ModuleEnabler(props: any) {
|
export default function ModuleEnabler(props: any) {
|
||||||
const { config, setConfig } = useConfig();
|
const { config, setConfig } = useConfig();
|
||||||
// Loop over each module with their title
|
const modules = Object.values(Modules).map((module) => module);
|
||||||
const modules = Object.keys(Modules);
|
const enabledModules = config.settings.enabledModules ?? [];
|
||||||
// Match the enabled modules with the modules array
|
modules.filter((module) => enabledModules.includes(module.title));
|
||||||
let enabledModules = config.settings.enabledModules ?? [];
|
|
||||||
enabledModules = modules.filter((module) => enabledModules.includes(module));
|
|
||||||
return (
|
return (
|
||||||
<Group direction="column">
|
<Group direction="column">
|
||||||
{modules.map((module: string) => (
|
{modules.map((module) => (
|
||||||
<Switch
|
<Switch
|
||||||
key={module}
|
key={module.title}
|
||||||
size="md"
|
size="md"
|
||||||
checked={enabledModules.includes(module)}
|
checked={enabledModules.includes(module.title)}
|
||||||
label={`Enable ${module.replace('Module', '')} module`}
|
label={`Enable ${module.title} module`}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
if (e.currentTarget.checked) {
|
if (e.currentTarget.checked) {
|
||||||
setConfig({
|
setConfig({
|
||||||
...config,
|
...config,
|
||||||
settings: {
|
settings: {
|
||||||
...config.settings,
|
...config.settings,
|
||||||
enabledModules: [...enabledModules, module],
|
enabledModules: [...enabledModules, module.title],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@@ -31,7 +29,7 @@ export default function ModuleEnabler(props: any) {
|
|||||||
...config,
|
...config,
|
||||||
settings: {
|
settings: {
|
||||||
...config.settings,
|
...config.settings,
|
||||||
enabledModules: enabledModules.filter((m) => m !== module),
|
enabledModules: enabledModules.filter((m) => m !== module.title),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,11 @@ export default function ModuleWrapper(props: any) {
|
|||||||
const { config } = useConfig();
|
const { config } = useConfig();
|
||||||
const enabledModules = config.settings.enabledModules ?? [];
|
const enabledModules = config.settings.enabledModules ?? [];
|
||||||
// Remove 'Module' from enabled modules titles
|
// Remove 'Module' from enabled modules titles
|
||||||
const enabledModulesTitles = enabledModules.map((module) => module.replace('Module', ''));
|
const isShown = enabledModules.includes(module.title);
|
||||||
const isShown = enabledModulesTitles.includes(module.title);
|
|
||||||
const theme = useMantineTheme();
|
const theme = useMantineTheme();
|
||||||
|
if (!isShown) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
hidden={!isShown}
|
hidden={!isShown}
|
||||||
|
|||||||
Reference in New Issue
Block a user