diff --git a/.eslintrc.json b/.eslintrc.json
index 6ca321a..eb2f2be 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -38,6 +38,8 @@
"react/display-name": 0,
"react/prop-types": 0,
+ "react/jsx-uses-react": "off",
+ "react/react-in-jsx-scope": "off",
"tsdoc/syntax": "warn",
"@typescript-eslint/no-explicit-any": 0,
diff --git a/src/App.tsx b/src/App.tsx
index c3c796c..f63a6c4 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { Suspense } from "react";
+import { Suspense } from "react";
import { BrowserRouter as Router } from "react-router-dom";
import { Provider } from "react-redux";
diff --git a/src/__tests__/App.tsx b/src/__tests__/App.tsx
index fbc005b..0bc7842 100644
--- a/src/__tests__/App.tsx
+++ b/src/__tests__/App.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { render, screen } from "@testing-library/react";
import App from "@app";
diff --git a/src/components/ConditionalLink.tsx b/src/components/ConditionalLink.tsx
index 8e07220..d7b87ce 100644
--- a/src/components/ConditionalLink.tsx
+++ b/src/components/ConditionalLink.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { FC } from "react";
+import { FC } from "react";
import { Link, useRouteMatch } from "react-router-dom";
diff --git a/src/components/CopyInputButton.tsx b/src/components/CopyInputButton.tsx
index ac69451..313cee0 100644
--- a/src/components/CopyInputButton.tsx
+++ b/src/components/CopyInputButton.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState } from "react";
+import { useState } from "react";
import { Tooltip, Button, ButtonProps, Input } from "antd";
import { CopyOutlined } from "@ant-design/icons";
diff --git a/src/components/DateTime.tsx b/src/components/DateTime.tsx
index 48e0ab8..8f04988 100644
--- a/src/components/DateTime.tsx
+++ b/src/components/DateTime.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { Tooltip } from "antd";
diff --git a/src/components/Flag.tsx b/src/components/Flag.tsx
index 81bcb9e..ed1d0e6 100644
--- a/src/components/Flag.tsx
+++ b/src/components/Flag.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { HTMLProps } from "react";
+import { HTMLProps } from "react";
import classNames from "classnames";
import "./Flag.css";
diff --git a/src/components/HelpIcon.tsx b/src/components/HelpIcon.tsx
index 4be61cd..78f5104 100644
--- a/src/components/HelpIcon.tsx
+++ b/src/components/HelpIcon.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { Tooltip } from "antd";
import { QuestionCircleOutlined } from "@ant-design/icons";
diff --git a/src/components/OptionalField.tsx b/src/components/OptionalField.tsx
index 1f7bab0..e81b781 100644
--- a/src/components/OptionalField.tsx
+++ b/src/components/OptionalField.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { Typography } from "antd";
import { CopyConfig } from "./types";
diff --git a/src/components/Statistic.tsx b/src/components/Statistic.tsx
index 881fe72..7ddeeaa 100644
--- a/src/components/Statistic.tsx
+++ b/src/components/Statistic.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { useTranslation } from "react-i18next";
diff --git a/src/components/addresses/ContextualAddress.tsx b/src/components/addresses/ContextualAddress.tsx
index b3dfd21..3e5570a 100644
--- a/src/components/addresses/ContextualAddress.tsx
+++ b/src/components/addresses/ContextualAddress.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { Tooltip, Typography } from "antd";
diff --git a/src/components/addresses/picker/AddressPicker.tsx b/src/components/addresses/picker/AddressPicker.tsx
index 75c1a9e..45a3291 100644
--- a/src/components/addresses/picker/AddressPicker.tsx
+++ b/src/components/addresses/picker/AddressPicker.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useMemo } from "react";
+import { useState, useMemo } from "react";
import classNames from "classnames";
import { AutoComplete, Form } from "antd";
import { Rule } from "antd/lib/form";
diff --git a/src/components/addresses/picker/Header.tsx b/src/components/addresses/picker/Header.tsx
index e63bdae..171f663 100644
--- a/src/components/addresses/picker/Header.tsx
+++ b/src/components/addresses/picker/Header.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { OptionChildren } from "./options";
diff --git a/src/components/addresses/picker/Item.tsx b/src/components/addresses/picker/Item.tsx
index a60b085..1467415 100644
--- a/src/components/addresses/picker/Item.tsx
+++ b/src/components/addresses/picker/Item.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Wallet } from "@wallets";
import { NameParts } from "@utils/currency";
diff --git a/src/components/auth/AuthMasterPasswordPopover.tsx b/src/components/auth/AuthMasterPasswordPopover.tsx
index fad2f6c..66e05b8 100644
--- a/src/components/auth/AuthMasterPasswordPopover.tsx
+++ b/src/components/auth/AuthMasterPasswordPopover.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useRef, FC } from "react";
+import { useState, useRef, FC } from "react";
import { Popover, Button, Input, Form } from "antd";
import { TooltipPlacement } from "antd/lib/tooltip";
diff --git a/src/components/auth/FakeUsernameInput.tsx b/src/components/auth/FakeUsernameInput.tsx
index ffdae38..00b6c50 100644
--- a/src/components/auth/FakeUsernameInput.tsx
+++ b/src/components/auth/FakeUsernameInput.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Input } from "antd";
/// Fake username field for master password inputs, to trick autofill.
diff --git a/src/components/auth/MasterPasswordInput.tsx b/src/components/auth/MasterPasswordInput.tsx
index 915b14c..1e29ea8 100644
--- a/src/components/auth/MasterPasswordInput.tsx
+++ b/src/components/auth/MasterPasswordInput.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Input } from "antd";
interface Props {
diff --git a/src/components/auth/SetMasterPasswordModal.tsx b/src/components/auth/SetMasterPasswordModal.tsx
index ac0b45d..854b794 100644
--- a/src/components/auth/SetMasterPasswordModal.tsx
+++ b/src/components/auth/SetMasterPasswordModal.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useRef } from "react";
+import { useRef } from "react";
import { Modal, Form, Input, Button } from "antd";
import { useTranslation, Trans } from "react-i18next";
diff --git a/src/components/krist/KristSymbol.tsx b/src/components/krist/KristSymbol.tsx
index 732ca51..3201e06 100644
--- a/src/components/krist/KristSymbol.tsx
+++ b/src/components/krist/KristSymbol.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import Icon from "@ant-design/icons";
export const KristSymbolSvg = (): JSX.Element => (
diff --git a/src/components/krist/KristValue.tsx b/src/components/krist/KristValue.tsx
index b633cda..9cd30cc 100644
--- a/src/components/krist/KristValue.tsx
+++ b/src/components/krist/KristValue.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { useSelector } from "react-redux";
diff --git a/src/components/names/KristNameLink.tsx b/src/components/names/KristNameLink.tsx
index 6e8440e..df05013 100644
--- a/src/components/names/KristNameLink.tsx
+++ b/src/components/names/KristNameLink.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { Typography } from "antd";
diff --git a/src/components/names/NameARecordLink.tsx b/src/components/names/NameARecordLink.tsx
index 7abe915..d7e605d 100644
--- a/src/components/names/NameARecordLink.tsx
+++ b/src/components/names/NameARecordLink.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { useSelector } from "react-redux";
diff --git a/src/components/results/APIErrorResult.tsx b/src/components/results/APIErrorResult.tsx
index c0e3cec..77eb9e6 100644
--- a/src/components/results/APIErrorResult.tsx
+++ b/src/components/results/APIErrorResult.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { FrownOutlined, ExclamationCircleOutlined, QuestionCircleOutlined } from "@ant-design/icons";
diff --git a/src/components/results/NoWalletsResult.tsx b/src/components/results/NoWalletsResult.tsx
index e050dcc..9cf6fa3 100644
--- a/src/components/results/NoWalletsResult.tsx
+++ b/src/components/results/NoWalletsResult.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { Button } from "antd";
import { InfoCircleOutlined } from "@ant-design/icons";
diff --git a/src/components/transactions/TransactionConciseMetadata.tsx b/src/components/transactions/TransactionConciseMetadata.tsx
index b1bc354..6e4b0db 100644
--- a/src/components/transactions/TransactionConciseMetadata.tsx
+++ b/src/components/transactions/TransactionConciseMetadata.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { useSelector } from "react-redux";
diff --git a/src/components/transactions/TransactionItem.tsx b/src/components/transactions/TransactionItem.tsx
index 8c8eeff..d4a7db5 100644
--- a/src/components/transactions/TransactionItem.tsx
+++ b/src/components/transactions/TransactionItem.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { Row, Col, Tooltip, Grid } from "antd";
diff --git a/src/components/transactions/TransactionSummary.tsx b/src/components/transactions/TransactionSummary.tsx
index cd6288a..ccb234b 100644
--- a/src/components/transactions/TransactionSummary.tsx
+++ b/src/components/transactions/TransactionSummary.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Row } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/components/transactions/TransactionType.tsx b/src/components/transactions/TransactionType.tsx
index 100f9a6..036866a 100644
--- a/src/components/transactions/TransactionType.tsx
+++ b/src/components/transactions/TransactionType.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { useTranslation } from "react-i18next";
diff --git a/src/components/types.ts b/src/components/types.ts
index 4251779..1b77107 100644
--- a/src/components/types.ts
+++ b/src/components/types.ts
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
/** CopyConfig from ant-design (antd/lib/typography/Base.d.ts) */
export interface CopyConfig {
diff --git a/src/components/wallets/SelectWalletCategory.tsx b/src/components/wallets/SelectWalletCategory.tsx
index 4c642ea..a20bf76 100644
--- a/src/components/wallets/SelectWalletCategory.tsx
+++ b/src/components/wallets/SelectWalletCategory.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { FC, useState, useMemo } from "react";
+import { FC, useState, useMemo } from "react";
import { Select, Input, Button, Typography, Divider } from "antd";
import { PlusOutlined } from "@ant-design/icons";
diff --git a/src/components/wallets/SelectWalletFormat.tsx b/src/components/wallets/SelectWalletFormat.tsx
index 4439425..941d50e 100644
--- a/src/components/wallets/SelectWalletFormat.tsx
+++ b/src/components/wallets/SelectWalletFormat.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Select } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/global/AppHotkeys.tsx b/src/global/AppHotkeys.tsx
index 96c5a37..70d1c92 100644
--- a/src/global/AppHotkeys.tsx
+++ b/src/global/AppHotkeys.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { useHistory } from "react-router-dom";
import { GlobalHotKeys } from "react-hotkeys";
diff --git a/src/global/AppLoading.tsx b/src/global/AppLoading.tsx
index a3482a9..639a927 100644
--- a/src/global/AppLoading.tsx
+++ b/src/global/AppLoading.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
export function AppLoading(): JSX.Element {
return
diff --git a/src/global/AppRouter.tsx b/src/global/AppRouter.tsx
index bd2f78a..d55ab4b 100644
--- a/src/global/AppRouter.tsx
+++ b/src/global/AppRouter.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Switch, Route } from "react-router-dom";
import { DashboardPage } from "@pages/dashboard/DashboardPage";
diff --git a/src/global/AppServices.tsx b/src/global/AppServices.tsx
index d035ed8..0cd78d9 100644
--- a/src/global/AppServices.tsx
+++ b/src/global/AppServices.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { SyncWallets } from "@comp/wallets/SyncWallets";
import { ForcedAuth } from "./ForcedAuth";
diff --git a/src/global/ws/WebsocketProvider.tsx b/src/global/ws/WebsocketProvider.tsx
index 45cbb75..801a980 100644
--- a/src/global/ws/WebsocketProvider.tsx
+++ b/src/global/ws/WebsocketProvider.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { FC, createContext, useState, Dispatch, SetStateAction } from "react";
+import { FC, createContext, useState, Dispatch, SetStateAction } from "react";
import { WebsocketConnection } from "./WebsocketConnection";
diff --git a/src/index.tsx b/src/index.tsx
index 3a17c07..a28237d 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -3,7 +3,6 @@
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
import "./utils/setup";
-import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
diff --git a/src/layout/AppLayout.tsx b/src/layout/AppLayout.tsx
index 09d8b57..1c2ccc8 100644
--- a/src/layout/AppLayout.tsx
+++ b/src/layout/AppLayout.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState } from "react";
+import { useState } from "react";
import { Layout, Grid } from "antd";
import { AppHeader } from "./nav/AppHeader";
diff --git a/src/layout/PageLayout.tsx b/src/layout/PageLayout.tsx
index 7aa482d..cf4a6a0 100644
--- a/src/layout/PageLayout.tsx
+++ b/src/layout/PageLayout.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { FC, useEffect } from "react";
+import { FC, useEffect } from "react";
import classNames from "classnames";
import { PageHeader } from "antd";
diff --git a/src/layout/nav/AppHeader.tsx b/src/layout/nav/AppHeader.tsx
index 33820e8..1b21729 100644
--- a/src/layout/nav/AppHeader.tsx
+++ b/src/layout/nav/AppHeader.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Layout, Menu, Grid } from "antd";
import { SendOutlined, DownloadOutlined, MenuOutlined, SettingOutlined } from "@ant-design/icons";
diff --git a/src/layout/nav/Brand.tsx b/src/layout/nav/Brand.tsx
index 1026c05..36e74ab 100644
--- a/src/layout/nav/Brand.tsx
+++ b/src/layout/nav/Brand.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Tag } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/layout/nav/ConnectionIndicator.tsx b/src/layout/nav/ConnectionIndicator.tsx
index ca96676..db3e02c 100644
--- a/src/layout/nav/ConnectionIndicator.tsx
+++ b/src/layout/nav/ConnectionIndicator.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Tooltip } from "antd";
import { useSelector } from "react-redux";
diff --git a/src/layout/nav/CymbalIndicator.tsx b/src/layout/nav/CymbalIndicator.tsx
index 681a3ad..f7ae690 100644
--- a/src/layout/nav/CymbalIndicator.tsx
+++ b/src/layout/nav/CymbalIndicator.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Typography } from "antd";
import Icon from "@ant-design/icons";
diff --git a/src/layout/nav/Search.tsx b/src/layout/nav/Search.tsx
index ab1163c..47ab1d6 100644
--- a/src/layout/nav/Search.tsx
+++ b/src/layout/nav/Search.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useMemo, useRef, useEffect, useCallback, MutableRefObject, Dispatch, SetStateAction, ReactNode } from "react";
+import { useState, useMemo, useRef, useEffect, useCallback, MutableRefObject, Dispatch, SetStateAction, ReactNode } from "react";
import { AutoComplete, Input } from "antd";
import { RefSelectProps } from "antd/lib/select";
diff --git a/src/layout/nav/SearchResults.tsx b/src/layout/nav/SearchResults.tsx
index 4b8d3bd..dede89c 100644
--- a/src/layout/nav/SearchResults.tsx
+++ b/src/layout/nav/SearchResults.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { ReactNode } from "react";
+import { ReactNode } from "react";
import { Typography, Spin } from "antd";
import { LoadingOutlined } from "@ant-design/icons";
diff --git a/src/layout/sidebar/ServiceWorkerCheck.tsx b/src/layout/sidebar/ServiceWorkerCheck.tsx
index 97c1725..95de563 100644
--- a/src/layout/sidebar/ServiceWorkerCheck.tsx
+++ b/src/layout/sidebar/ServiceWorkerCheck.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import { Button } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/layout/sidebar/Sidebar.tsx b/src/layout/sidebar/Sidebar.tsx
index 798350d..ca9f094 100644
--- a/src/layout/sidebar/Sidebar.tsx
+++ b/src/layout/sidebar/Sidebar.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import { Layout, Menu, MenuItemProps } from "antd";
import { HomeOutlined, WalletOutlined, TeamOutlined, BankOutlined, TagsOutlined, SketchOutlined, BuildOutlined, StockOutlined } from "@ant-design/icons";
diff --git a/src/layout/sidebar/SidebarFooter.tsx b/src/layout/sidebar/SidebarFooter.tsx
index 1e90d0b..e9ca428 100644
--- a/src/layout/sidebar/SidebarFooter.tsx
+++ b/src/layout/sidebar/SidebarFooter.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { useTranslation, Trans } from "react-i18next";
import { getAuthorInfo, useHostInfo } from "@utils/credits";
diff --git a/src/layout/sidebar/SidebarTotalBalance.tsx b/src/layout/sidebar/SidebarTotalBalance.tsx
index 8ed727f..f39e1c3 100644
--- a/src/layout/sidebar/SidebarTotalBalance.tsx
+++ b/src/layout/sidebar/SidebarTotalBalance.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { useTranslation } from "react-i18next";
import { useWallets } from "@wallets";
diff --git a/src/pages/CheckStatus.tsx b/src/pages/CheckStatus.tsx
index 1811700..72d13c6 100644
--- a/src/pages/CheckStatus.tsx
+++ b/src/pages/CheckStatus.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { AppLayout } from "@layout/AppLayout";
import { StatusPage } from "./StatusPage";
diff --git a/src/pages/NotFoundPage.tsx b/src/pages/NotFoundPage.tsx
index 3ae5a4a..61cbb71 100644
--- a/src/pages/NotFoundPage.tsx
+++ b/src/pages/NotFoundPage.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Button } from "antd";
import { FrownOutlined } from "@ant-design/icons";
diff --git a/src/pages/StatusPage.tsx b/src/pages/StatusPage.tsx
index 33ef19c..c857987 100644
--- a/src/pages/StatusPage.tsx
+++ b/src/pages/StatusPage.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Alert } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/addresses/AddressButtonRow.tsx b/src/pages/addresses/AddressButtonRow.tsx
index c15fb97..de37436 100644
--- a/src/pages/addresses/AddressButtonRow.tsx
+++ b/src/pages/addresses/AddressButtonRow.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Button } from "antd";
import { SendOutlined, SwapOutlined, UserAddOutlined, EditOutlined } from "@ant-design/icons";
diff --git a/src/pages/addresses/AddressNamesCard.tsx b/src/pages/addresses/AddressNamesCard.tsx
index 00c673a..bf1d81a 100644
--- a/src/pages/addresses/AddressNamesCard.tsx
+++ b/src/pages/addresses/AddressNamesCard.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import classNames from "classnames";
import { Card, Skeleton, Empty, Row } from "antd";
diff --git a/src/pages/addresses/AddressPage.tsx b/src/pages/addresses/AddressPage.tsx
index 8df7455..31b5d51 100644
--- a/src/pages/addresses/AddressPage.tsx
+++ b/src/pages/addresses/AddressPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import { Row, Col, Skeleton, Tag, Typography } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/addresses/AddressTransactionsCard.tsx b/src/pages/addresses/AddressTransactionsCard.tsx
index 795048e..e203c1d 100644
--- a/src/pages/addresses/AddressTransactionsCard.tsx
+++ b/src/pages/addresses/AddressTransactionsCard.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import classNames from "classnames";
import { Card, Skeleton, Empty } from "antd";
diff --git a/src/pages/addresses/NameItem.tsx b/src/pages/addresses/NameItem.tsx
index 3256094..db75c83 100644
--- a/src/pages/addresses/NameItem.tsx
+++ b/src/pages/addresses/NameItem.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Row } from "antd";
import { useTranslation, Trans } from "react-i18next";
diff --git a/src/pages/backup/BackupResultsSummary.tsx b/src/pages/backup/BackupResultsSummary.tsx
index 2740ccc..e36e758 100644
--- a/src/pages/backup/BackupResultsSummary.tsx
+++ b/src/pages/backup/BackupResultsSummary.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Typography } from "antd";
import { useTranslation, Trans } from "react-i18next";
diff --git a/src/pages/backup/BackupResultsTree.tsx b/src/pages/backup/BackupResultsTree.tsx
index ddc905b..68aa0af 100644
--- a/src/pages/backup/BackupResultsTree.tsx
+++ b/src/pages/backup/BackupResultsTree.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useMemo } from "react";
+import { useMemo } from "react";
import { Tree } from "antd";
import { DataNode } from "antd/lib/tree";
import { CheckCircleOutlined, WarningOutlined, ExclamationCircleOutlined } from "@ant-design/icons";
diff --git a/src/pages/backup/ImportBackupModal.tsx b/src/pages/backup/ImportBackupModal.tsx
index 336ccce..1948fd7 100644
--- a/src/pages/backup/ImportBackupModal.tsx
+++ b/src/pages/backup/ImportBackupModal.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, Dispatch, SetStateAction } from "react";
+import { useState, Dispatch, SetStateAction } from "react";
import { Modal, Form, FormInstance, Input, Checkbox, Button, Typography, notification } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/backup/ImportDetectFormat.tsx b/src/pages/backup/ImportDetectFormat.tsx
index 35fdfed..5167776 100644
--- a/src/pages/backup/ImportDetectFormat.tsx
+++ b/src/pages/backup/ImportDetectFormat.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect, useMemo, Dispatch, SetStateAction } from "react";
+import { useState, useEffect, useMemo, Dispatch, SetStateAction } from "react";
import { Typography } from "antd";
import { useTranslation, Trans, TFunction } from "react-i18next";
diff --git a/src/pages/backup/backupResults.ts b/src/pages/backup/backupResults.ts
index a174f9a..35229fd 100644
--- a/src/pages/backup/backupResults.ts
+++ b/src/pages/backup/backupResults.ts
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { TranslatedError } from "@utils/i18n";
diff --git a/src/pages/blocks/BlockHash.tsx b/src/pages/blocks/BlockHash.tsx
index 6d7b91f..74a7774 100644
--- a/src/pages/blocks/BlockHash.tsx
+++ b/src/pages/blocks/BlockHash.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import classNames from "classnames";
import { Typography } from "antd";
diff --git a/src/pages/blocks/BlockPage.tsx b/src/pages/blocks/BlockPage.tsx
index f129a88..a2396cb 100644
--- a/src/pages/blocks/BlockPage.tsx
+++ b/src/pages/blocks/BlockPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import { Row, Col, Skeleton, Button } from "antd";
import { LeftOutlined, RightOutlined } from "@ant-design/icons";
diff --git a/src/pages/blocks/BlocksPage.tsx b/src/pages/blocks/BlocksPage.tsx
index d3b60a8..5f8ed6f 100644
--- a/src/pages/blocks/BlocksPage.tsx
+++ b/src/pages/blocks/BlocksPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useMemo } from "react";
+import { useState, useMemo } from "react";
import { useSelector } from "react-redux";
import { RootState } from "@store";
diff --git a/src/pages/blocks/BlocksTable.tsx b/src/pages/blocks/BlocksTable.tsx
index 4a4d029..7dee3bb 100644
--- a/src/pages/blocks/BlocksTable.tsx
+++ b/src/pages/blocks/BlocksTable.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect, Dispatch, SetStateAction } from "react";
+import { useState, useEffect, Dispatch, SetStateAction } from "react";
import { Table, TablePaginationConfig } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/credits/CreditsPage.tsx b/src/pages/credits/CreditsPage.tsx
index e701721..8844374 100644
--- a/src/pages/credits/CreditsPage.tsx
+++ b/src/pages/credits/CreditsPage.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Typography, Descriptions, Divider } from "antd";
import { useTranslation, Trans } from "react-i18next";
diff --git a/src/pages/credits/Supporters.tsx b/src/pages/credits/Supporters.tsx
index ebf3cf8..12f83fd 100644
--- a/src/pages/credits/Supporters.tsx
+++ b/src/pages/credits/Supporters.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState } from "react";
+import { useState } from "react";
import { Space, Spin, Button } from "antd";
import { DollarOutlined } from "@ant-design/icons";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/credits/Translators.tsx b/src/pages/credits/Translators.tsx
index 292d3a5..433f314 100644
--- a/src/pages/credits/Translators.tsx
+++ b/src/pages/credits/Translators.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Space, Button, List, Typography } from "antd";
import { GlobalOutlined } from "@ant-design/icons";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/dashboard/BlockDifficultyCard.tsx b/src/pages/dashboard/BlockDifficultyCard.tsx
index 7ae9f18..c41d550 100644
--- a/src/pages/dashboard/BlockDifficultyCard.tsx
+++ b/src/pages/dashboard/BlockDifficultyCard.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect, useMemo } from "react";
+import { useState, useEffect, useMemo } from "react";
import classNames from "classnames";
import { Card, Skeleton, Empty, Row, Col, Tooltip, Select } from "antd";
diff --git a/src/pages/dashboard/BlockValueCard.tsx b/src/pages/dashboard/BlockValueCard.tsx
index e89d879..14fc30e 100644
--- a/src/pages/dashboard/BlockValueCard.tsx
+++ b/src/pages/dashboard/BlockValueCard.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Card, Skeleton, Typography, Progress } from "antd";
import { useSelector } from "react-redux";
diff --git a/src/pages/dashboard/DashboardPage.tsx b/src/pages/dashboard/DashboardPage.tsx
index 343d5d7..b261d0e 100644
--- a/src/pages/dashboard/DashboardPage.tsx
+++ b/src/pages/dashboard/DashboardPage.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Row, Col } from "antd";
import { PageLayout } from "@layout/PageLayout";
diff --git a/src/pages/dashboard/InDevBanner.tsx b/src/pages/dashboard/InDevBanner.tsx
index 555fa11..8be9ca0 100644
--- a/src/pages/dashboard/InDevBanner.tsx
+++ b/src/pages/dashboard/InDevBanner.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Alert } from "antd";
import { useTranslation, Trans } from "react-i18next";
diff --git a/src/pages/dashboard/MOTDCard.tsx b/src/pages/dashboard/MOTDCard.tsx
index 7b326c0..dedabc9 100644
--- a/src/pages/dashboard/MOTDCard.tsx
+++ b/src/pages/dashboard/MOTDCard.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Card, Alert } from "antd";
import { useSelector } from "react-redux";
diff --git a/src/pages/dashboard/TransactionsCard.tsx b/src/pages/dashboard/TransactionsCard.tsx
index bd6035c..65aa04c 100644
--- a/src/pages/dashboard/TransactionsCard.tsx
+++ b/src/pages/dashboard/TransactionsCard.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect, useMemo } from "react";
+import { useState, useEffect, useMemo } from "react";
import classNames from "classnames";
import { Card, Skeleton, Empty } from "antd";
diff --git a/src/pages/dashboard/WalletItem.tsx b/src/pages/dashboard/WalletItem.tsx
index 386041e..aa6bb7c 100644
--- a/src/pages/dashboard/WalletItem.tsx
+++ b/src/pages/dashboard/WalletItem.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Row, Col } from "antd";
import { Wallet } from "@wallets";
diff --git a/src/pages/dashboard/WalletOverviewCard.tsx b/src/pages/dashboard/WalletOverviewCard.tsx
index 845b6b4..8b00b54 100644
--- a/src/pages/dashboard/WalletOverviewCard.tsx
+++ b/src/pages/dashboard/WalletOverviewCard.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Card, Row, Col, Button } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/dashboard/WhatsNewCard.tsx b/src/pages/dashboard/WhatsNewCard.tsx
index b177dbe..aa56156 100644
--- a/src/pages/dashboard/WhatsNewCard.tsx
+++ b/src/pages/dashboard/WhatsNewCard.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Card } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/dev/DevPage.tsx b/src/pages/dev/DevPage.tsx
index 8bccdf4..890d8e6 100644
--- a/src/pages/dev/DevPage.tsx
+++ b/src/pages/dev/DevPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState } from "react";
+import { useState } from "react";
import { Button } from "antd";
import { PageLayout } from "@layout/PageLayout";
diff --git a/src/pages/names/NameButtonRow.tsx b/src/pages/names/NameButtonRow.tsx
index 108910d..d4ffe1f 100644
--- a/src/pages/names/NameButtonRow.tsx
+++ b/src/pages/names/NameButtonRow.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Button } from "antd";
import { SendOutlined, SwapOutlined, EditOutlined } from "@ant-design/icons";
diff --git a/src/pages/names/NamePage.tsx b/src/pages/names/NamePage.tsx
index 8eb4813..3e251d8 100644
--- a/src/pages/names/NamePage.tsx
+++ b/src/pages/names/NamePage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import { Row, Col, Skeleton, Typography, Tooltip } from "antd";
import { EditOutlined } from "@ant-design/icons";
diff --git a/src/pages/names/NameTransactionsCard.tsx b/src/pages/names/NameTransactionsCard.tsx
index 7d582dd..6841931 100644
--- a/src/pages/names/NameTransactionsCard.tsx
+++ b/src/pages/names/NameTransactionsCard.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import classNames from "classnames";
import { Card, Skeleton, Empty } from "antd";
diff --git a/src/pages/names/NamesPage.tsx b/src/pages/names/NamesPage.tsx
index 0d649df..ac5d6a7 100644
--- a/src/pages/names/NamesPage.tsx
+++ b/src/pages/names/NamesPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useMemo } from "react";
+import { useState, useMemo } from "react";
import { useTranslation, TFunction } from "react-i18next";
import { useParams } from "react-router-dom";
diff --git a/src/pages/names/NamesTable.tsx b/src/pages/names/NamesTable.tsx
index cdfecce..fd722d9 100644
--- a/src/pages/names/NamesTable.tsx
+++ b/src/pages/names/NamesTable.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect, Dispatch, SetStateAction } from "react";
+import { useState, useEffect, Dispatch, SetStateAction } from "react";
import { Table, TablePaginationConfig, Tag } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/settings/SettingBoolean.tsx b/src/pages/settings/SettingBoolean.tsx
index 9d5da9e..337d470 100644
--- a/src/pages/settings/SettingBoolean.tsx
+++ b/src/pages/settings/SettingBoolean.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Switch } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/settings/SettingDescription.tsx b/src/pages/settings/SettingDescription.tsx
index 42cdcc3..fee6d8e 100644
--- a/src/pages/settings/SettingDescription.tsx
+++ b/src/pages/settings/SettingDescription.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/settings/SettingInteger.tsx b/src/pages/settings/SettingInteger.tsx
index e80d4b6..30ec983 100644
--- a/src/pages/settings/SettingInteger.tsx
+++ b/src/pages/settings/SettingInteger.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState } from "react";
+import { useState } from "react";
import { Input, InputNumber, Button } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/settings/SettingsPage.tsx b/src/pages/settings/SettingsPage.tsx
index a899356..2eca35d 100644
--- a/src/pages/settings/SettingsPage.tsx
+++ b/src/pages/settings/SettingsPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { FC } from "react";
+import { FC } from "react";
import { Menu } from "antd";
import { BugOutlined, GlobalOutlined, ReloadOutlined, SettingOutlined } from "@ant-design/icons";
diff --git a/src/pages/settings/translations/LanguageItem.tsx b/src/pages/settings/translations/LanguageItem.tsx
index 7808a3e..38564ee 100644
--- a/src/pages/settings/translations/LanguageItem.tsx
+++ b/src/pages/settings/translations/LanguageItem.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { FC } from "react";
+import { FC } from "react";
import classNames from "classnames";
import { Menu } from "antd";
diff --git a/src/pages/settings/translations/SettingsTranslations.tsx b/src/pages/settings/translations/SettingsTranslations.tsx
index 72735b2..28c95fe 100644
--- a/src/pages/settings/translations/SettingsTranslations.tsx
+++ b/src/pages/settings/translations/SettingsTranslations.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState } from "react";
+import { useState } from "react";
import { Table, Progress, Typography, Tooltip, Button } from "antd";
import {
ExclamationCircleOutlined, FileExcelOutlined
diff --git a/src/pages/transactions/TransactionMetadataCard.tsx b/src/pages/transactions/TransactionMetadataCard.tsx
index 09d6033..3e70ecd 100644
--- a/src/pages/transactions/TransactionMetadataCard.tsx
+++ b/src/pages/transactions/TransactionMetadataCard.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useMemo } from "react";
+import { useState, useMemo } from "react";
import { Card, Table, TableProps, Typography } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/transactions/TransactionPage.tsx b/src/pages/transactions/TransactionPage.tsx
index 61fe728..a17a650 100644
--- a/src/pages/transactions/TransactionPage.tsx
+++ b/src/pages/transactions/TransactionPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import { Row, Col, Skeleton } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/transactions/TransactionRawDataCard.tsx b/src/pages/transactions/TransactionRawDataCard.tsx
index 563f50d..25796a1 100644
--- a/src/pages/transactions/TransactionRawDataCard.tsx
+++ b/src/pages/transactions/TransactionRawDataCard.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Card, Table } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/transactions/TransactionsPage.tsx b/src/pages/transactions/TransactionsPage.tsx
index fa9800d..5d845bc 100644
--- a/src/pages/transactions/TransactionsPage.tsx
+++ b/src/pages/transactions/TransactionsPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useMemo } from "react";
+import { useState, useMemo } from "react";
import { Switch } from "antd";
import { useTranslation, TFunction } from "react-i18next";
diff --git a/src/pages/transactions/TransactionsTable.tsx b/src/pages/transactions/TransactionsTable.tsx
index 267bf21..bc0310b 100644
--- a/src/pages/transactions/TransactionsTable.tsx
+++ b/src/pages/transactions/TransactionsTable.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect, Dispatch, SetStateAction } from "react";
+import { useState, useEffect, Dispatch, SetStateAction } from "react";
import { Table, TablePaginationConfig } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/transactions/send/SendTransactionForm.tsx b/src/pages/transactions/send/SendTransactionForm.tsx
index 0c8224b..cdc0632 100644
--- a/src/pages/transactions/send/SendTransactionForm.tsx
+++ b/src/pages/transactions/send/SendTransactionForm.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState } from "react";
+import { useState } from "react";
import { Form, FormInstance } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/transactions/send/SendTransactionModal.tsx b/src/pages/transactions/send/SendTransactionModal.tsx
index cd53d1a..4b29b05 100644
--- a/src/pages/transactions/send/SendTransactionModal.tsx
+++ b/src/pages/transactions/send/SendTransactionModal.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { Dispatch, SetStateAction } from "react";
+import { Dispatch, SetStateAction } from "react";
import { Modal } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/wallets/AddWalletModal.tsx b/src/pages/wallets/AddWalletModal.tsx
index 434a93a..a7c9483 100644
--- a/src/pages/wallets/AddWalletModal.tsx
+++ b/src/pages/wallets/AddWalletModal.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useRef, useEffect, useCallback } from "react";
+import { useState, useRef, useEffect, useCallback } from "react";
import { Modal, Form, Input, Checkbox, Collapse, Button, Tooltip, Typography, Row, Col, message, notification, Grid } from "antd";
import { ReloadOutlined } from "@ant-design/icons";
diff --git a/src/pages/wallets/WalletEditButton.tsx b/src/pages/wallets/WalletEditButton.tsx
index 6a9dba5..6fafe0e 100644
--- a/src/pages/wallets/WalletEditButton.tsx
+++ b/src/pages/wallets/WalletEditButton.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, FC } from "react";
+import { useState, FC } from "react";
import { AuthorisedAction } from "@comp/auth/AuthorisedAction";
import { AddWalletModal } from "./AddWalletModal";
diff --git a/src/pages/wallets/WalletsPage.tsx b/src/pages/wallets/WalletsPage.tsx
index 9a072da..c1c6ba3 100644
--- a/src/pages/wallets/WalletsPage.tsx
+++ b/src/pages/wallets/WalletsPage.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState } from "react";
+import { useState } from "react";
import { Button } from "antd";
import { DatabaseOutlined, PlusOutlined } from "@ant-design/icons";
diff --git a/src/pages/wallets/WalletsTable.tsx b/src/pages/wallets/WalletsTable.tsx
index 247e221..d9eb6e6 100644
--- a/src/pages/wallets/WalletsTable.tsx
+++ b/src/pages/wallets/WalletsTable.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Table, Tooltip, Tag } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/wallets/info/BooleanText.tsx b/src/pages/wallets/info/BooleanText.tsx
index 15e6001..99be4d6 100644
--- a/src/pages/wallets/info/BooleanText.tsx
+++ b/src/pages/wallets/info/BooleanText.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Typography } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/wallets/info/DecryptReveal.tsx b/src/pages/wallets/info/DecryptReveal.tsx
index 5f8d7e7..d204948 100644
--- a/src/pages/wallets/info/DecryptReveal.tsx
+++ b/src/pages/wallets/info/DecryptReveal.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import classNames from "classnames";
import { Typography } from "antd";
import { CopyConfig } from "@comp/types";
diff --git a/src/pages/wallets/info/WalletDescAdvancedInfo.tsx b/src/pages/wallets/info/WalletDescAdvancedInfo.tsx
index 4bd419f..0e02869 100644
--- a/src/pages/wallets/info/WalletDescAdvancedInfo.tsx
+++ b/src/pages/wallets/info/WalletDescAdvancedInfo.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Descriptions } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/wallets/info/WalletDescBasicInfo.tsx b/src/pages/wallets/info/WalletDescBasicInfo.tsx
index 7678e50..1afa86d 100644
--- a/src/pages/wallets/info/WalletDescBasicInfo.tsx
+++ b/src/pages/wallets/info/WalletDescBasicInfo.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Descriptions } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/wallets/info/WalletDescSyncedInfo.tsx b/src/pages/wallets/info/WalletDescSyncedInfo.tsx
index d510735..8699b47 100644
--- a/src/pages/wallets/info/WalletDescSyncedInfo.tsx
+++ b/src/pages/wallets/info/WalletDescSyncedInfo.tsx
@@ -1,7 +1,6 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React from "react";
import { Descriptions } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/pages/wallets/info/WalletInfoModal.tsx b/src/pages/wallets/info/WalletInfoModal.tsx
index 1c05cd3..8e0e1e4 100644
--- a/src/pages/wallets/info/WalletInfoModal.tsx
+++ b/src/pages/wallets/info/WalletInfoModal.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { Dispatch, SetStateAction } from "react";
+import { Dispatch, SetStateAction } from "react";
import { Modal, Button, DescriptionsProps } from "antd";
import { useTranslation } from "react-i18next";
diff --git a/src/utils/table.tsx b/src/utils/table.tsx
index 54027a6..a354c4a 100644
--- a/src/utils/table.tsx
+++ b/src/utils/table.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
-import React, { useState, useEffect, useMemo, Dispatch, SetStateAction } from "react";
+import { useState, useEffect, useMemo, Dispatch, SetStateAction } from "react";
import { TablePaginationConfig, TableProps, Pagination } from "antd";
import { SorterResult } from "antd/lib/table/interface";
import usePagination from "antd/lib/table/hooks/usePagination";