From 2ab738b3036b3b1c31a63dcf68f785699020022e Mon Sep 17 00:00:00 2001 From: Igor Lobanov Date: Wed, 5 Jun 2024 11:40:32 +0200 Subject: [PATCH] Frontend rewritten in TypeScript, added Node 18 support --- CHANGELOG.md | 7 +- README.md | 2 +- client/.eslintrc.json | 60 +- client/.gitattributes | 2 +- client/.prettierrc | 10 + client/.stylelintrc | 46 - client/.stylelintrc.js | 44 + client/babel.config.cjs | 14 + client/babel.config.js | 17 - client/constants.js | 9 +- client/global.d.ts | 6 + client/jest.config.js | 5 - client/jest.config.mjs | 6 + client/package-lock.json | 39895 ++++++++-------- client/package.json | 110 +- client/src/__locales/fi.json | 10 +- client/src/__locales/ja.json | 4 +- client/src/__locales/sv.json | 10 +- .../{helpers.test.js => helpers.test.ts} | 188 +- client/src/actions/{access.js => access.ts} | 13 +- client/src/actions/{clients.js => clients.ts} | 7 +- .../actions/{dnsConfig.js => dnsConfig.ts} | 7 +- .../actions/{encryption.js => encryption.ts} | 7 +- .../actions/{filtering.js => filtering.ts} | 134 +- client/src/actions/{index.js => index.tsx} | 396 +- client/src/actions/{install.js => install.ts} | 11 +- client/src/actions/{login.js => login.ts} | 6 +- .../actions/{queryLogs.js => queryLogs.ts} | 60 +- .../src/actions/{rewrites.js => rewrites.ts} | 8 +- .../src/actions/{services.js => services.ts} | 6 +- client/src/actions/{stats.js => stats.ts} | 13 +- client/src/actions/{toasts.js => toasts.ts} | 0 client/src/api/{Api.js => Api.ts} | 125 +- client/src/components/App/index.css | 14 +- .../components/App/{index.js => index.tsx} | 116 +- .../{BlockedDomains.js => BlockedDomains.tsx} | 58 +- .../Dashboard/{Clients.js => Clients.tsx} | 128 +- .../Dashboard/{Counters.js => Counters.tsx} | 96 +- client/src/components/Dashboard/DomainCell.js | 77 - .../src/components/Dashboard/DomainCell.tsx | 81 + .../{QueriedDomains.js => QueriedDomains.tsx} | 49 +- .../{Statistics.js => Statistics.tsx} | 73 +- .../Dashboard/{StatsCard.js => StatsCard.tsx} | 36 +- ...UpstreamAvgTime.js => UpstreamAvgTime.tsx} | 50 +- ...reamResponses.js => UpstreamResponses.tsx} | 57 +- client/src/components/Dashboard/index.js | 276 - client/src/components/Dashboard/index.tsx | 260 + client/src/components/Filters/Actions.js | 32 - client/src/components/Filters/Actions.tsx | 27 + .../Filters/Check/{Info.js => Info.tsx} | 103 +- client/src/components/Filters/Check/index.js | 66 - client/src/components/Filters/Check/index.tsx | 70 + .../{CustomRules.js => CustomRules.tsx} | 59 +- .../{DnsAllowlist.js => DnsAllowlist.tsx} | 71 +- .../{DnsBlocklist.js => DnsBlocklist.tsx} | 80 +- .../Filters/{Examples.js => Examples.tsx} | 36 +- client/src/components/Filters/Form.js | 191 - client/src/components/Filters/Form.tsx | 208 + .../Filters/{Modal.js => Modal.tsx} | 81 +- .../Filters/Rewrites/{Form.js => Form.tsx} | 68 +- .../Filters/Rewrites/{Modal.js => Modal.tsx} | 30 +- .../Filters/Rewrites/{Table.js => Table.tsx} | 46 +- .../Filters/Rewrites/{index.js => index.tsx} | 48 +- .../Filters/Services/{Form.js => Form.tsx} | 50 +- .../ScheduleForm/{Modal.js => Modal.tsx} | 109 +- .../Services/ScheduleForm/TimePeriod.js | 25 - .../Services/ScheduleForm/TimePeriod.tsx | 25 + .../{TimeSelect.js => TimeSelect.tsx} | 33 +- .../{Timezone.js => Timezone.tsx} | 32 +- .../ScheduleForm/{helpers.js => helpers.ts} | 9 +- .../ScheduleForm/{index.js => index.tsx} | 53 +- .../Filters/Services/ScheduleForm/styles.css | 2 +- .../Filters/Services/{index.js => index.tsx} | 71 +- .../Filters/{Table.js => Table.tsx} | 78 +- .../components/Header/{Menu.js => Menu.tsx} | 53 +- client/src/components/Header/index.js | 75 - client/src/components/Header/index.tsx | 74 + ...fication.js => AnonymizerNotification.tsx} | 13 +- .../Cells/{ClientCell.js => ClientCell.tsx} | 105 +- client/src/components/Logs/Cells/DateCell.js | 29 - client/src/components/Logs/Cells/DateCell.tsx | 37 + .../Cells/{DomainCell.js => DomainCell.tsx} | 82 +- client/src/components/Logs/Cells/Header.js | 54 - client/src/components/Logs/Cells/Header.tsx | 73 + .../src/components/Logs/Cells/HeaderCell.js | 22 - .../src/components/Logs/Cells/HeaderCell.tsx | 23 + .../src/components/Logs/Cells/IconTooltip.css | 14 +- .../src/components/Logs/Cells/IconTooltip.js | 76 - .../src/components/Logs/Cells/IconTooltip.tsx | 94 + .../src/components/Logs/Cells/ResponseCell.js | 141 - .../components/Logs/Cells/ResponseCell.tsx | 150 + .../Logs/Cells/helpers/{index.js => index.ts} | 6 +- client/src/components/Logs/Cells/index.js | 285 - client/src/components/Logs/Cells/index.tsx | 306 + .../Logs/{Disabled.js => Disabled.tsx} | 5 +- client/src/components/Logs/Filters/Form.js | 200 - client/src/components/Logs/Filters/Form.tsx | 201 + .../Logs/Filters/{index.js => index.tsx} | 51 +- .../{InfiniteTable.js => InfiniteTable.tsx} | 56 +- client/src/components/Logs/Logs.css | 30 +- .../components/Logs/{index.js => index.tsx} | 144 +- .../ProtectionTimer/{index.js => index.ts} | 25 +- .../{AutoClients.js => AutoClients.tsx} | 39 +- .../{ClientsTable.js => ClientsTable.tsx} | 171 +- .../ClientsTable/{index.js => index.ts} | 0 .../src/components/Settings/Clients/Form.js | 491 - .../src/components/Settings/Clients/Form.tsx | 514 + .../Settings/Clients/{Modal.js => Modal.tsx} | 48 +- .../components/Settings/Clients/Service.css | 6 +- .../Settings/Clients/{index.js => index.tsx} | 50 +- .../Clients/{whoisCell.js => whoisCell.tsx} | 17 +- .../components/Settings/Dhcp/FormDHCPv4.js | 162 - .../components/Settings/Dhcp/FormDHCPv4.tsx | 166 + .../components/Settings/Dhcp/FormDHCPv6.js | 117 - .../components/Settings/Dhcp/FormDHCPv6.tsx | 131 + .../components/Settings/Dhcp/Interfaces.js | 108 - .../components/Settings/Dhcp/Interfaces.tsx | 118 + .../Settings/Dhcp/{Leases.js => Leases.tsx} | 63 +- .../Dhcp/StaticLeases/{Form.js => Form.tsx} | 74 +- .../Dhcp/StaticLeases/{Modal.js => Modal.tsx} | 49 +- .../Dhcp/StaticLeases/{index.js => index.tsx} | 100 +- client/src/components/Settings/Dhcp/index.js | 312 - client/src/components/Settings/Dhcp/index.tsx | 321 + .../components/Settings/Dns/Access/Form.js | 123 - .../components/Settings/Dns/Access/Form.tsx | 137 + .../components/Settings/Dns/Access/index.js | 36 - .../components/Settings/Dns/Access/index.tsx | 27 + .../src/components/Settings/Dns/Cache/Form.js | 125 - .../components/Settings/Dns/Cache/Form.tsx | 123 + .../Dns/Cache/{index.js => index.tsx} | 16 +- .../components/Settings/Dns/Config/Form.js | 288 - .../components/Settings/Dns/Config/Form.tsx | 310 + .../Dns/Config/{index.js => index.tsx} | 13 +- .../Upstream/{Examples.js => Examples.tsx} | 116 +- .../components/Settings/Dns/Upstream/Form.js | 317 - .../components/Settings/Dns/Upstream/Form.tsx | 338 + .../Dns/Upstream/{index.js => index.tsx} | 52 +- .../Settings/Dns/{index.js => index.tsx} | 42 +- ...ificateStatus.js => CertificateStatus.tsx} | 39 +- .../Settings/Encryption/{Form.js => Form.tsx} | 162 +- .../{KeyStatus.js => KeyStatus.tsx} | 22 +- .../Encryption/{index.js => index.tsx} | 53 +- .../FiltersConfig/{Form.js => Form.tsx} | 51 +- .../FiltersConfig/{index.js => index.tsx} | 19 +- .../Settings/LogsConfig/{Form.js => Form.tsx} | 101 +- .../LogsConfig/{index.js => index.tsx} | 45 +- client/src/components/Settings/Settings.css | 12 +- .../StatsConfig/{Form.js => Form.tsx} | 75 +- .../StatsConfig/{index.js => index.tsx} | 44 +- .../Settings/{index.js => index.tsx} | 142 +- .../SetupGuide/{index.js => index.tsx} | 31 +- client/src/components/Toasts/Toast.js | 56 - client/src/components/Toasts/Toast.tsx | 59 + client/src/components/Toasts/index.js | 25 - client/src/components/Toasts/index.tsx | 29 + client/src/components/ui/Accordion.css | 32 - client/src/components/ui/Card.css | 10 +- client/src/components/ui/Card.js | 50 - client/src/components/ui/Card.tsx | 33 + .../src/components/ui/{Cell.js => Cell.tsx} | 35 +- .../ui/{CellWrap.js => CellWrap.tsx} | 18 +- client/src/components/ui/Checkbox.css | 6 +- client/src/components/ui/Checkbox.js | 43 - client/src/components/ui/Checkbox.tsx | 59 + .../ui/{Dropdown.js => Dropdown.tsx} | 43 +- ...yptionTopline.js => EncryptionTopline.tsx} | 23 +- client/src/components/ui/Footer.css | 6 +- .../components/ui/{Footer.js => Footer.tsx} | 113 +- client/src/components/ui/Guide/Guide.js | 372 - client/src/components/ui/Guide/Guide.tsx | 385 + ...bileConfigForm.js => MobileConfigForm.tsx} | 82 +- .../ui/Guide/{index.js => index.ts} | 0 client/src/components/ui/Icons.js | 255 - client/src/components/ui/Icons.tsx | 485 + client/src/components/ui/Line.css | 2 +- client/src/components/ui/Line.js | 77 - client/src/components/ui/Line.tsx | 85 + client/src/components/ui/Loading.css | 6 +- .../components/ui/{Loading.js => Loading.tsx} | 14 +- client/src/components/ui/LogsSearchLink.js | 37 - client/src/components/ui/LogsSearchLink.tsx | 36 + client/src/components/ui/Overlay.css | 2 +- client/src/components/ui/PageTitle.js | 25 - client/src/components/ui/PageTitle.tsx | 23 + client/src/components/ui/ReactTable.css | 11 +- client/src/components/ui/Select.css | 22 +- client/src/components/ui/Status.js | 27 - client/src/components/ui/Status.tsx | 27 + client/src/components/ui/{Tab.js => Tab.tsx} | 24 +- client/src/components/ui/Tabler.css | 1659 +- client/src/components/ui/Tabs.css | 2 +- client/src/components/ui/Tabs.js | 52 - client/src/components/ui/Tabs.tsx | 48 + client/src/components/ui/Tooltip.css | 2 +- client/src/components/ui/Tooltip.js | 105 - client/src/components/ui/Tooltip.tsx | 92 + client/src/components/ui/Topline.js | 19 - client/src/components/ui/Topline.tsx | 16 + .../{UpdateOverlay.js => UpdateOverlay.tsx} | 4 +- client/src/components/ui/UpdateTopline.js | 59 - client/src/components/ui/UpdateTopline.tsx | 60 + client/src/components/ui/Version.css | 3 +- client/src/components/ui/Version.js | 51 - client/src/components/ui/Version.tsx | 55 + client/src/components/ui/svg/logo.svg | 8 - client/src/components/ui/svg/logo.tsx | 22 + client/src/configureStore.js | 16 - client/src/configureStore.ts | 16 + client/src/containers/Clients.js | 31 - client/src/containers/Clients.ts | 37 + client/src/containers/CustomRules.js | 26 - client/src/containers/CustomRules.ts | 27 + client/src/containers/Dashboard.js | 25 - client/src/containers/Dashboard.ts | 32 + client/src/containers/{Dhcp.js => Dhcp.ts} | 8 +- client/src/containers/{Dns.js => Dns.ts} | 19 +- .../{DnsAllowlist.js => DnsAllowlist.ts} | 8 +- .../{DnsBlocklist.js => DnsBlocklist.ts} | 8 +- client/src/containers/DnsRewrites.js | 28 - client/src/containers/DnsRewrites.ts | 29 + .../{Encryption.js => Encryption.ts} | 8 +- .../containers/{Settings.js => Settings.ts} | 13 +- .../{SetupGuide.js => SetupGuide.ts} | 9 +- .../helpers/{constants.js => constants.ts} | 108 +- client/src/helpers/filters/filters.js | 356 - client/src/helpers/filters/filters.ts | 356 + client/src/helpers/form.js | 314 - client/src/helpers/form.tsx | 341 + client/src/helpers/helpers.js | 1053 - client/src/helpers/helpers.tsx | 1048 + .../src/helpers/highlightTextareaComments.js | 26 - .../src/helpers/highlightTextareaComments.tsx | 32 + ...StorageHelper.js => localStorageHelper.ts} | 6 +- .../src/helpers/renderFormattedClientCell.js | 70 - .../src/helpers/renderFormattedClientCell.tsx | 74 + client/src/helpers/trackers/trackers.json | 19 +- .../trackers/{trackers.js => trackers.ts} | 12 +- .../src/helpers/trackers/whotracksme_web.json | 8 +- client/src/helpers/twosky.js | 7 - client/src/helpers/twosky.ts | 4 + client/src/helpers/useDebounce.js | 22 - client/src/helpers/useDebounce.ts | 19 + .../helpers/{validators.js => validators.ts} | 79 +- client/src/helpers/{version.js => version.ts} | 2 +- client/src/{i18n.js => i18n.ts} | 44 +- client/src/{index.js => index.tsx} | 4 +- client/src/initialState.ts | 644 + client/src/install/Setup/AddressList.js | 54 - client/src/install/Setup/AddressList.tsx | 55 + .../src/install/Setup/{Auth.js => Auth.tsx} | 48 +- .../Setup/{Controls.js => Controls.tsx} | 90 +- .../install/Setup/{Devices.js => Devices.tsx} | 31 +- .../Setup/{Greeting.js => Greeting.tsx} | 3 + .../Setup/{Progress.js => Progress.tsx} | 18 +- .../Setup/{Settings.js => Settings.tsx} | 303 +- client/src/install/Setup/Setup.css | 8 +- .../install/Setup/{Submit.js => Submit.tsx} | 30 +- .../src/install/Setup/{index.js => index.tsx} | 99 +- client/src/install/{index.js => index.tsx} | 7 +- client/src/login/Login/{Form.js => Form.tsx} | 40 +- client/src/login/Login/Login.css | 6 +- .../src/login/Login/{index.js => index.tsx} | 57 +- client/src/login/{index.js => index.tsx} | 7 +- client/src/reducers/access.js | 56 - client/src/reducers/access.ts | 69 + client/src/reducers/clients.js | 63 - client/src/reducers/clients.ts | 84 + .../reducers/{dashboard.js => dashboard.ts} | 59 +- client/src/reducers/{dhcp.js => dhcp.ts} | 68 +- .../reducers/{dnsConfig.js => dnsConfig.ts} | 28 +- client/src/reducers/encryption.js | 89 - client/src/reducers/encryption.ts | 110 + client/src/reducers/filtering.js | 118 - client/src/reducers/filtering.ts | 178 + client/src/reducers/{index.js => index.ts} | 1 + client/src/reducers/install.js | 80 - client/src/reducers/install.ts | 114 + client/src/reducers/login.js | 24 - client/src/reducers/login.ts | 37 + client/src/reducers/queryLogs.js | 107 - client/src/reducers/queryLogs.ts | 143 + client/src/reducers/rewrites.js | 73 - client/src/reducers/rewrites.ts | 100 + client/src/reducers/services.js | 39 - client/src/reducers/services.ts | 57 + .../src/reducers/{settings.js => settings.ts} | 15 +- client/src/reducers/{stats.js => stats.ts} | 62 +- client/src/reducers/toasts.js | 53 - client/src/reducers/toasts.ts | 54 + client/src/types.d.ts | 5 + client/tsconfig.json | 110 + client/webpack.common.js | 66 +- client/webpack.dev.js | 25 +- client/webpack.prod.js | 29 +- docker/Dockerfile | 2 +- go.mod | 4 +- go.sum | 8 +- internal/filtering/rulelist/rulelist.go | 2 +- internal/home/httpclient.go | 3 +- internal/home/profilehttp.go | 2 +- internal/home/web.go | 3 +- 301 files changed, 32512 insertions(+), 33018 deletions(-) create mode 100644 client/.prettierrc delete mode 100644 client/.stylelintrc create mode 100644 client/.stylelintrc.js create mode 100644 client/babel.config.cjs delete mode 100644 client/babel.config.js create mode 100644 client/global.d.ts delete mode 100644 client/jest.config.js create mode 100644 client/jest.config.mjs rename client/src/__tests__/{helpers.test.js => helpers.test.ts} (80%) rename client/src/actions/{access.js => access.ts} (86%) rename client/src/actions/{clients.js => clients.ts} (90%) rename client/src/actions/{dnsConfig.js => dnsConfig.ts} (93%) rename client/src/actions/{encryption.js => encryption.ts} (93%) rename client/src/actions/{filtering.js => filtering.ts} (63%) rename client/src/actions/{index.js => index.tsx} (66%) rename client/src/actions/{install.js => install.ts} (87%) rename client/src/actions/{login.js => login.ts} (76%) rename client/src/actions/{queryLogs.js => queryLogs.ts} (79%) rename client/src/actions/{rewrites.js => rewrites.ts} (90%) rename client/src/actions/{services.js => services.ts} (89%) rename client/src/actions/{stats.js => stats.ts} (88%) rename client/src/actions/{toasts.js => toasts.ts} (100%) rename client/src/api/{Api.js => Api.ts} (91%) rename client/src/components/App/{index.js => index.tsx} (72%) rename client/src/components/Dashboard/{BlockedDomains.js => BlockedDomains.tsx} (60%) rename client/src/components/Dashboard/{Clients.js => Clients.tsx} (63%) rename client/src/components/Dashboard/{Counters.js => Counters.tsx} (62%) delete mode 100644 client/src/components/Dashboard/DomainCell.js create mode 100644 client/src/components/Dashboard/DomainCell.tsx rename client/src/components/Dashboard/{QueriedDomains.js => QueriedDomains.tsx} (62%) rename client/src/components/Dashboard/{Statistics.js => Statistics.tsx} (53%) rename client/src/components/Dashboard/{StatsCard.js => StatsCard.tsx} (51%) rename client/src/components/Dashboard/{UpstreamAvgTime.js => UpstreamAvgTime.tsx} (66%) rename client/src/components/Dashboard/{UpstreamResponses.js => UpstreamResponses.tsx} (63%) delete mode 100644 client/src/components/Dashboard/index.js create mode 100644 client/src/components/Dashboard/index.tsx delete mode 100644 client/src/components/Filters/Actions.js create mode 100644 client/src/components/Filters/Actions.tsx rename client/src/components/Filters/Check/{Info.js => Info.tsx} (52%) delete mode 100644 client/src/components/Filters/Check/index.js create mode 100644 client/src/components/Filters/Check/index.tsx rename client/src/components/Filters/{CustomRules.js => CustomRules.tsx} (69%) rename client/src/components/Filters/{DnsAllowlist.js => DnsAllowlist.tsx} (74%) rename client/src/components/Filters/{DnsBlocklist.js => DnsBlocklist.tsx} (73%) rename client/src/components/Filters/{Examples.js => Examples.tsx} (57%) delete mode 100644 client/src/components/Filters/Form.js create mode 100644 client/src/components/Filters/Form.tsx rename client/src/components/Filters/{Modal.js => Modal.tsx} (74%) rename client/src/components/Filters/Rewrites/{Form.js => Form.tsx} (73%) rename client/src/components/Filters/Rewrites/{Modal.js => Modal.tsx} (77%) rename client/src/components/Filters/Rewrites/{Table.js => Table.tsx} (81%) rename client/src/components/Filters/Rewrites/{index.js => index.tsx} (75%) rename client/src/components/Filters/Services/{Form.js => Form.tsx} (75%) rename client/src/components/Filters/Services/ScheduleForm/{Modal.js => Modal.tsx} (64%) delete mode 100644 client/src/components/Filters/Services/ScheduleForm/TimePeriod.js create mode 100644 client/src/components/Filters/Services/ScheduleForm/TimePeriod.tsx rename client/src/components/Filters/Services/ScheduleForm/{TimeSelect.js => TimeSelect.tsx} (67%) rename client/src/components/Filters/Services/ScheduleForm/{Timezone.js => Timezone.tsx} (56%) rename client/src/components/Filters/Services/ScheduleForm/{helpers.js => helpers.ts} (81%) rename client/src/components/Filters/Services/ScheduleForm/{index.js => index.tsx} (79%) rename client/src/components/Filters/Services/{index.js => index.tsx} (52%) rename client/src/components/Filters/{Table.js => Table.tsx} (74%) rename client/src/components/Header/{Menu.js => Menu.tsx} (83%) delete mode 100644 client/src/components/Header/index.js create mode 100644 client/src/components/Header/index.tsx rename client/src/components/Logs/{AnonymizerNotification.js => AnonymizerNotification.tsx} (59%) rename client/src/components/Logs/Cells/{ClientCell.js => ClientCell.tsx} (75%) delete mode 100644 client/src/components/Logs/Cells/DateCell.js create mode 100644 client/src/components/Logs/Cells/DateCell.tsx rename client/src/components/Logs/Cells/{DomainCell.js => DomainCell.tsx} (73%) delete mode 100644 client/src/components/Logs/Cells/Header.js create mode 100644 client/src/components/Logs/Cells/Header.tsx delete mode 100644 client/src/components/Logs/Cells/HeaderCell.js create mode 100644 client/src/components/Logs/Cells/HeaderCell.tsx delete mode 100644 client/src/components/Logs/Cells/IconTooltip.js create mode 100644 client/src/components/Logs/Cells/IconTooltip.tsx delete mode 100644 client/src/components/Logs/Cells/ResponseCell.js create mode 100644 client/src/components/Logs/Cells/ResponseCell.tsx rename client/src/components/Logs/Cells/helpers/{index.js => index.ts} (73%) delete mode 100644 client/src/components/Logs/Cells/index.js create mode 100644 client/src/components/Logs/Cells/index.tsx rename client/src/components/Logs/{Disabled.js => Disabled.tsx} (95%) delete mode 100644 client/src/components/Logs/Filters/Form.js create mode 100644 client/src/components/Logs/Filters/Form.tsx rename client/src/components/Logs/Filters/{index.js => index.tsx} (50%) rename client/src/components/Logs/{InfiniteTable.js => InfiniteTable.tsx} (69%) rename client/src/components/Logs/{index.js => index.tsx} (68%) rename client/src/components/ProtectionTimer/{index.js => index.ts} (74%) rename client/src/components/Settings/Clients/{AutoClients.js => AutoClients.tsx} (83%) rename client/src/components/Settings/Clients/ClientsTable/{ClientsTable.js => ClientsTable.tsx} (75%) rename client/src/components/Settings/Clients/ClientsTable/{index.js => index.ts} (100%) delete mode 100644 client/src/components/Settings/Clients/Form.js create mode 100644 client/src/components/Settings/Clients/Form.tsx rename client/src/components/Settings/Clients/{Modal.js => Modal.tsx} (71%) rename client/src/components/Settings/Clients/{index.js => index.tsx} (79%) rename client/src/components/Settings/Clients/{whoisCell.js => whoisCell.tsx} (73%) delete mode 100644 client/src/components/Settings/Dhcp/FormDHCPv4.js create mode 100644 client/src/components/Settings/Dhcp/FormDHCPv4.tsx delete mode 100644 client/src/components/Settings/Dhcp/FormDHCPv6.js create mode 100644 client/src/components/Settings/Dhcp/FormDHCPv6.tsx delete mode 100644 client/src/components/Settings/Dhcp/Interfaces.js create mode 100644 client/src/components/Settings/Dhcp/Interfaces.tsx rename client/src/components/Settings/Dhcp/{Leases.js => Leases.tsx} (74%) rename client/src/components/Settings/Dhcp/StaticLeases/{Form.js => Form.tsx} (69%) rename client/src/components/Settings/Dhcp/StaticLeases/{Modal.js => Modal.tsx} (66%) rename client/src/components/Settings/Dhcp/StaticLeases/{index.js => index.tsx} (73%) delete mode 100644 client/src/components/Settings/Dhcp/index.js create mode 100644 client/src/components/Settings/Dhcp/index.tsx delete mode 100644 client/src/components/Settings/Dns/Access/Form.js create mode 100644 client/src/components/Settings/Dns/Access/Form.tsx delete mode 100644 client/src/components/Settings/Dns/Access/index.js create mode 100644 client/src/components/Settings/Dns/Access/index.tsx delete mode 100644 client/src/components/Settings/Dns/Cache/Form.js create mode 100644 client/src/components/Settings/Dns/Cache/Form.tsx rename client/src/components/Settings/Dns/Cache/{index.js => index.tsx} (81%) delete mode 100644 client/src/components/Settings/Dns/Config/Form.js create mode 100644 client/src/components/Settings/Dns/Config/Form.tsx rename client/src/components/Settings/Dns/Config/{index.js => index.tsx} (85%) rename client/src/components/Settings/Dns/Upstream/{Examples.js => Examples.tsx} (69%) delete mode 100644 client/src/components/Settings/Dns/Upstream/Form.js create mode 100644 client/src/components/Settings/Dns/Upstream/Form.tsx rename client/src/components/Settings/Dns/Upstream/{index.js => index.tsx} (51%) rename client/src/components/Settings/Dns/{index.js => index.tsx} (55%) rename client/src/components/Settings/Encryption/{CertificateStatus.js => CertificateStatus.tsx} (68%) rename client/src/components/Settings/Encryption/{Form.js => Form.tsx} (87%) rename client/src/components/Settings/Encryption/{KeyStatus.js => KeyStatus.tsx} (53%) rename client/src/components/Settings/Encryption/{index.js => index.tsx} (80%) rename client/src/components/Settings/FiltersConfig/{Form.js => Form.tsx} (70%) rename client/src/components/Settings/FiltersConfig/{index.js => index.tsx} (74%) rename client/src/components/Settings/LogsConfig/{Form.js => Form.tsx} (76%) rename client/src/components/Settings/LogsConfig/{index.js => index.tsx} (73%) rename client/src/components/Settings/StatsConfig/{Form.js => Form.tsx} (81%) rename client/src/components/Settings/StatsConfig/{index.js => index.tsx} (71%) rename client/src/components/Settings/{index.js => index.tsx} (69%) rename client/src/components/SetupGuide/{index.js => index.tsx} (67%) delete mode 100644 client/src/components/Toasts/Toast.js create mode 100644 client/src/components/Toasts/Toast.tsx delete mode 100644 client/src/components/Toasts/index.js create mode 100644 client/src/components/Toasts/index.tsx delete mode 100644 client/src/components/ui/Accordion.css delete mode 100644 client/src/components/ui/Card.js create mode 100644 client/src/components/ui/Card.tsx rename client/src/components/ui/{Cell.js => Cell.tsx} (52%) rename client/src/components/ui/{CellWrap.js => CellWrap.tsx} (62%) delete mode 100644 client/src/components/ui/Checkbox.js create mode 100644 client/src/components/ui/Checkbox.tsx rename client/src/components/ui/{Dropdown.js => Dropdown.tsx} (68%) rename client/src/components/ui/{EncryptionTopline.js => EncryptionTopline.tsx} (75%) rename client/src/components/ui/{Footer.js => Footer.tsx} (57%) delete mode 100644 client/src/components/ui/Guide/Guide.js create mode 100644 client/src/components/ui/Guide/Guide.tsx rename client/src/components/ui/Guide/{MobileConfigForm.js => MobileConfigForm.tsx} (72%) rename client/src/components/ui/Guide/{index.js => index.ts} (100%) delete mode 100644 client/src/components/ui/Icons.js create mode 100644 client/src/components/ui/Icons.tsx delete mode 100644 client/src/components/ui/Line.js create mode 100644 client/src/components/ui/Line.tsx rename client/src/components/ui/{Loading.js => Loading.tsx} (62%) delete mode 100644 client/src/components/ui/LogsSearchLink.js create mode 100644 client/src/components/ui/LogsSearchLink.tsx delete mode 100644 client/src/components/ui/PageTitle.js create mode 100644 client/src/components/ui/PageTitle.tsx delete mode 100644 client/src/components/ui/Status.js create mode 100644 client/src/components/ui/Status.tsx rename client/src/components/ui/{Tab.js => Tab.tsx} (59%) delete mode 100644 client/src/components/ui/Tabs.js create mode 100644 client/src/components/ui/Tabs.tsx delete mode 100644 client/src/components/ui/Tooltip.js create mode 100644 client/src/components/ui/Tooltip.tsx delete mode 100644 client/src/components/ui/Topline.js create mode 100644 client/src/components/ui/Topline.tsx rename client/src/components/ui/{UpdateOverlay.js => UpdateOverlay.tsx} (77%) delete mode 100644 client/src/components/ui/UpdateTopline.js create mode 100644 client/src/components/ui/UpdateTopline.tsx delete mode 100644 client/src/components/ui/Version.js create mode 100644 client/src/components/ui/Version.tsx delete mode 100644 client/src/components/ui/svg/logo.svg create mode 100644 client/src/components/ui/svg/logo.tsx delete mode 100644 client/src/configureStore.js create mode 100644 client/src/configureStore.ts delete mode 100644 client/src/containers/Clients.js create mode 100644 client/src/containers/Clients.ts delete mode 100644 client/src/containers/CustomRules.js create mode 100644 client/src/containers/CustomRules.ts delete mode 100644 client/src/containers/Dashboard.js create mode 100644 client/src/containers/Dashboard.ts rename client/src/containers/{Dhcp.js => Dhcp.ts} (83%) rename client/src/containers/{Dns.js => Dns.ts} (63%) rename client/src/containers/{DnsAllowlist.js => DnsAllowlist.ts} (83%) rename client/src/containers/{DnsBlocklist.js => DnsBlocklist.ts} (83%) delete mode 100644 client/src/containers/DnsRewrites.js create mode 100644 client/src/containers/DnsRewrites.ts rename client/src/containers/{Encryption.js => Encryption.ts} (75%) rename client/src/containers/{Settings.js => Settings.ts} (81%) rename client/src/containers/{SetupGuide.js => SetupGuide.ts} (65%) rename client/src/helpers/{constants.js => constants.ts} (80%) delete mode 100644 client/src/helpers/filters/filters.js create mode 100644 client/src/helpers/filters/filters.ts delete mode 100644 client/src/helpers/form.js create mode 100644 client/src/helpers/form.tsx delete mode 100644 client/src/helpers/helpers.js create mode 100644 client/src/helpers/helpers.tsx delete mode 100644 client/src/helpers/highlightTextareaComments.js create mode 100644 client/src/helpers/highlightTextareaComments.tsx rename client/src/helpers/{localStorageHelper.js => localStorageHelper.ts} (93%) delete mode 100644 client/src/helpers/renderFormattedClientCell.js create mode 100644 client/src/helpers/renderFormattedClientCell.tsx rename client/src/helpers/trackers/{trackers.js => trackers.ts} (91%) delete mode 100644 client/src/helpers/twosky.js create mode 100644 client/src/helpers/twosky.ts delete mode 100644 client/src/helpers/useDebounce.js create mode 100644 client/src/helpers/useDebounce.ts rename client/src/helpers/{validators.js => validators.ts} (80%) rename client/src/helpers/{version.js => version.ts} (87%) rename client/src/{i18n.js => i18n.ts} (82%) rename client/src/{index.js => index.tsx} (76%) create mode 100644 client/src/initialState.ts delete mode 100644 client/src/install/Setup/AddressList.js create mode 100644 client/src/install/Setup/AddressList.tsx rename client/src/install/Setup/{Auth.js => Auth.tsx} (82%) rename client/src/install/Setup/{Controls.js => Controls.tsx} (55%) rename client/src/install/Setup/{Devices.js => Devices.tsx} (75%) rename client/src/install/Setup/{Greeting.js => Greeting.tsx} (99%) rename client/src/install/Setup/{Progress.js => Progress.tsx} (51%) rename client/src/install/Setup/{Settings.js => Settings.tsx} (59%) rename client/src/install/Setup/{Submit.js => Submit.tsx} (68%) rename client/src/install/Setup/{index.js => index.tsx} (69%) rename client/src/install/{index.js => index.tsx} (80%) rename client/src/login/Login/{Form.js => Form.tsx} (76%) rename client/src/login/Login/{index.js => index.tsx} (71%) rename client/src/login/{index.js => index.tsx} (81%) delete mode 100644 client/src/reducers/access.js create mode 100644 client/src/reducers/access.ts delete mode 100644 client/src/reducers/clients.js create mode 100644 client/src/reducers/clients.ts rename client/src/reducers/{dashboard.js => dashboard.ts} (71%) rename client/src/reducers/{dhcp.js => dhcp.ts} (66%) rename client/src/reducers/{dnsConfig.js => dnsConfig.ts} (69%) delete mode 100644 client/src/reducers/encryption.js create mode 100644 client/src/reducers/encryption.ts delete mode 100644 client/src/reducers/filtering.js create mode 100644 client/src/reducers/filtering.ts rename client/src/reducers/{index.js => index.ts} (99%) delete mode 100644 client/src/reducers/install.js create mode 100644 client/src/reducers/install.ts delete mode 100644 client/src/reducers/login.js create mode 100644 client/src/reducers/login.ts delete mode 100644 client/src/reducers/queryLogs.js create mode 100644 client/src/reducers/queryLogs.ts delete mode 100644 client/src/reducers/rewrites.js create mode 100644 client/src/reducers/rewrites.ts delete mode 100644 client/src/reducers/services.js create mode 100644 client/src/reducers/services.ts rename client/src/reducers/{settings.js => settings.ts} (73%) rename client/src/reducers/{stats.js => stats.ts} (64%) delete mode 100644 client/src/reducers/toasts.js create mode 100644 client/src/reducers/toasts.ts create mode 100644 client/src/types.d.ts create mode 100644 client/tsconfig.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 569d39a1..d515e3f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,14 +22,9 @@ See also the [v0.107.51 GitHub milestone][ms-v0.107.51]. NOTE: Add new changes BELOW THIS COMMENT. --> - ### Changed -- The HTTP server's write timeout has been increased from 1 minute to 5 minutes - to match the one used by AdGuard Home's HTTP client to fetch filtering-list - data ([#7041]). - -[#7041]: https://github.com/AdguardTeam/AdGuardHome/issues/7041 +Frontend rewritten in TypeScript, added Node 18 support