From 3134c8101d214adf84dd2eebb2b71ba83990b66b Mon Sep 17 00:00:00 2001 From: Mcat12 Date: Thu, 24 Jan 2019 20:57:51 -0800 Subject: [PATCH] Convert dashboard components to TypeScript Also fixed the format check to use TypeScript files. Signed-off-by: Mcat12 --- package-lock.json | 6 + package.json | 5 +- src/components/common/Alert.tsx | 6 +- src/components/common/Sidebar.tsx | 13 +- .../common/__tests__/Sidebar.test.tsx | 2 +- .../{ChartTooltip.js => ChartTooltip.tsx} | 42 +++--- .../{ClientsGraph.js => ClientsGraph.tsx} | 54 ++++---- ...ghnutChart.js => GenericDoughnutChart.tsx} | 102 ++++++++------ .../{QueriesGraph.js => QueriesGraph.tsx} | 60 +++++---- ...QueryTypesChart.js => QueryTypesChart.tsx} | 4 +- .../{SummaryStats.js => SummaryStats.tsx} | 36 +++-- .../{TopBlocked.js => TopBlocked.tsx} | 18 ++- .../{TopClients.js => TopClients.tsx} | 18 ++- .../{TopDomains.js => TopDomains.tsx} | 18 ++- .../dashboard/{TopTable.js => TopTable.tsx} | 124 ++++++++++-------- .../{UpstreamsChart.js => UpstreamsChart.tsx} | 4 +- ...ntsGraph.test.js => ClientsGraph.test.tsx} | 9 +- ....test.js => GenericDoughnutChart.test.tsx} | 7 +- ...aryStats.test.js => SummaryStats.test.tsx} | 9 +- ...TopBlocked.test.js => TopBlocked.test.tsx} | 5 +- ...TopClients.test.js => TopClients.test.tsx} | 5 +- ...TopDomains.test.js => TopDomains.test.tsx} | 3 +- .../{TopTable.test.js => TopTable.test.tsx} | 0 src/components/list/DomainList.tsx | 4 +- src/components/list/ListPage.tsx | 22 ++-- .../list/__tests__/DomainInput.test.tsx | 5 +- .../list/__tests__/ListPage.test.tsx | 6 +- src/components/log/QueryLog.tsx | 14 +- .../ConditionalForwardingSettings.tsx | 12 +- src/components/settings/DHCPInfo.tsx | 11 +- src/components/settings/DNSInfo.tsx | 4 +- src/components/settings/DnsListItem.tsx | 2 +- src/components/settings/DnsListNewItem.tsx | 5 +- src/components/settings/FTLInfo.tsx | 6 +- src/components/settings/VersionCard.tsx | 2 +- src/containers/Full.tsx | 8 +- src/setupTests.tsx | 5 +- src/util/__tests__/validate.test.tsx | 8 +- src/util/api.tsx | 108 +++++++++++++-- src/views/Login.tsx | 14 +- 40 files changed, 509 insertions(+), 277 deletions(-) rename src/components/dashboard/{ChartTooltip.js => ChartTooltip.tsx} (79%) rename src/components/dashboard/{ClientsGraph.js => ClientsGraph.tsx} (79%) rename src/components/dashboard/{GenericDoughnutChart.js => GenericDoughnutChart.tsx} (72%) rename src/components/dashboard/{QueriesGraph.js => QueriesGraph.tsx} (79%) rename src/components/dashboard/{QueryTypesChart.js => QueryTypesChart.tsx} (88%) rename src/components/dashboard/{SummaryStats.js => SummaryStats.tsx} (85%) rename src/components/dashboard/{TopBlocked.js => TopBlocked.tsx} (79%) rename src/components/dashboard/{TopClients.js => TopClients.tsx} (80%) rename src/components/dashboard/{TopDomains.js => TopDomains.tsx} (79%) rename src/components/dashboard/{TopTable.js => TopTable.tsx} (54%) rename src/components/dashboard/{UpstreamsChart.js => UpstreamsChart.tsx} (88%) rename src/components/dashboard/__tests__/{ClientsGraph.test.js => ClientsGraph.test.tsx} (91%) rename src/components/dashboard/__tests__/{GenericDoughnutChart.test.js => GenericDoughnutChart.test.tsx} (95%) rename src/components/dashboard/__tests__/{SummaryStats.test.js => SummaryStats.test.tsx} (93%) rename src/components/dashboard/__tests__/{TopBlocked.test.js => TopBlocked.test.tsx} (89%) rename src/components/dashboard/__tests__/{TopClients.test.js => TopClients.test.tsx} (90%) rename src/components/dashboard/__tests__/{TopDomains.test.js => TopDomains.test.tsx} (93%) rename src/components/dashboard/__tests__/{TopTable.test.js => TopTable.test.tsx} (100%) diff --git a/package-lock.json b/package-lock.json index e13e0a3..f4fd821 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1378,6 +1378,12 @@ "loader-utils": "^1.1.0" } }, + "@types/chart.js": { + "version": "2.7.42", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.7.42.tgz", + "integrity": "sha512-+0v+PV2J9wsV7u36Vqt5Oke7ugtiZqNeYJgNk5mgNMkEkqtjxo2Q9N5Q9znHlgmXeOTfQL6e1sfcAbTnPHAzlA==", + "dev": true + }, "@types/cheerio": { "version": "0.22.10", "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.10.tgz", diff --git a/package.json b/package.json index e8e5d45..5e9baf9 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "private": true, "homepage": "/admin", "devDependencies": { + "@types/chart.js": "^2.7.42", "@types/enzyme": "^3.1.15", "@types/enzyme-adapter-react-16": "^1.0.3", "@types/fetch-mock": "^7.2.1", @@ -76,8 +77,8 @@ "update-translations": "node update-translations.js", "test": "react-scripts test --env=jsdom", "eject": "react-scripts eject", - "format": "prettier --write \"src/**/*.js\"", - "check-format": "prettier --list-different \"src/**/*.js\"" + "format": "prettier --write \"src/**/*.tsx\"", + "check-format": "prettier --list-different \"src/**/*.tsx\"" }, "browserslist": [ ">0.2%", diff --git a/src/components/common/Alert.tsx b/src/components/common/Alert.tsx index 42f5be5..a36f131 100644 --- a/src/components/common/Alert.tsx +++ b/src/components/common/Alert.tsx @@ -13,9 +13,9 @@ import React, { FunctionComponent } from "react"; export type AlertType = "info" | "success" | "danger"; export interface AlertProps { - type: AlertType, - onClick: () => void, - message: string + type: AlertType; + onClick: () => void; + message: string; } const Alert: FunctionComponent = (props: AlertProps) => { diff --git a/src/components/common/Sidebar.tsx b/src/components/common/Sidebar.tsx index dedb181..e7dbf4d 100644 --- a/src/components/common/Sidebar.tsx +++ b/src/components/common/Sidebar.tsx @@ -17,7 +17,12 @@ import { mobileSidebarHide } from "./Header"; import api from "../../util/api"; import StatusBadge from "./StatusBadge"; import NavDropdown from "./NavDropdown"; -import { RouteCustomItem, RouteData, RouteGroup, RouteItem } from "../../routes"; +import { + RouteCustomItem, + RouteData, + RouteGroup, + RouteItem +} from "../../routes"; import i18next from "i18next"; export const isDropdownOpen = ( @@ -88,11 +93,7 @@ export interface SidebarProps extends WithNamespaces { location: Location; } -const Sidebar = ({ - items, - t, - location -}: SidebarProps) => { +const Sidebar = ({ items, t, location }: SidebarProps) => { return (