From ccad7de13c5e03bf566bc34ff6bea1c86e734a47 Mon Sep 17 00:00:00 2001 From: Tiago Silva Date: Fri, 30 Aug 2024 18:01:33 +0100 Subject: [PATCH 01/42] Add config override debug module --- src/components/debug/DebugConfig.tsx | 81 +++++++++++++++++++ src/components/debug/growwrap.module.css | 36 +++++++++ .../strategies/create/strategyOptionItems.tsx | 13 ++- src/config/index.ts | 11 ++- src/pages/debug/index.tsx | 2 + src/services/localeStorage/index.ts | 2 + 6 files changed, 136 insertions(+), 9 deletions(-) create mode 100644 src/components/debug/DebugConfig.tsx create mode 100644 src/components/debug/growwrap.module.css diff --git a/src/components/debug/DebugConfig.tsx b/src/components/debug/DebugConfig.tsx new file mode 100644 index 000000000..49aa25c06 --- /dev/null +++ b/src/components/debug/DebugConfig.tsx @@ -0,0 +1,81 @@ +import { useState } from 'react'; +import { lsService } from 'services/localeStorage'; +import { Button } from 'components/common/button'; +import style from './growwrap.module.css'; +import { cn } from 'utils/helpers'; +import { Warning } from 'components/common/WarningMessageWithIcon'; +import currentConfig, { defaultConfig } from 'config'; + +export const DebugConfig = () => { + const parsedCurrentConfig = JSON.stringify( + lsService.getItem('currentConfig'), + undefined, + 4 + ); + const parsedDefaultConfig = JSON.stringify(defaultConfig, undefined, 4); + + const [config, setConfig] = useState(parsedCurrentConfig); + const [error, setError] = useState(''); + + const errorMessage = 'Failed parsing JSON file'; + + const saveConfig = (config?: string) => { + try { + if (!config) { + setConfig(''); + lsService.removeItem('currentConfig'); + } else { + const parsedConfig = JSON.parse(config || ''); + lsService.setItem('currentConfig', parsedConfig); + } + setError(''); + window?.location.reload(); + } catch (error) { + setError(errorMessage); + } + }; + + const handleConfigChange = (e: React.ChangeEvent) => { + setConfig(e.target.value); + if (e.target.parentNode) + (e.target.parentNode as HTMLElement).dataset.replicatedValue = + e.target.value; + }; + + return ( +
+

Set Config

+ + {!!error && ( + + )} + +
+