Add a module enabler

Add module enabler in settings.
This loops over all the exported Modules in the components/modules folder and renders them. (Interpreted language magic/ metaclasses)
This commit is contained in:
Aj - Thomas
2022-05-10 20:33:11 +02:00
parent 1245f97e72
commit 2c461a6695
7 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
import { Group, Switch } from '@mantine/core';
import * as Modules from '../modules';
import { useConfig } from '../../tools/state';
export default function ModuleEnabler(props: any) {
const { config, setConfig } = useConfig();
// Loop over each module with their title
const modules = Object.keys(Modules);
// Match the enabled modules with the modules array
let enabledModules = config.settings.enabledModules ?? [];
enabledModules = modules.filter((module) => enabledModules.includes(module));
return (
<Group direction="column">
{modules.map((module: string) => (
<Switch
key={module}
size="md"
checked={enabledModules.includes(module)}
label={`Enable ${module.replace('Module', '')} module`}
onChange={(e) => {
if (e.currentTarget.checked) {
setConfig({
...config,
settings: {
...config.settings,
enabledModules: [...enabledModules, module],
},
});
} else {
setConfig({
...config,
settings: {
...config.settings,
enabledModules: enabledModules.filter((m) => m !== module),
},
});
}
}}
/>
))}
</Group>
);
}