From 290987d020d6b97e0ca43d22de27a9fb3569117d Mon Sep 17 00:00:00 2001 From: Ildar Kamalov Date: Tue, 21 Jan 2025 14:27:05 +0300 Subject: [PATCH] fix client form --- client/package-lock.json | 108 ------------------ client/package.json | 2 - .../Form/components/BlockedServices.tsx | 1 - .../Settings/Clients/Form/index.tsx | 28 ++++- client/src/initialState.ts | 2 - 5 files changed, 26 insertions(+), 115 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index ccf521cc..62aa0d4b 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -39,7 +39,6 @@ "react-transition-group": "^4.4.5", "redux": "^4.0.5", "redux-actions": "^2.6.5", - "redux-form": "^8.3.10", "redux-thunk": "^2.3.0", "ts-migrate": "^0.1.35", "url-polyfill": "^1.1.12" @@ -63,7 +62,6 @@ "@types/react-router-dom": "^5.3.3", "@types/react-table": "^7.7.20", "@types/redux-actions": "^2.6.5", - "@types/redux-form": "^8.3.10", "@typescript-eslint/eslint-plugin": "^7.11.0", "@typescript-eslint/parser": "^7.10.0", "babel-loader": "^9.1.3", @@ -3985,16 +3983,6 @@ "integrity": "sha512-RgXOigay5cNweP+xH1ru+Vaaj1xXYLpWIfSVO8cSA8Ii2xvR+HRfWYdLe1UVOA8X0kIklalGOa0DTDyld0obkg==", "dev": true }, - "node_modules/@types/redux-form": { - "version": "8.3.10", - "resolved": "https://registry.npmjs.org/@types/redux-form/-/redux-form-8.3.10.tgz", - "integrity": "sha512-LExE1Ql/PY4zjjDd6otptJ/ymwCNdEJAvcXpD+cWzhHR1QZhimo8p1DIrJoAMzn3KmEC5fgaH6PNdWhCPqHJnw==", - "dev": true, - "dependencies": { - "@types/react": "*", - "redux": "^3.6.0 || ^4.0.0" - } - }, "node_modules/@types/retry": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", @@ -7939,11 +7927,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -10932,11 +10915,6 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -16039,47 +16017,6 @@ "to-camel-case": "^1.0.0" } }, - "node_modules/redux-form": { - "version": "8.3.10", - "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-8.3.10.tgz", - "integrity": "sha512-Eeog8dJYUxCSZI/oBoy7VkprvMjj1lpUnHa3LwjVNZvYDNeiRZMoZoaAT+6nlK2YQ4aiBopKUMiLe4ihUOHCGg==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "es6-error": "^4.1.1", - "hoist-non-react-statics": "^3.3.2", - "invariant": "^2.2.4", - "is-promise": "^2.1.0", - "lodash": "^4.17.15", - "prop-types": "^15.6.1", - "react-is": "^16.4.2" - }, - "engines": { - "node": ">=8.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/redux-form" - }, - "peerDependencies": { - "immutable": "^3.8.2 || ^4.0.0", - "react": "^16.4.2 || ^17.0.0 || ^18.0.0", - "react-redux": "^6.0.1 || ^7.0.0 || ^8.0.0", - "redux": "^3.7.2 || ^4.0.0" - }, - "peerDependenciesMeta": { - "immutable": { - "optional": true - } - } - }, - "node_modules/redux-form/node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, "node_modules/redux-thunk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", @@ -23099,16 +23036,6 @@ "integrity": "sha512-RgXOigay5cNweP+xH1ru+Vaaj1xXYLpWIfSVO8cSA8Ii2xvR+HRfWYdLe1UVOA8X0kIklalGOa0DTDyld0obkg==", "dev": true }, - "@types/redux-form": { - "version": "8.3.10", - "resolved": "https://registry.npmjs.org/@types/redux-form/-/redux-form-8.3.10.tgz", - "integrity": "sha512-LExE1Ql/PY4zjjDd6otptJ/ymwCNdEJAvcXpD+cWzhHR1QZhimo8p1DIrJoAMzn3KmEC5fgaH6PNdWhCPqHJnw==", - "dev": true, - "requires": { - "@types/react": "*", - "redux": "^3.6.0 || ^4.0.0" - } - }, "@types/retry": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", @@ -26032,11 +25959,6 @@ "is-symbol": "^1.0.2" } }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -28198,11 +28120,6 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -31922,31 +31839,6 @@ "to-camel-case": "^1.0.0" } }, - "redux-form": { - "version": "8.3.10", - "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-8.3.10.tgz", - "integrity": "sha512-Eeog8dJYUxCSZI/oBoy7VkprvMjj1lpUnHa3LwjVNZvYDNeiRZMoZoaAT+6nlK2YQ4aiBopKUMiLe4ihUOHCGg==", - "requires": { - "@babel/runtime": "^7.9.2", - "es6-error": "^4.1.1", - "hoist-non-react-statics": "^3.3.2", - "invariant": "^2.2.4", - "is-promise": "^2.1.0", - "lodash": "^4.17.15", - "prop-types": "^15.6.1", - "react-is": "^16.4.2" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - } - } - }, "redux-thunk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", diff --git a/client/package.json b/client/package.json index 1c97e553..ba8ae2f3 100644 --- a/client/package.json +++ b/client/package.json @@ -52,7 +52,6 @@ "react-transition-group": "^4.4.5", "redux": "^4.0.5", "redux-actions": "^2.6.5", - "redux-form": "^8.3.10", "redux-thunk": "^2.3.0", "ts-migrate": "^0.1.35", "url-polyfill": "^1.1.12" @@ -76,7 +75,6 @@ "@types/react-router-dom": "^5.3.3", "@types/react-table": "^7.7.20", "@types/redux-actions": "^2.6.5", - "@types/redux-form": "^8.3.10", "@typescript-eslint/eslint-plugin": "^7.11.0", "@typescript-eslint/parser": "^7.10.0", "babel-loader": "^9.1.3", diff --git a/client/src/components/Settings/Clients/Form/components/BlockedServices.tsx b/client/src/components/Settings/Clients/Form/components/BlockedServices.tsx index f88c04d9..945f7c4e 100644 --- a/client/src/components/Settings/Clients/Form/components/BlockedServices.tsx +++ b/client/src/components/Settings/Clients/Form/components/BlockedServices.tsx @@ -29,7 +29,6 @@ export const BlockedServices = ({ services }: Props) => { )} diff --git a/client/src/components/Settings/Clients/Form/index.tsx b/client/src/components/Settings/Clients/Form/index.tsx index 899043f7..90cbd3da 100644 --- a/client/src/components/Settings/Clients/Form/index.tsx +++ b/client/src/components/Settings/Clients/Form/index.tsx @@ -5,7 +5,7 @@ import { Controller, FormProvider, useForm } from 'react-hook-form'; import Select from 'react-select'; import Tabs from '../../../ui/Tabs'; -import { CLIENT_ID_LINK } from '../../../../helpers/constants'; +import { CLIENT_ID_LINK, LOCAL_TIMEZONE_VALUE } from '../../../../helpers/constants'; import { RootState } from '../../../../initialState'; import { Input } from '../../../ui/Controls/Input'; import { validateRequiredValue } from '../../../../helpers/validators'; @@ -14,6 +14,27 @@ import { BlockedServices, ClientIds, MainSettings, ScheduleServices, UpstreamDns import '../Service.css'; +const defaultFormValues: ClientForm = { + ids: [{ name: '' }], + name: '', + tags: [], + use_global_settings: false, + filtering_enabled: false, + safebrowsing_enabled: false, + parental_enabled: false, + ignore_querylog: false, + ignore_statistics: false, + blocked_services: {}, + safe_search: { enabled: false }, + upstreams: '', + upstreams_cache_enabled: false, + upstreams_cache_size: 0, + use_global_blocked_services: false, + blocked_services_schedule: { + time_zone: LOCAL_TIMEZONE_VALUE, + }, +}; + type Props = { onSubmit: (...args: unknown[]) => void; onClose: () => void; @@ -38,7 +59,10 @@ export const Form = ({ }: Props) => { const { t } = useTranslation(); const methods = useForm({ - defaultValues: initialValues, + defaultValues: { + ...defaultFormValues, + ...initialValues, + }, mode: 'onChange', }); diff --git a/client/src/initialState.ts b/client/src/initialState.ts index 9c1469e6..7292693c 100644 --- a/client/src/initialState.ts +++ b/client/src/initialState.ts @@ -1,9 +1,7 @@ import { - ALL_INTERFACES_IP, BLOCKING_MODES, DAY, DEFAULT_LOGS_FILTER, - INSTALL_FIRST_STEP, STANDARD_DNS_PORT, STANDARD_WEB_PORT, TIME_UNITS,