import '../uiEditor.less'; import React, { useState } from 'react'; const SettingsEditor = ({ settings, updateSettings = ()=>{}, EditorThemeNameList })=>{ const [currentSettings, setCurrentSettings] = useState(settings); const validations = { fontSize : [ (value)=>{ const number = Number(value); if(number < 9 || number > 30) { return 'Font size must be between 9 and 30.'; } return null; }, ], }; const handleFieldChange = (setting, e)=>{ const value = e.target.type === 'checkbox' ? e.target.checked : e.target.value; const inputRules = validations[setting] ?? []; const validationErrors = inputRules .map((rule)=>rule(value)) .filter(Boolean); if(validationErrors.length > 0) { e.target.setCustomValidity(validationErrors.join('\n')); e.target.reportValidity(); return; } e.target.setCustomValidity(''); const updatedSettings = { ...currentSettings, [setting] : e.target.type === 'number' ? Number(value) : value, }; setCurrentSettings(updatedSettings); updateSettings(updatedSettings); }; return (

Editor Settings

{/*
handleFieldChange('blockShading', e)} />
*/}
handleFieldChange('autoCloseBrackets', e)} />
handleFieldChange('showImagePreviews', e)} />
handleFieldChange('activeLineShading', e)} />
handleFieldChange('lineNumbers', e)} />
from 9px to 30px handleFieldChange('fontSize', e)} />
); }; export default SettingsEditor;