Improve Module matching

More TypeScript magic ! 🪄
This commit is contained in:
Aj - Thomas
2022-05-10 20:56:48 +02:00
parent f03bcde983
commit d5b17d5303
2 changed files with 13 additions and 13 deletions

View File

@@ -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),
}, },
}); });
} }

View File

@@ -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}