diff --git a/.eslintrc.js b/.eslintrc.js index c075193f00..9712d64241 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -13,6 +13,7 @@ module.exports = { extends: [ "eslint:recommended", "plugin:react/recommended", + "plugin:react/jsx-runtime", "plugin:@typescript-eslint/base", "plugin:@typescript-eslint/eslint-recommended", "plugin:prettier/recommended", @@ -44,6 +45,18 @@ module.exports = { endOfLine: "auto", }, ], + // Prevent default imports from React, named imports should be used instead. + "no-restricted-imports": [ + "error", + { + paths: [ + { + name: "react", + importNames: ["default"], + }, + ], + }, + ], }, overrides: [ { diff --git a/CODING_GUIDELINES.md b/CODING_GUIDELINES.md index 5948d7e305..61688fc975 100644 --- a/CODING_GUIDELINES.md +++ b/CODING_GUIDELINES.md @@ -40,7 +40,7 @@ A good tutorial on this approach is found in [Kent Dodds’ blog](https://kentcd This project uses function components and hooks over class components. When coding function components in typescript, a developer should include any specific props that they need. ```javascript -import React, { FunctionComponent } from "react"; +import { FunctionComponent } from "react"; ... @@ -55,7 +55,7 @@ export const ExampleComponent: FunctionComponent = ({ mes For components that do not have any additional props an empty object should be used instead: ```javascript -import React, { FunctionComponent } from "react"; +import { FunctionComponent } from "react"; ... diff --git a/src/App.tsx b/src/App.tsx index fd674a3c02..79082810f7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent, Suspense } from "react"; +import { FunctionComponent, Suspense } from "react"; import { Page } from "@patternfly/react-core"; import { HashRouter as Router, Route, Switch } from "react-router-dom"; import { ErrorBoundary } from "react-error-boundary"; diff --git a/src/ForbiddenSection.tsx b/src/ForbiddenSection.tsx index aaa2037536..2755182d5f 100644 --- a/src/ForbiddenSection.tsx +++ b/src/ForbiddenSection.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { PageSection } from "@patternfly/react-core"; diff --git a/src/PageHeader.tsx b/src/PageHeader.tsx index ba21adae9e..d6a861b04b 100644 --- a/src/PageHeader.tsx +++ b/src/PageHeader.tsx @@ -12,7 +12,7 @@ import { PageHeaderToolsItem, } from "@patternfly/react-core"; import { HelpIcon } from "@patternfly/react-icons"; -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import { HelpHeader, useHelp } from "./components/help-enabler/HelpHeader"; diff --git a/src/PageNav.tsx b/src/PageNav.tsx index ec6dcf879c..8d8a6f78e7 100644 --- a/src/PageNav.tsx +++ b/src/PageNav.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import { FormEvent, FunctionComponent } from "react"; import { NavLink, useHistory, useRouteMatch } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { @@ -16,7 +16,7 @@ import { useAccess } from "./context/access/Access"; import { routes } from "./route-config"; import { AddRealmRoute } from "./realm/routes/AddRealm"; -export const PageNav: React.FunctionComponent = () => { +export const PageNav: FunctionComponent = () => { const { t } = useTranslation("common"); const { hasAccess, hasSomeAccess } = useAccess(); const { realm } = useRealm(); @@ -27,7 +27,7 @@ export const PageNav: React.FunctionComponent = () => { groupId: number | string; itemId: number | string; to: string; - event: React.FormEvent; + event: FormEvent; }; const onSelect = (item: SelectedItem) => { diff --git a/src/PageNotFoundSection.tsx b/src/PageNotFoundSection.tsx index bf839bb863..774077a254 100644 --- a/src/PageNotFoundSection.tsx +++ b/src/PageNotFoundSection.tsx @@ -1,5 +1,3 @@ -import React from "react"; - export const PageNotFoundSection = () => { return <>Page Not Found; }; diff --git a/src/authentication/AuthenticationSection.tsx b/src/authentication/AuthenticationSection.tsx index 9c1f749280..6ea9776e75 100644 --- a/src/authentication/AuthenticationSection.tsx +++ b/src/authentication/AuthenticationSection.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory } from "react-router-dom"; import { Trans, useTranslation } from "react-i18next"; import { sortBy } from "lodash-es"; diff --git a/src/authentication/BindFlowDialog.tsx b/src/authentication/BindFlowDialog.tsx index 4b89ae9ace..7bfd42d054 100644 --- a/src/authentication/BindFlowDialog.tsx +++ b/src/authentication/BindFlowDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm } from "react-hook-form"; import { diff --git a/src/authentication/DuplicateFlowModal.tsx b/src/authentication/DuplicateFlowModal.tsx index e8a48db937..d9aba69e69 100644 --- a/src/authentication/DuplicateFlowModal.tsx +++ b/src/authentication/DuplicateFlowModal.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; import { diff --git a/src/authentication/EditFlowModal.tsx b/src/authentication/EditFlowModal.tsx index dc3fe4d754..32d4b19b2c 100644 --- a/src/authentication/EditFlowModal.tsx +++ b/src/authentication/EditFlowModal.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; import { diff --git a/src/authentication/EmptyExecutionState.tsx b/src/authentication/EmptyExecutionState.tsx index 919c76c20c..5025226363 100644 --- a/src/authentication/EmptyExecutionState.tsx +++ b/src/authentication/EmptyExecutionState.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Button, diff --git a/src/authentication/FlowDetails.tsx b/src/authentication/FlowDetails.tsx index 0fd6757e6e..1cc5116a22 100644 --- a/src/authentication/FlowDetails.tsx +++ b/src/authentication/FlowDetails.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useHistory, useParams } from "react-router-dom"; import { Trans, useTranslation } from "react-i18next"; import { diff --git a/src/authentication/RequiredActions.tsx b/src/authentication/RequiredActions.tsx index b7287706ab..48790df2de 100644 --- a/src/authentication/RequiredActions.tsx +++ b/src/authentication/RequiredActions.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant, Switch } from "@patternfly/react-core"; diff --git a/src/authentication/components/AddFlowDropdown.tsx b/src/authentication/components/AddFlowDropdown.tsx index 2b0cde6d0c..2538a2902f 100644 --- a/src/authentication/components/AddFlowDropdown.tsx +++ b/src/authentication/components/AddFlowDropdown.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Dropdown, diff --git a/src/authentication/components/DraggableTable.tsx b/src/authentication/components/DraggableTable.tsx index c6063949ca..a02e46e042 100644 --- a/src/authentication/components/DraggableTable.tsx +++ b/src/authentication/components/DraggableTable.tsx @@ -1,4 +1,10 @@ -import React, { ReactNode, useMemo, useRef, useState } from "react"; +import { + DragEvent as ReactDragEvent, + ReactNode, + useMemo, + useRef, + useState, +} from "react"; import { useTranslation } from "react-i18next"; import { get } from "lodash-es"; import { @@ -53,7 +59,7 @@ export function DraggableTable({ [data] ); - const onDragStart = (evt: React.DragEvent) => { + const onDragStart = (evt: ReactDragEvent) => { evt.dataTransfer.effectAllowed = "move"; evt.dataTransfer.setData("text/plain", evt.currentTarget.id); const draggedItemId = evt.currentTarget.id; @@ -103,14 +109,14 @@ export function DraggableTable({ }); }; - const onDragLeave = (evt: React.DragEvent) => { + const onDragLeave = (evt: ReactDragEvent) => { if (!isValidDrop(evt)) { move(itemOrder); setState({ ...state, draggingToItemIndex: -1 }); } }; - const isValidDrop = (evt: React.DragEvent) => { + const isValidDrop = (evt: ReactDragEvent) => { const ulRect = bodyRef.current!.getBoundingClientRect(); return ( evt.clientX > ulRect.x && @@ -120,7 +126,7 @@ export function DraggableTable({ ); }; - const onDrop = (evt: React.DragEvent) => { + const onDrop = (evt: ReactDragEvent) => { if (isValidDrop(evt)) { onDragFinish(state.draggedItemId, state.tempItemOrder); } else { @@ -128,7 +134,7 @@ export function DraggableTable({ } }; - const onDragOver = (evt: React.DragEvent) => { + const onDragOver = (evt: ReactDragEvent) => { evt.preventDefault(); const td = evt.target as HTMLTableCellElement; @@ -161,7 +167,7 @@ export function DraggableTable({ } }; - const onDragEnd = (evt: React.DragEvent) => { + const onDragEnd = (evt: ReactDragEvent) => { const tr = evt.target as HTMLTableRowElement; tr.classList.remove(styles.modifiers.ghostRow); tr.setAttribute("aria-pressed", "false"); diff --git a/src/authentication/components/EditFlow.tsx b/src/authentication/components/EditFlow.tsx index e876267615..47e88989a6 100644 --- a/src/authentication/components/EditFlow.tsx +++ b/src/authentication/components/EditFlow.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { useForm } from "react-hook-form"; import { diff --git a/src/authentication/components/ExecutionConfigModal.tsx b/src/authentication/components/ExecutionConfigModal.tsx index a732a765fb..4034cf700a 100644 --- a/src/authentication/components/ExecutionConfigModal.tsx +++ b/src/authentication/components/ExecutionConfigModal.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; import { diff --git a/src/authentication/components/FlowDiagram.tsx b/src/authentication/components/FlowDiagram.tsx index 43d7b6b6ba..f6f17b99c1 100644 --- a/src/authentication/components/FlowDiagram.tsx +++ b/src/authentication/components/FlowDiagram.tsx @@ -1,4 +1,4 @@ -import React, { useState, MouseEvent } from "react"; +import { useState, MouseEvent as ReactMouseEvent } from "react"; import { Drawer, DrawerActions, @@ -41,7 +41,7 @@ const createEdge = (fromNode: string, toNode: string) => ({ target: toNode, data: { onEdgeClick: ( - evt: React.MouseEvent, + evt: ReactMouseEvent, id: string ) => { evt.stopPropagation(); @@ -217,7 +217,7 @@ export const FlowDiagram = ({ ); const [expandDrawer, setExpandDrawer] = useState(false); - const onElementClick = (_event: MouseEvent, element: Node | Edge) => { + const onElementClick = (_event: ReactMouseEvent, element: Node | Edge) => { if (isNode(element)) setExpandDrawer(!expandDrawer); }; diff --git a/src/authentication/components/FlowHeader.tsx b/src/authentication/components/FlowHeader.tsx index fbde861e7e..0f9f0de0e0 100644 --- a/src/authentication/components/FlowHeader.tsx +++ b/src/authentication/components/FlowHeader.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { DataListItem, diff --git a/src/authentication/components/FlowRequirementDropdown.tsx b/src/authentication/components/FlowRequirementDropdown.tsx index 4f37660a2a..e7f77979e6 100644 --- a/src/authentication/components/FlowRequirementDropdown.tsx +++ b/src/authentication/components/FlowRequirementDropdown.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Select, SelectOption, SelectVariant } from "@patternfly/react-core"; diff --git a/src/authentication/components/FlowRow.tsx b/src/authentication/components/FlowRow.tsx index b3c7c6e28e..e7f8ecf507 100644 --- a/src/authentication/components/FlowRow.tsx +++ b/src/authentication/components/FlowRow.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { DataListItemRow, diff --git a/src/authentication/components/FlowTitle.tsx b/src/authentication/components/FlowTitle.tsx index b887dcf597..7af31364d9 100644 --- a/src/authentication/components/FlowTitle.tsx +++ b/src/authentication/components/FlowTitle.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Card, CardBody } from "@patternfly/react-core"; import "./flow-title.css"; diff --git a/src/authentication/components/UsedBy.tsx b/src/authentication/components/UsedBy.tsx index 2575c89c36..24a14d4e15 100644 --- a/src/authentication/components/UsedBy.tsx +++ b/src/authentication/components/UsedBy.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Button, diff --git a/src/authentication/components/diagram/ButtonEdge.tsx b/src/authentication/components/diagram/ButtonEdge.tsx index 3023a6c4b2..6a247bdb49 100644 --- a/src/authentication/components/diagram/ButtonEdge.tsx +++ b/src/authentication/components/diagram/ButtonEdge.tsx @@ -1,4 +1,4 @@ -import React, { CSSProperties } from "react"; +import { CSSProperties, MouseEvent as ReactMouseEvent } from "react"; import { PlusIcon } from "@patternfly/react-icons"; import { ArrowHeadType, @@ -22,7 +22,7 @@ type ButtonEdgeProps = { selected: boolean; data: { onEdgeClick: ( - evt: React.MouseEvent, + evt: ReactMouseEvent, id: string ) => void; }; diff --git a/src/authentication/components/diagram/ConditionalNode.tsx b/src/authentication/components/diagram/ConditionalNode.tsx index c11c18c186..dd8e22065f 100644 --- a/src/authentication/components/diagram/ConditionalNode.tsx +++ b/src/authentication/components/diagram/ConditionalNode.tsx @@ -1,4 +1,4 @@ -import React, { memo } from "react"; +import { memo } from "react"; import { Handle, Position } from "react-flow-renderer"; type ConditionalNodeProps = { diff --git a/src/authentication/components/diagram/SubFlowNode.tsx b/src/authentication/components/diagram/SubFlowNode.tsx index 948a2afbbc..cf37cf626b 100644 --- a/src/authentication/components/diagram/SubFlowNode.tsx +++ b/src/authentication/components/diagram/SubFlowNode.tsx @@ -1,4 +1,4 @@ -import React, { memo } from "react"; +import { memo } from "react"; import { Handle, Position } from "react-flow-renderer"; type NodeProps = { diff --git a/src/authentication/components/modals/AddStepModal.tsx b/src/authentication/components/modals/AddStepModal.tsx index d973e1f431..84d48b0507 100644 --- a/src/authentication/components/modals/AddStepModal.tsx +++ b/src/authentication/components/modals/AddStepModal.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState } from "react"; +import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { Button, diff --git a/src/authentication/components/modals/AddSubFlowModal.tsx b/src/authentication/components/modals/AddSubFlowModal.tsx index 66beb84ef9..a81ed7067e 100644 --- a/src/authentication/components/modals/AddSubFlowModal.tsx +++ b/src/authentication/components/modals/AddSubFlowModal.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm } from "react-hook-form"; import { diff --git a/src/authentication/form/CreateFlow.tsx b/src/authentication/form/CreateFlow.tsx index 41bf1ff9d4..da43d99493 100644 --- a/src/authentication/form/CreateFlow.tsx +++ b/src/authentication/form/CreateFlow.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Link, useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/authentication/form/FlowType.tsx b/src/authentication/form/FlowType.tsx index 175783ca4b..f405df63fc 100644 --- a/src/authentication/form/FlowType.tsx +++ b/src/authentication/form/FlowType.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/authentication/form/NameDescription.tsx b/src/authentication/form/NameDescription.tsx index d488ea51b3..e1c08a8ece 100644 --- a/src/authentication/form/NameDescription.tsx +++ b/src/authentication/form/NameDescription.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/authentication/policies/OtpPolicy.tsx b/src/authentication/policies/OtpPolicy.tsx index e703741ea9..7f0690e105 100644 --- a/src/authentication/policies/OtpPolicy.tsx +++ b/src/authentication/policies/OtpPolicy.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm, useWatch } from "react-hook-form"; import { diff --git a/src/authentication/policies/PasswordPolicy.tsx b/src/authentication/policies/PasswordPolicy.tsx index a20e362fe6..519ce1cc16 100644 --- a/src/authentication/policies/PasswordPolicy.tsx +++ b/src/authentication/policies/PasswordPolicy.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { diff --git a/src/authentication/policies/Policies.tsx b/src/authentication/policies/Policies.tsx index e561ad54ea..0693d42437 100644 --- a/src/authentication/policies/Policies.tsx +++ b/src/authentication/policies/Policies.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Tab, Tabs, TabTitleText } from "@patternfly/react-core"; diff --git a/src/authentication/policies/PolicyRow.tsx b/src/authentication/policies/PolicyRow.tsx index 45c7ade394..7d2a8164ba 100644 --- a/src/authentication/policies/PolicyRow.tsx +++ b/src/authentication/policies/PolicyRow.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/authentication/policies/WebauthnPolicy.tsx b/src/authentication/policies/WebauthnPolicy.tsx index 537ac9c7cf..06a45f4f06 100644 --- a/src/authentication/policies/WebauthnPolicy.tsx +++ b/src/authentication/policies/WebauthnPolicy.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { Controller, FormProvider, diff --git a/src/client-scopes/ChangeTypeDropdown.tsx b/src/client-scopes/ChangeTypeDropdown.tsx index 3ff7aa44c9..d818721446 100644 --- a/src/client-scopes/ChangeTypeDropdown.tsx +++ b/src/client-scopes/ChangeTypeDropdown.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant, Select } from "@patternfly/react-core"; diff --git a/src/client-scopes/ClientScopesSection.tsx b/src/client-scopes/ClientScopesSection.tsx index a0ac6a6b35..8570a2ee22 100644 --- a/src/client-scopes/ClientScopesSection.tsx +++ b/src/client-scopes/ClientScopesSection.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import { diff --git a/src/client-scopes/add/MapperDialog.tsx b/src/client-scopes/add/MapperDialog.tsx index 42f312c661..d5df6f8af9 100644 --- a/src/client-scopes/add/MapperDialog.tsx +++ b/src/client-scopes/add/MapperDialog.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState } from "react"; +import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { Button, diff --git a/src/client-scopes/details/MapperList.tsx b/src/client-scopes/details/MapperList.tsx index 59dbc48c80..ed73ddb357 100644 --- a/src/client-scopes/details/MapperList.tsx +++ b/src/client-scopes/details/MapperList.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import type { LocationDescriptorObject } from "history"; import { Link } from "react-router-dom"; diff --git a/src/client-scopes/details/MappingDetails.tsx b/src/client-scopes/details/MappingDetails.tsx index 2aea58aa85..d602a5d092 100644 --- a/src/client-scopes/details/MappingDetails.tsx +++ b/src/client-scopes/details/MappingDetails.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useParams, useRouteMatch } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/client-scopes/details/ScopeForm.tsx b/src/client-scopes/details/ScopeForm.tsx index 67ccbdf0b8..585abe616c 100644 --- a/src/client-scopes/details/ScopeForm.tsx +++ b/src/client-scopes/details/ScopeForm.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { Link, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { Controller, useForm, useWatch } from "react-hook-form"; diff --git a/src/client-scopes/details/SearchFilter.tsx b/src/client-scopes/details/SearchFilter.tsx index 432c00bcc6..3a9d1b33e2 100644 --- a/src/client-scopes/details/SearchFilter.tsx +++ b/src/client-scopes/details/SearchFilter.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Dropdown, diff --git a/src/client-scopes/form/ClientScopeForm.tsx b/src/client-scopes/form/ClientScopeForm.tsx index 37008ce177..2ff7fb8a0b 100644 --- a/src/client-scopes/form/ClientScopeForm.tsx +++ b/src/client-scopes/form/ClientScopeForm.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/AdvancedTab.tsx b/src/clients/AdvancedTab.tsx index ec93472374..dc00ecb9f9 100644 --- a/src/clients/AdvancedTab.tsx +++ b/src/clients/AdvancedTab.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { AlertVariant, PageSection, Text } from "@patternfly/react-core"; diff --git a/src/clients/ClientDescription.tsx b/src/clients/ClientDescription.tsx index 477bc5a6bd..c0277a377e 100644 --- a/src/clients/ClientDescription.tsx +++ b/src/clients/ClientDescription.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { FormGroup, Switch, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/clients/ClientDetails.tsx b/src/clients/ClientDetails.tsx index 56d3cb16c4..bfa2c14535 100644 --- a/src/clients/ClientDetails.tsx +++ b/src/clients/ClientDetails.tsx @@ -13,7 +13,7 @@ import { import { InfoCircleIcon } from "@patternfly/react-icons"; import type ClientRepresentation from "@keycloak/keycloak-admin-client/lib/defs/clientRepresentation"; import { cloneDeep, sortBy } from "lodash-es"; -import React, { useMemo, useState } from "react"; +import { useMemo, useState } from "react"; import { Controller, FormProvider, useForm, useWatch } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useHistory, useParams } from "react-router-dom"; diff --git a/src/clients/ClientSessions.tsx b/src/clients/ClientSessions.tsx index 7f796772aa..7259540332 100644 --- a/src/clients/ClientSessions.tsx +++ b/src/clients/ClientSessions.tsx @@ -1,7 +1,7 @@ import type ClientRepresentation from "@keycloak/keycloak-admin-client/lib/defs/clientRepresentation"; import type UserSessionRepresentation from "@keycloak/keycloak-admin-client/lib/defs/userSessionRepresentation"; import { PageSection } from "@patternfly/react-core"; -import React from "react"; + import { useTranslation } from "react-i18next"; import type { LoaderFunction } from "../components/table-toolbar/KeycloakDataTable"; diff --git a/src/clients/ClientSettings.tsx b/src/clients/ClientSettings.tsx index f83d0fdc8b..82be1d364e 100644 --- a/src/clients/ClientSettings.tsx +++ b/src/clients/ClientSettings.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { Form } from "@patternfly/react-core"; diff --git a/src/clients/ClientsSection.tsx b/src/clients/ClientsSection.tsx index c23ee5bdb8..da046be6e2 100644 --- a/src/clients/ClientsSection.tsx +++ b/src/clients/ClientsSection.tsx @@ -11,7 +11,7 @@ import { import { cellWidth, IRowData, TableText } from "@patternfly/react-table"; import type ClientRepresentation from "@keycloak/keycloak-admin-client/lib/defs/clientRepresentation"; import type { ClientQuery } from "@keycloak/keycloak-admin-client/lib/resources/clients"; -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link, useHistory } from "react-router-dom"; import { useAlerts } from "../components/alert/Alerts"; diff --git a/src/clients/add/AccessSettings.tsx b/src/clients/add/AccessSettings.tsx index c76adb1467..aa9406ae5e 100644 --- a/src/clients/add/AccessSettings.tsx +++ b/src/clients/add/AccessSettings.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/clients/add/CapabilityConfig.tsx b/src/clients/add/CapabilityConfig.tsx index 3c284417de..f9606a9552 100644 --- a/src/clients/add/CapabilityConfig.tsx +++ b/src/clients/add/CapabilityConfig.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/add/GeneralSettings.tsx b/src/clients/add/GeneralSettings.tsx index 8a2ae5e593..57a0e9c744 100644 --- a/src/clients/add/GeneralSettings.tsx +++ b/src/clients/add/GeneralSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { FormGroup, Select, diff --git a/src/clients/add/LoginSettingsPanel.tsx b/src/clients/add/LoginSettingsPanel.tsx index 56ee7a15dc..43e0f3b914 100644 --- a/src/clients/add/LoginSettingsPanel.tsx +++ b/src/clients/add/LoginSettingsPanel.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/add/LogoutPanel.tsx b/src/clients/add/LogoutPanel.tsx index 8113a59971..4967e586e5 100644 --- a/src/clients/add/LogoutPanel.tsx +++ b/src/clients/add/LogoutPanel.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FormGroup, Switch, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/clients/add/NewClientForm.tsx b/src/clients/add/NewClientForm.tsx index 13fb0e00b5..2cb35ae9df 100644 --- a/src/clients/add/NewClientForm.tsx +++ b/src/clients/add/NewClientForm.tsx @@ -7,7 +7,7 @@ import { WizardFooter, } from "@patternfly/react-core"; import type ClientRepresentation from "@keycloak/keycloak-admin-client/lib/defs/clientRepresentation"; -import React, { useState } from "react"; +import { useState } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useHistory } from "react-router-dom"; diff --git a/src/clients/add/SamlConfig.tsx b/src/clients/add/SamlConfig.tsx index 9021a29a14..b9a4a9a2a1 100644 --- a/src/clients/add/SamlConfig.tsx +++ b/src/clients/add/SamlConfig.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/add/SamlSignature.tsx b/src/clients/add/SamlSignature.tsx index c58644beda..a1eaebda09 100644 --- a/src/clients/add/SamlSignature.tsx +++ b/src/clients/add/SamlSignature.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/advanced/AddHostDialog.tsx b/src/clients/advanced/AddHostDialog.tsx index f594df8924..c8a45b7479 100644 --- a/src/clients/advanced/AddHostDialog.tsx +++ b/src/clients/advanced/AddHostDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/advanced/AdvancedSettings.tsx b/src/clients/advanced/AdvancedSettings.tsx index eff24aac15..f35697f2e2 100644 --- a/src/clients/advanced/AdvancedSettings.tsx +++ b/src/clients/advanced/AdvancedSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Control, Controller } from "react-hook-form"; import { diff --git a/src/clients/advanced/AuthenticationOverrides.tsx b/src/clients/advanced/AuthenticationOverrides.tsx index 570a0618c4..1f56085e01 100644 --- a/src/clients/advanced/AuthenticationOverrides.tsx +++ b/src/clients/advanced/AuthenticationOverrides.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Control, Controller } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { sortBy } from "lodash-es"; diff --git a/src/clients/advanced/ClusteringPanel.tsx b/src/clients/advanced/ClusteringPanel.tsx index cda484ce7c..d38be55f09 100644 --- a/src/clients/advanced/ClusteringPanel.tsx +++ b/src/clients/advanced/ClusteringPanel.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/advanced/FineGrainOpenIdConnect.tsx b/src/clients/advanced/FineGrainOpenIdConnect.tsx index 33acf75089..341f0d5585 100644 --- a/src/clients/advanced/FineGrainOpenIdConnect.tsx +++ b/src/clients/advanced/FineGrainOpenIdConnect.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/advanced/FineGrainSamlEndpointConfig.tsx b/src/clients/advanced/FineGrainSamlEndpointConfig.tsx index 7a9f619aa3..c423d79020 100644 --- a/src/clients/advanced/FineGrainSamlEndpointConfig.tsx +++ b/src/clients/advanced/FineGrainSamlEndpointConfig.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import type { Control } from "react-hook-form"; import { ActionGroup, Button, FormGroup } from "@patternfly/react-core"; diff --git a/src/clients/advanced/OpenIdConnectCompatibilityModes.tsx b/src/clients/advanced/OpenIdConnectCompatibilityModes.tsx index 58fe053d00..52f32a2894 100644 --- a/src/clients/advanced/OpenIdConnectCompatibilityModes.tsx +++ b/src/clients/advanced/OpenIdConnectCompatibilityModes.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Control, Controller } from "react-hook-form"; import { ActionGroup, Button, FormGroup, Switch } from "@patternfly/react-core"; diff --git a/src/clients/advanced/RevocationPanel.tsx b/src/clients/advanced/RevocationPanel.tsx index ef2c37ab84..360d786e5d 100644 --- a/src/clients/advanced/RevocationPanel.tsx +++ b/src/clients/advanced/RevocationPanel.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useRef } from "react"; +import { useEffect, useRef } from "react"; import { Link } from "react-router-dom"; import { Trans, useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; diff --git a/src/clients/advanced/SaveReset.tsx b/src/clients/advanced/SaveReset.tsx index cbefc74039..a056edd976 100644 --- a/src/clients/advanced/SaveReset.tsx +++ b/src/clients/advanced/SaveReset.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { ActionGroup, ActionGroupProps, Button } from "@patternfly/react-core"; diff --git a/src/clients/advanced/TokenLifespan.tsx b/src/clients/advanced/TokenLifespan.tsx index 88f8f4489d..9d37ac7f1b 100644 --- a/src/clients/advanced/TokenLifespan.tsx +++ b/src/clients/advanced/TokenLifespan.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Control, Controller, FieldValues } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/authorization/AuthorizationDataModal.tsx b/src/clients/authorization/AuthorizationDataModal.tsx index a9d6e0c81e..4a6ed971c3 100644 --- a/src/clients/authorization/AuthorizationDataModal.tsx +++ b/src/clients/authorization/AuthorizationDataModal.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Button, diff --git a/src/clients/authorization/AuthorizationEvaluate.tsx b/src/clients/authorization/AuthorizationEvaluate.tsx index 5fa9eec450..d38489728a 100644 --- a/src/clients/authorization/AuthorizationEvaluate.tsx +++ b/src/clients/authorization/AuthorizationEvaluate.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm } from "react-hook-form"; import { diff --git a/src/clients/authorization/AuthorizationEvaluateResource.tsx b/src/clients/authorization/AuthorizationEvaluateResource.tsx index fdc958f4c0..a22ac41527 100644 --- a/src/clients/authorization/AuthorizationEvaluateResource.tsx +++ b/src/clients/authorization/AuthorizationEvaluateResource.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { ExpandableRowContent, TableComposable, diff --git a/src/clients/authorization/AuthorizationEvaluateResourcePolicies.tsx b/src/clients/authorization/AuthorizationEvaluateResourcePolicies.tsx index 194d037364..f38fc2388d 100644 --- a/src/clients/authorization/AuthorizationEvaluateResourcePolicies.tsx +++ b/src/clients/authorization/AuthorizationEvaluateResourcePolicies.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { DescriptionList, TextContent, diff --git a/src/clients/authorization/AuthorizationExport.tsx b/src/clients/authorization/AuthorizationExport.tsx index c2b870726d..e18af67297 100644 --- a/src/clients/authorization/AuthorizationExport.tsx +++ b/src/clients/authorization/AuthorizationExport.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { FormGroup, diff --git a/src/clients/authorization/DecisionStragegySelect.tsx b/src/clients/authorization/DecisionStragegySelect.tsx index 4c36298d3f..d78dfd3895 100644 --- a/src/clients/authorization/DecisionStragegySelect.tsx +++ b/src/clients/authorization/DecisionStragegySelect.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FormGroup, Radio } from "@patternfly/react-core"; diff --git a/src/clients/authorization/DeleteScopeDialog.tsx b/src/clients/authorization/DeleteScopeDialog.tsx index 98318b4170..abce991a8c 100644 --- a/src/clients/authorization/DeleteScopeDialog.tsx +++ b/src/clients/authorization/DeleteScopeDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Alert, AlertVariant } from "@patternfly/react-core"; diff --git a/src/clients/authorization/DetailCell.tsx b/src/clients/authorization/DetailCell.tsx index b5fb2a8308..fec81bbac1 100644 --- a/src/clients/authorization/DetailCell.tsx +++ b/src/clients/authorization/DetailCell.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { DescriptionList } from "@patternfly/react-core"; import type ResourceServerRepresentation from "@keycloak/keycloak-admin-client/lib/defs/resourceServerRepresentation"; diff --git a/src/clients/authorization/DetailDescription.tsx b/src/clients/authorization/DetailDescription.tsx index 7dbc673e95..81422427cc 100644 --- a/src/clients/authorization/DetailDescription.tsx +++ b/src/clients/authorization/DetailDescription.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Link } from "react-router-dom"; import type { LocationDescriptor } from "history"; import { useTranslation } from "react-i18next"; diff --git a/src/clients/authorization/EmptyPermissionsState.tsx b/src/clients/authorization/EmptyPermissionsState.tsx index 9f1eb16040..68ee3c6b6e 100644 --- a/src/clients/authorization/EmptyPermissionsState.tsx +++ b/src/clients/authorization/EmptyPermissionsState.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/authorization/ImportDialog.tsx b/src/clients/authorization/ImportDialog.tsx index 3206d058b4..ecac03561d 100644 --- a/src/clients/authorization/ImportDialog.tsx +++ b/src/clients/authorization/ImportDialog.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, useState } from "react"; +import { Fragment, useState } from "react"; import { useTranslation } from "react-i18next"; import { Alert, diff --git a/src/clients/authorization/KeyBasedAttributeInput.tsx b/src/clients/authorization/KeyBasedAttributeInput.tsx index 888fa2a188..7c399cbb02 100644 --- a/src/clients/authorization/KeyBasedAttributeInput.tsx +++ b/src/clients/authorization/KeyBasedAttributeInput.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFieldArray, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/authorization/MoreLabel.tsx b/src/clients/authorization/MoreLabel.tsx index 1051e8ca1e..74be60e9db 100644 --- a/src/clients/authorization/MoreLabel.tsx +++ b/src/clients/authorization/MoreLabel.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Label } from "@patternfly/react-core"; diff --git a/src/clients/authorization/NewPolicyDialog.tsx b/src/clients/authorization/NewPolicyDialog.tsx index 18540a3465..2f958a3c87 100644 --- a/src/clients/authorization/NewPolicyDialog.tsx +++ b/src/clients/authorization/NewPolicyDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Modal, diff --git a/src/clients/authorization/PermissionDetails.tsx b/src/clients/authorization/PermissionDetails.tsx index da9f171b54..bfb3b12949 100644 --- a/src/clients/authorization/PermissionDetails.tsx +++ b/src/clients/authorization/PermissionDetails.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm, useWatch } from "react-hook-form"; diff --git a/src/clients/authorization/Permissions.tsx b/src/clients/authorization/Permissions.tsx index 00990fc796..6b0b387568 100644 --- a/src/clients/authorization/Permissions.tsx +++ b/src/clients/authorization/Permissions.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/authorization/Policies.tsx b/src/clients/authorization/Policies.tsx index d80ab96f23..8e9fc6e334 100644 --- a/src/clients/authorization/Policies.tsx +++ b/src/clients/authorization/Policies.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/authorization/ResourceDetails.tsx b/src/clients/authorization/ResourceDetails.tsx index c4a1eaa491..3e5747d19d 100644 --- a/src/clients/authorization/ResourceDetails.tsx +++ b/src/clients/authorization/ResourceDetails.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import { Controller, FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; diff --git a/src/clients/authorization/Resources.tsx b/src/clients/authorization/Resources.tsx index 90ccca65b4..9667e6f8ad 100644 --- a/src/clients/authorization/Resources.tsx +++ b/src/clients/authorization/Resources.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/authorization/ResourcesPolicySelect.tsx b/src/clients/authorization/ResourcesPolicySelect.tsx index 49a155354e..a70b45befc 100644 --- a/src/clients/authorization/ResourcesPolicySelect.tsx +++ b/src/clients/authorization/ResourcesPolicySelect.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { Select, SelectOption, SelectVariant } from "@patternfly/react-core"; diff --git a/src/clients/authorization/ScopeDetails.tsx b/src/clients/authorization/ScopeDetails.tsx index 7dae860506..160f14748d 100644 --- a/src/clients/authorization/ScopeDetails.tsx +++ b/src/clients/authorization/ScopeDetails.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; diff --git a/src/clients/authorization/ScopePicker.tsx b/src/clients/authorization/ScopePicker.tsx index f9db75b561..6706be59c1 100644 --- a/src/clients/authorization/ScopePicker.tsx +++ b/src/clients/authorization/ScopePicker.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/authorization/ScopeSelect.tsx b/src/clients/authorization/ScopeSelect.tsx index a3ebf085d8..cf98344131 100644 --- a/src/clients/authorization/ScopeSelect.tsx +++ b/src/clients/authorization/ScopeSelect.tsx @@ -1,4 +1,4 @@ -import React, { useRef, useState } from "react"; +import { useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { Select, SelectOption, SelectVariant } from "@patternfly/react-core"; diff --git a/src/clients/authorization/Scopes.tsx b/src/clients/authorization/Scopes.tsx index 71a71d7749..a6ae5394d8 100644 --- a/src/clients/authorization/Scopes.tsx +++ b/src/clients/authorization/Scopes.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/authorization/SearchDropdown.tsx b/src/clients/authorization/SearchDropdown.tsx index 9a959d1f5e..b61df20a2d 100644 --- a/src/clients/authorization/SearchDropdown.tsx +++ b/src/clients/authorization/SearchDropdown.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm } from "react-hook-form"; import { diff --git a/src/clients/authorization/Settings.tsx b/src/clients/authorization/Settings.tsx index a018f25599..921f711840 100644 --- a/src/clients/authorization/Settings.tsx +++ b/src/clients/authorization/Settings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm } from "react-hook-form"; import { diff --git a/src/clients/authorization/evaluate/Results.tsx b/src/clients/authorization/evaluate/Results.tsx index 42d4562355..08ce0d1ba3 100644 --- a/src/clients/authorization/evaluate/Results.tsx +++ b/src/clients/authorization/evaluate/Results.tsx @@ -1,4 +1,4 @@ -import React, { KeyboardEvent, useMemo, useState } from "react"; +import { KeyboardEvent, useMemo, useState } from "react"; import { Select, SelectVariant, diff --git a/src/clients/authorization/policy/Aggregate.tsx b/src/clients/authorization/policy/Aggregate.tsx index 0910a17627..f917044b10 100644 --- a/src/clients/authorization/policy/Aggregate.tsx +++ b/src/clients/authorization/policy/Aggregate.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useParams } from "react-router-dom"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/clients/authorization/policy/Client.tsx b/src/clients/authorization/policy/Client.tsx index 6189a6064f..267b584f15 100644 --- a/src/clients/authorization/policy/Client.tsx +++ b/src/clients/authorization/policy/Client.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Controller, useFormContext } from "react-hook-form"; import { SelectOption, diff --git a/src/clients/authorization/policy/ClientScope.tsx b/src/clients/authorization/policy/ClientScope.tsx index c511ecf49d..6213947964 100644 --- a/src/clients/authorization/policy/ClientScope.tsx +++ b/src/clients/authorization/policy/ClientScope.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useFormContext, Controller } from "react-hook-form"; import { FormGroup, Button, Checkbox } from "@patternfly/react-core"; diff --git a/src/clients/authorization/policy/Group.tsx b/src/clients/authorization/policy/Group.tsx index c891c439c6..bea58ee2cc 100644 --- a/src/clients/authorization/policy/Group.tsx +++ b/src/clients/authorization/policy/Group.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useFormContext, Controller } from "react-hook-form"; import { MinusCircleIcon } from "@patternfly/react-icons"; diff --git a/src/clients/authorization/policy/JavaScript.tsx b/src/clients/authorization/policy/JavaScript.tsx index a23910ce65..37a7bfcb99 100644 --- a/src/clients/authorization/policy/JavaScript.tsx +++ b/src/clients/authorization/policy/JavaScript.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/clients/authorization/policy/LogicSelector.tsx b/src/clients/authorization/policy/LogicSelector.tsx index b0cdb49944..ec6157b729 100644 --- a/src/clients/authorization/policy/LogicSelector.tsx +++ b/src/clients/authorization/policy/LogicSelector.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FormGroup, Radio } from "@patternfly/react-core"; diff --git a/src/clients/authorization/policy/NameDescription.tsx b/src/clients/authorization/policy/NameDescription.tsx index 57a39f0fa7..cb0f7f8989 100644 --- a/src/clients/authorization/policy/NameDescription.tsx +++ b/src/clients/authorization/policy/NameDescription.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/clients/authorization/policy/PolicyDetails.tsx b/src/clients/authorization/policy/PolicyDetails.tsx index 9411b80d77..aafcf8f334 100644 --- a/src/clients/authorization/policy/PolicyDetails.tsx +++ b/src/clients/authorization/policy/PolicyDetails.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent, useState } from "react"; +import { FunctionComponent, useState } from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/clients/authorization/policy/Regex.tsx b/src/clients/authorization/policy/Regex.tsx index e923be48c3..baddcde62f 100644 --- a/src/clients/authorization/policy/Regex.tsx +++ b/src/clients/authorization/policy/Regex.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/clients/authorization/policy/Role.tsx b/src/clients/authorization/policy/Role.tsx index d0a73a1866..2fda29fb5a 100644 --- a/src/clients/authorization/policy/Role.tsx +++ b/src/clients/authorization/policy/Role.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useFormContext, Controller } from "react-hook-form"; import { FormGroup, Button, Checkbox } from "@patternfly/react-core"; diff --git a/src/clients/authorization/policy/Time.tsx b/src/clients/authorization/policy/Time.tsx index af8a142821..595690b45f 100644 --- a/src/clients/authorization/policy/Time.tsx +++ b/src/clients/authorization/policy/Time.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/authorization/policy/User.tsx b/src/clients/authorization/policy/User.tsx index 6b15647777..bb21c0b877 100644 --- a/src/clients/authorization/policy/User.tsx +++ b/src/clients/authorization/policy/User.tsx @@ -1,5 +1,3 @@ -import React from "react"; - import { UserSelect } from "../../../components/users/UserSelect"; export const User = () => ( diff --git a/src/clients/credentials/ClientSecret.tsx b/src/clients/credentials/ClientSecret.tsx index 172de79f79..45131beb0c 100644 --- a/src/clients/credentials/ClientSecret.tsx +++ b/src/clients/credentials/ClientSecret.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { diff --git a/src/clients/credentials/Credentials.tsx b/src/clients/credentials/Credentials.tsx index e4eccbc8f2..46753ea013 100644 --- a/src/clients/credentials/Credentials.tsx +++ b/src/clients/credentials/Credentials.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Controller, useFormContext, useWatch } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/credentials/SignedJWT.tsx b/src/clients/credentials/SignedJWT.tsx index 941d0028dd..aa6d2140fd 100644 --- a/src/clients/credentials/SignedJWT.tsx +++ b/src/clients/credentials/SignedJWT.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/clients/credentials/X509.tsx b/src/clients/credentials/X509.tsx index 90add63b26..2b14b6987d 100644 --- a/src/clients/credentials/X509.tsx +++ b/src/clients/credentials/X509.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FormGroup, Switch, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/clients/import/ImportForm.tsx b/src/clients/import/ImportForm.tsx index 4b47a4d617..ea1c8e5788 100644 --- a/src/clients/import/ImportForm.tsx +++ b/src/clients/import/ImportForm.tsx @@ -6,7 +6,7 @@ import { PageSection, } from "@patternfly/react-core"; import type ClientRepresentation from "@keycloak/keycloak-admin-client/lib/defs/clientRepresentation"; -import React, { useState } from "react"; +import { useState } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { Link, useHistory } from "react-router-dom"; diff --git a/src/clients/initial-access/AccessTokenDialog.tsx b/src/clients/initial-access/AccessTokenDialog.tsx index b03bde8cde..9470611098 100644 --- a/src/clients/initial-access/AccessTokenDialog.tsx +++ b/src/clients/initial-access/AccessTokenDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Alert, diff --git a/src/clients/initial-access/CreateInitialAccessToken.tsx b/src/clients/initial-access/CreateInitialAccessToken.tsx index 02a9382f45..049c6de9fd 100644 --- a/src/clients/initial-access/CreateInitialAccessToken.tsx +++ b/src/clients/initial-access/CreateInitialAccessToken.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm } from "react-hook-form"; import { diff --git a/src/clients/initial-access/InitialAccessTokenList.tsx b/src/clients/initial-access/InitialAccessTokenList.tsx index c6cf1b2958..f1f359c38b 100644 --- a/src/clients/initial-access/InitialAccessTokenList.tsx +++ b/src/clients/initial-access/InitialAccessTokenList.tsx @@ -1,7 +1,7 @@ import { AlertVariant, Button, ButtonVariant } from "@patternfly/react-core"; import { wrappable } from "@patternfly/react-table"; import type ClientInitialAccessPresentation from "@keycloak/keycloak-admin-client/lib/defs/clientInitialAccessPresentation"; -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link, useHistory } from "react-router-dom"; import { useAlerts } from "../../components/alert/Alerts"; diff --git a/src/clients/keys/Certificate.tsx b/src/clients/keys/Certificate.tsx index 235523ab5b..23fef13e56 100644 --- a/src/clients/keys/Certificate.tsx +++ b/src/clients/keys/Certificate.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { FormGroup, GenerateId } from "@patternfly/react-core"; diff --git a/src/clients/keys/GenerateKeyDialog.tsx b/src/clients/keys/GenerateKeyDialog.tsx index 7895c1b286..f3770150bb 100644 --- a/src/clients/keys/GenerateKeyDialog.tsx +++ b/src/clients/keys/GenerateKeyDialog.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, diff --git a/src/clients/keys/ImportKeyDialog.tsx b/src/clients/keys/ImportKeyDialog.tsx index bd1c7c528e..8fb1322c60 100644 --- a/src/clients/keys/ImportKeyDialog.tsx +++ b/src/clients/keys/ImportKeyDialog.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm, useWatch } from "react-hook-form"; import { diff --git a/src/clients/keys/Keys.tsx b/src/clients/keys/Keys.tsx index 98a9faf08b..26c391700d 100644 --- a/src/clients/keys/Keys.tsx +++ b/src/clients/keys/Keys.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import FileSaver from "file-saver"; import { diff --git a/src/clients/keys/SamlImportKeyDialog.tsx b/src/clients/keys/SamlImportKeyDialog.tsx index e418820512..e514d064de 100644 --- a/src/clients/keys/SamlImportKeyDialog.tsx +++ b/src/clients/keys/SamlImportKeyDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { FormProvider, useFormContext } from "react-hook-form"; import { AlertVariant } from "@patternfly/react-core"; diff --git a/src/clients/keys/SamlKeys.tsx b/src/clients/keys/SamlKeys.tsx index ef4ad398d6..9ee6914027 100644 --- a/src/clients/keys/SamlKeys.tsx +++ b/src/clients/keys/SamlKeys.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, useState } from "react"; +import { Fragment, useState } from "react"; import FileSaver from "file-saver"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; diff --git a/src/clients/keys/SamlKeysDialog.tsx b/src/clients/keys/SamlKeysDialog.tsx index 7a7086f5af..c88dae8586 100644 --- a/src/clients/keys/SamlKeysDialog.tsx +++ b/src/clients/keys/SamlKeysDialog.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import FileSaver from "file-saver"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/clients/keys/StoreSettings.tsx b/src/clients/keys/StoreSettings.tsx index b4a60c2ce3..7e8333a37e 100644 --- a/src/clients/keys/StoreSettings.tsx +++ b/src/clients/keys/StoreSettings.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/clients/scopes/AddScopeDialog.tsx b/src/clients/scopes/AddScopeDialog.tsx index 89e219ddf2..8092871cff 100644 --- a/src/clients/scopes/AddScopeDialog.tsx +++ b/src/clients/scopes/AddScopeDialog.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState } from "react"; +import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { Button, diff --git a/src/clients/scopes/ClientScopes.tsx b/src/clients/scopes/ClientScopes.tsx index 3097496fc9..08576ba535 100644 --- a/src/clients/scopes/ClientScopes.tsx +++ b/src/clients/scopes/ClientScopes.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/scopes/CopyToClipboardButton.tsx b/src/clients/scopes/CopyToClipboardButton.tsx index f3742a9ecb..d2f786384f 100644 --- a/src/clients/scopes/CopyToClipboardButton.tsx +++ b/src/clients/scopes/CopyToClipboardButton.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { ClipboardCopyButton, diff --git a/src/clients/scopes/DecicatedScope.tsx b/src/clients/scopes/DecicatedScope.tsx index 6eafcea16d..e08033dbf7 100644 --- a/src/clients/scopes/DecicatedScope.tsx +++ b/src/clients/scopes/DecicatedScope.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant, diff --git a/src/clients/scopes/DedicatedScopes.tsx b/src/clients/scopes/DedicatedScopes.tsx index b34c804646..d98433eb32 100644 --- a/src/clients/scopes/DedicatedScopes.tsx +++ b/src/clients/scopes/DedicatedScopes.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/clients/scopes/EvaluateScopes.tsx b/src/clients/scopes/EvaluateScopes.tsx index 0a0b0df8f9..4daa42aed9 100644 --- a/src/clients/scopes/EvaluateScopes.tsx +++ b/src/clients/scopes/EvaluateScopes.tsx @@ -23,7 +23,7 @@ import type ProtocolMapperRepresentation from "@keycloak/keycloak-admin-client/l import type RoleRepresentation from "@keycloak/keycloak-admin-client/lib/defs/roleRepresentation"; import type { ProtocolMapperTypeRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/serverInfoRepesentation"; import type UserRepresentation from "@keycloak/keycloak-admin-client/lib/defs/userRepresentation"; -import React, { useEffect, useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { useHelp } from "../../components/help-enabler/HelpHeader"; import { HelpItem } from "../../components/help-enabler/HelpItem"; diff --git a/src/clients/scopes/GeneratedCodeTab.tsx b/src/clients/scopes/GeneratedCodeTab.tsx index fd3b4940d0..cb2dd88167 100644 --- a/src/clients/scopes/GeneratedCodeTab.tsx +++ b/src/clients/scopes/GeneratedCodeTab.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { CodeBlock, diff --git a/src/clients/service-account/ServiceAccount.tsx b/src/clients/service-account/ServiceAccount.tsx index 1c63ad626b..f0d97ee922 100644 --- a/src/clients/service-account/ServiceAccount.tsx +++ b/src/clients/service-account/ServiceAccount.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link } from "react-router-dom"; import { Trans, useTranslation } from "react-i18next"; import { AlertVariant, PageSection } from "@patternfly/react-core"; diff --git a/src/components/alert/AlertPanel.tsx b/src/components/alert/AlertPanel.tsx index 8de4b8d474..190651cd9f 100644 --- a/src/components/alert/AlertPanel.tsx +++ b/src/components/alert/AlertPanel.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { AlertGroup, Alert, diff --git a/src/components/alert/Alerts.tsx b/src/components/alert/Alerts.tsx index 31954d9376..42cbf4243f 100644 --- a/src/components/alert/Alerts.tsx +++ b/src/components/alert/Alerts.tsx @@ -1,4 +1,4 @@ -import React, { createContext, FunctionComponent, useState } from "react"; +import { createContext, FunctionComponent, useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant } from "@patternfly/react-core"; import axios from "axios"; diff --git a/src/components/bread-crumb/GroupBreadCrumbs.tsx b/src/components/bread-crumb/GroupBreadCrumbs.tsx index 918a385410..707255d6ea 100644 --- a/src/components/bread-crumb/GroupBreadCrumbs.tsx +++ b/src/components/bread-crumb/GroupBreadCrumbs.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { Link, useHistory, useLocation } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { Breadcrumb, BreadcrumbItem } from "@patternfly/react-core"; diff --git a/src/components/bread-crumb/PageBreadCrumbs.tsx b/src/components/bread-crumb/PageBreadCrumbs.tsx index fa7bb08fc8..21586250cb 100644 --- a/src/components/bread-crumb/PageBreadCrumbs.tsx +++ b/src/components/bread-crumb/PageBreadCrumbs.tsx @@ -1,4 +1,4 @@ -import React, { isValidElement } from "react"; +import { isValidElement } from "react"; import { Link } from "react-router-dom"; import useBreadcrumbs, { BreadcrumbData, diff --git a/src/components/client-scope/ClientScopeTypes.tsx b/src/components/client-scope/ClientScopeTypes.tsx index b5408d4729..2c1bb3b14a 100644 --- a/src/components/client-scope/ClientScopeTypes.tsx +++ b/src/components/client-scope/ClientScopeTypes.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import type { TFunction } from "i18next"; import { useTranslation } from "react-i18next"; diff --git a/src/components/client/ClientSelect.tsx b/src/components/client/ClientSelect.tsx index baa7a9e58c..207ea746c1 100644 --- a/src/components/client/ClientSelect.tsx +++ b/src/components/client/ClientSelect.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/components/confirm-dialog/ConfirmDialog.test.tsx b/src/components/confirm-dialog/ConfirmDialog.test.tsx index de7a37a848..84db9306bd 100644 --- a/src/components/confirm-dialog/ConfirmDialog.test.tsx +++ b/src/components/confirm-dialog/ConfirmDialog.test.tsx @@ -1,7 +1,6 @@ /** * @vitest-environment jsdom */ -import React from "react"; import { fireEvent, render, screen } from "@testing-library/react"; import { describe, expect, it, vi } from "vitest"; import { useConfirmDialog } from "./ConfirmDialog"; diff --git a/src/components/confirm-dialog/ConfirmDialog.tsx b/src/components/confirm-dialog/ConfirmDialog.tsx index 9c9603dab0..0bce2f47b7 100644 --- a/src/components/confirm-dialog/ConfirmDialog.tsx +++ b/src/components/confirm-dialog/ConfirmDialog.tsx @@ -1,4 +1,4 @@ -import React, { ReactElement, ReactNode, useState } from "react"; +import { ReactElement, ReactNode, useState } from "react"; import { Button, ButtonVariant, diff --git a/src/components/data-loader/DataLoader.test.tsx b/src/components/data-loader/DataLoader.test.tsx index 1cc5a5e1e8..00d4c71ed8 100644 --- a/src/components/data-loader/DataLoader.test.tsx +++ b/src/components/data-loader/DataLoader.test.tsx @@ -5,7 +5,7 @@ import type KeycloakAdminClient from "@keycloak/keycloak-admin-client"; import type { ServerInfoRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/serverInfoRepesentation"; import { render, waitFor } from "@testing-library/react"; import type Keycloak from "keycloak-js"; -import React, { FunctionComponent } from "react"; +import { FunctionComponent } from "react"; import { HashRouter } from "react-router-dom"; import { describe, expect, it } from "vitest"; import { AccessContextProvider } from "../../context/access/Access"; diff --git a/src/components/data-loader/DataLoader.tsx b/src/components/data-loader/DataLoader.tsx index 46f1fb7cf3..c1251d7367 100644 --- a/src/components/data-loader/DataLoader.tsx +++ b/src/components/data-loader/DataLoader.tsx @@ -1,4 +1,4 @@ -import React, { DependencyList, useState } from "react"; +import { DependencyList, ReactNode, useState } from "react"; import { useFetch } from "../../context/auth/AdminClient"; import { KeycloakSpinner } from "../keycloak-spinner/KeycloakSpinner"; @@ -6,7 +6,7 @@ import { KeycloakSpinner } from "../keycloak-spinner/KeycloakSpinner"; type DataLoaderProps = { loader: () => Promise; deps?: DependencyList; - children: ((arg: T) => any) | React.ReactNode; + children: ((arg: T) => any) | ReactNode; }; export function DataLoader(props: DataLoaderProps) { diff --git a/src/components/download-dialog/DownloadDialog.tsx b/src/components/download-dialog/DownloadDialog.tsx index 2a1755ad59..61c718a317 100644 --- a/src/components/download-dialog/DownloadDialog.tsx +++ b/src/components/download-dialog/DownloadDialog.tsx @@ -11,7 +11,7 @@ import { StackItem, } from "@patternfly/react-core"; import FileSaver from "file-saver"; -import React, { useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { useAdminClient, useFetch } from "../../context/auth/AdminClient"; import { useServerInfo } from "../../context/server-info/ServerInfoProvider"; diff --git a/src/components/dynamic/BooleanComponent.tsx b/src/components/dynamic/BooleanComponent.tsx index b4af4e71d6..84fd1ea276 100644 --- a/src/components/dynamic/BooleanComponent.tsx +++ b/src/components/dynamic/BooleanComponent.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { FormGroup, Switch } from "@patternfly/react-core"; diff --git a/src/components/dynamic/ClientSelectComponent.tsx b/src/components/dynamic/ClientSelectComponent.tsx index 9d0ac2a1ed..0664e2aa1a 100644 --- a/src/components/dynamic/ClientSelectComponent.tsx +++ b/src/components/dynamic/ClientSelectComponent.tsx @@ -1,5 +1,3 @@ -import React from "react"; - import type { ComponentProps } from "./components"; import { ClientSelect } from "../client/ClientSelect"; diff --git a/src/components/dynamic/DynamicComponents.tsx b/src/components/dynamic/DynamicComponents.tsx index 5ab91ce9d7..a24239bb51 100644 --- a/src/components/dynamic/DynamicComponents.tsx +++ b/src/components/dynamic/DynamicComponents.tsx @@ -1,4 +1,3 @@ -import React from "react"; import type { ConfigPropertyRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/authenticatorConfigInfoRepresentation"; import { COMPONENTS, isValidComponentType } from "./components"; diff --git a/src/components/dynamic/FileComponent.tsx b/src/components/dynamic/FileComponent.tsx index ea5a083bc7..9fa9af3123 100644 --- a/src/components/dynamic/FileComponent.tsx +++ b/src/components/dynamic/FileComponent.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FileUpload, FormGroup } from "@patternfly/react-core"; diff --git a/src/components/dynamic/GroupComponent.tsx b/src/components/dynamic/GroupComponent.tsx index 49664c4aa1..6f79a00070 100644 --- a/src/components/dynamic/GroupComponent.tsx +++ b/src/components/dynamic/GroupComponent.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/components/dynamic/ListComponent.tsx b/src/components/dynamic/ListComponent.tsx index eea408c336..84033dabf2 100644 --- a/src/components/dynamic/ListComponent.tsx +++ b/src/components/dynamic/ListComponent.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/components/dynamic/MapComponent.tsx b/src/components/dynamic/MapComponent.tsx index 248499a638..71c08e7d81 100644 --- a/src/components/dynamic/MapComponent.tsx +++ b/src/components/dynamic/MapComponent.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/components/dynamic/MultivaluedListComponent.tsx b/src/components/dynamic/MultivaluedListComponent.tsx index f22ae9e4a8..93474f7fd7 100644 --- a/src/components/dynamic/MultivaluedListComponent.tsx +++ b/src/components/dynamic/MultivaluedListComponent.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/components/dynamic/MultivaluedScopesComponent.tsx b/src/components/dynamic/MultivaluedScopesComponent.tsx index df1e6d0a47..1a3bc96c29 100644 --- a/src/components/dynamic/MultivaluedScopesComponent.tsx +++ b/src/components/dynamic/MultivaluedScopesComponent.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { Button, Chip, ChipGroup, FormGroup } from "@patternfly/react-core"; diff --git a/src/components/dynamic/MultivaluedStringComponent.tsx b/src/components/dynamic/MultivaluedStringComponent.tsx index de5bc9fbac..ff2cc228cc 100644 --- a/src/components/dynamic/MultivaluedStringComponent.tsx +++ b/src/components/dynamic/MultivaluedStringComponent.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/components/dynamic/RoleComponent.tsx b/src/components/dynamic/RoleComponent.tsx index d7469080f2..d061c55d23 100644 --- a/src/components/dynamic/RoleComponent.tsx +++ b/src/components/dynamic/RoleComponent.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { diff --git a/src/components/dynamic/ScriptComponent.tsx b/src/components/dynamic/ScriptComponent.tsx index 286d2d2148..23bff01014 100644 --- a/src/components/dynamic/ScriptComponent.tsx +++ b/src/components/dynamic/ScriptComponent.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/components/dynamic/StringComponent.tsx b/src/components/dynamic/StringComponent.tsx index 787c1b98a0..7c01af80be 100644 --- a/src/components/dynamic/StringComponent.tsx +++ b/src/components/dynamic/StringComponent.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/components/error/ErrorRenderer.tsx b/src/components/error/ErrorRenderer.tsx index 5fb2f47565..3cd2d22477 100644 --- a/src/components/error/ErrorRenderer.tsx +++ b/src/components/error/ErrorRenderer.tsx @@ -5,7 +5,7 @@ import { AlertVariant, PageSection, } from "@patternfly/react-core"; -import React from "react"; + import type { FallbackProps } from "react-error-boundary"; import { useTranslation } from "react-i18next"; diff --git a/src/components/external-link/FormattedLink.tsx b/src/components/external-link/FormattedLink.tsx index cdb13ca82a..10bfe9efe5 100644 --- a/src/components/external-link/FormattedLink.tsx +++ b/src/components/external-link/FormattedLink.tsx @@ -1,4 +1,4 @@ -import React, { AnchorHTMLAttributes } from "react"; +import { AnchorHTMLAttributes } from "react"; import { ExternalLinkAltIcon } from "@patternfly/react-icons"; import type { IFormatter, IFormatterValueType } from "@patternfly/react-table"; diff --git a/src/components/form-access/FormAccess.test.tsx b/src/components/form-access/FormAccess.test.tsx index 66c0c3d51d..9c215381f9 100644 --- a/src/components/form-access/FormAccess.test.tsx +++ b/src/components/form-access/FormAccess.test.tsx @@ -1,7 +1,6 @@ /** * @vitest-environment jsdom */ -import React from "react"; import type WhoAmIRepresentation from "@keycloak/keycloak-admin-client/lib/defs/whoAmIRepresentation"; import { FormGroup, Switch } from "@patternfly/react-core"; import { render, screen } from "@testing-library/react"; diff --git a/src/components/form-access/FormAccess.tsx b/src/components/form-access/FormAccess.tsx index 3b8a89ebc7..969233e853 100644 --- a/src/components/form-access/FormAccess.tsx +++ b/src/components/form-access/FormAccess.tsx @@ -1,4 +1,4 @@ -import React, { +import { Children, cloneElement, FunctionComponent, diff --git a/src/components/group/GroupPath.tsx b/src/components/group/GroupPath.tsx index 6dd7e96e92..82dad1d80b 100644 --- a/src/components/group/GroupPath.tsx +++ b/src/components/group/GroupPath.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import { useState } from "react"; import { Tooltip } from "@patternfly/react-core"; import type { TableTextProps } from "@patternfly/react-table"; @@ -27,7 +27,7 @@ export const GroupPath = ({ onMouseEnter: onMouseEnterProp, ...props }: GroupPathProps) => { - const [tooltip, setTooltip] = React.useState(""); + const [tooltip, setTooltip] = useState(""); const onMouseEnter = (event: any) => { setTooltip(path!); onMouseEnterProp?.(event); diff --git a/src/components/group/GroupPickerDialog.tsx b/src/components/group/GroupPickerDialog.tsx index 57b4acd615..c51d283a61 100644 --- a/src/components/group/GroupPickerDialog.tsx +++ b/src/components/group/GroupPickerDialog.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Breadcrumb, diff --git a/src/components/help-enabler/HelpHeader.tsx b/src/components/help-enabler/HelpHeader.tsx index 18b46cf3b4..2c1cb1fecd 100644 --- a/src/components/help-enabler/HelpHeader.tsx +++ b/src/components/help-enabler/HelpHeader.tsx @@ -9,7 +9,7 @@ import { TextContent, } from "@patternfly/react-core"; import { ExternalLinkAltIcon, HelpIcon } from "@patternfly/react-icons"; -import React, { createContext, FunctionComponent, useState } from "react"; +import { createContext, FunctionComponent, useState } from "react"; import { useTranslation } from "react-i18next"; import useRequiredContext from "../../utils/useRequiredContext"; import helpUrls from "../../help-urls"; diff --git a/src/components/help-enabler/HelpItem.tsx b/src/components/help-enabler/HelpItem.tsx index 53c3b7047a..f6276ca598 100644 --- a/src/components/help-enabler/HelpItem.tsx +++ b/src/components/help-enabler/HelpItem.tsx @@ -1,6 +1,6 @@ import { Popover } from "@patternfly/react-core"; import { HelpIcon } from "@patternfly/react-icons"; -import React, { isValidElement, ReactNode } from "react"; +import { isValidElement, ReactNode } from "react"; import { useTranslation } from "react-i18next"; import { useHelp } from "./HelpHeader"; diff --git a/src/components/json-file-upload/FileUploadForm.tsx b/src/components/json-file-upload/FileUploadForm.tsx index 73262a7300..26a368b438 100644 --- a/src/components/json-file-upload/FileUploadForm.tsx +++ b/src/components/json-file-upload/FileUploadForm.tsx @@ -1,4 +1,9 @@ -import React, { useState } from "react"; +import { + ChangeEvent, + DragEvent as ReactDragEvent, + MouseEvent as ReactMouseEvent, + useState, +} from "react"; import { FormGroup, FileUpload, @@ -18,9 +23,9 @@ type FileUploadType = { }; export type FileUploadEvent = - | React.DragEvent // User dragged/dropped a file - | React.ChangeEvent // User typed in the TextArea - | React.MouseEvent; // User clicked Clear button + | ReactDragEvent // User dragged/dropped a file + | ChangeEvent // User typed in the TextArea + | ReactMouseEvent; // User clicked Clear button export type FileUploadFormProps = Omit & { id: string; diff --git a/src/components/json-file-upload/JsonFileUpload.tsx b/src/components/json-file-upload/JsonFileUpload.tsx index 60b6c00e77..0519c2d1c3 100644 --- a/src/components/json-file-upload/JsonFileUpload.tsx +++ b/src/components/json-file-upload/JsonFileUpload.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Language } from "@patternfly/react-code-editor"; import { FileUploadForm, FileUploadFormProps } from "./FileUploadForm"; diff --git a/src/components/key-value-form/AttributeForm.tsx b/src/components/key-value-form/AttributeForm.tsx index dbcc2726aa..bdbcbde8a3 100644 --- a/src/components/key-value-form/AttributeForm.tsx +++ b/src/components/key-value-form/AttributeForm.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { FormProvider, UseFormMethods } from "react-hook-form"; import { ActionGroup, Button } from "@patternfly/react-core"; diff --git a/src/components/key-value-form/KeyValueInput.tsx b/src/components/key-value-form/KeyValueInput.tsx index 2a0fa9e0b2..683edaeb77 100644 --- a/src/components/key-value-form/KeyValueInput.tsx +++ b/src/components/key-value-form/KeyValueInput.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { useFieldArray, useFormContext, useWatch } from "react-hook-form"; import { diff --git a/src/components/keycloak-card/KeycloakCard.tsx b/src/components/keycloak-card/KeycloakCard.tsx index 52e5e3e609..6e48718344 100644 --- a/src/components/keycloak-card/KeycloakCard.tsx +++ b/src/components/keycloak-card/KeycloakCard.tsx @@ -1,4 +1,4 @@ -import React, { ReactElement, useState } from "react"; +import { ReactElement, useState } from "react"; import { Card, CardHeader, diff --git a/src/components/keycloak-spinner/KeycloakSpinner.tsx b/src/components/keycloak-spinner/KeycloakSpinner.tsx index 66238ab07f..14d4c5bdd5 100644 --- a/src/components/keycloak-spinner/KeycloakSpinner.tsx +++ b/src/components/keycloak-spinner/KeycloakSpinner.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Spinner } from "@patternfly/react-core"; export const KeycloakSpinner = () => ( diff --git a/src/components/keycloak-tabs/KeycloakTabs.tsx b/src/components/keycloak-tabs/KeycloakTabs.tsx index f60e8ba995..abd14cdbfd 100644 --- a/src/components/keycloak-tabs/KeycloakTabs.tsx +++ b/src/components/keycloak-tabs/KeycloakTabs.tsx @@ -1,4 +1,4 @@ -import React, { Children, isValidElement, useState } from "react"; +import { Children, isValidElement, useState } from "react"; import { useHistory, useRouteMatch } from "react-router-dom"; import { TabProps, Tabs, TabsProps } from "@patternfly/react-core"; import { useFormContext } from "react-hook-form"; @@ -30,7 +30,9 @@ export const KeycloakTabs = ({ const match = useRouteMatch(); const params = match.params as { [index: string]: string }; const history = useHistory(); - const form = useFormContext(); + const form = useFormContext() as + | ReturnType + | undefined; const [key, setKey] = useState(""); const firstTab = Children.toArray(children)[0]; @@ -47,7 +49,7 @@ export const KeycloakTabs = ({ messageKey: "common:leaveDirtyConfirm", continueButtonLabel: "common:leave", onConfirm: () => { - form.reset(); + form?.reset(); history.push(createUrl(path, { ...params, [paramName]: key as string })); }, }); diff --git a/src/components/keycloak-text-area/KeycloakTextArea.tsx b/src/components/keycloak-text-area/KeycloakTextArea.tsx index 62a5833bfb..5981bed378 100644 --- a/src/components/keycloak-text-area/KeycloakTextArea.tsx +++ b/src/components/keycloak-text-area/KeycloakTextArea.tsx @@ -1,5 +1,5 @@ import { TextArea, TextAreaProps } from "@patternfly/react-core"; -import React, { ComponentProps, forwardRef, HTMLProps } from "react"; +import { ComponentProps, forwardRef, HTMLProps } from "react"; // PatternFly changes the signature of the 'onChange' handler for textarea elements. // This causes issues with React Hook Form as it expects the default signature for a textarea element. diff --git a/src/components/keycloak-text-input/KeycloakTextInput.tsx b/src/components/keycloak-text-input/KeycloakTextInput.tsx index 02023ee30b..8cce9cd873 100644 --- a/src/components/keycloak-text-input/KeycloakTextInput.tsx +++ b/src/components/keycloak-text-input/KeycloakTextInput.tsx @@ -1,5 +1,5 @@ import { TextInput, TextInputProps } from "@patternfly/react-core"; -import React, { ComponentProps, forwardRef, HTMLProps } from "react"; +import { ComponentProps, forwardRef, HTMLProps } from "react"; // PatternFly changes the signature of the 'onChange' handler for input elements. // This causes issues with React Hook Form as it expects the default signature for an input element. diff --git a/src/components/list-empty-state/ListEmptyState.tsx b/src/components/list-empty-state/ListEmptyState.tsx index 6237f311c1..77c66074fc 100644 --- a/src/components/list-empty-state/ListEmptyState.tsx +++ b/src/components/list-empty-state/ListEmptyState.tsx @@ -1,4 +1,4 @@ -import React, { MouseEventHandler } from "react"; +import { ComponentClass, MouseEventHandler, ReactNode } from "react"; import { EmptyState, EmptyStateIcon, @@ -20,11 +20,11 @@ export type Action = { export type ListEmptyStateProps = { message: string; - instructions: React.ReactNode; + instructions: ReactNode; primaryActionText?: string; onPrimaryAction?: MouseEventHandler; hasIcon?: boolean; - icon?: React.ComponentClass; + icon?: ComponentClass; isSearchVariant?: boolean; secondaryActions?: Action[]; }; diff --git a/src/components/multi-line-input/MultiLineInput.tsx b/src/components/multi-line-input/MultiLineInput.tsx index 575da5d704..c42972e01d 100644 --- a/src/components/multi-line-input/MultiLineInput.tsx +++ b/src/components/multi-line-input/MultiLineInput.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, useEffect } from "react"; +import { Fragment, useEffect } from "react"; import { useFormContext } from "react-hook-form"; import { TextInput, diff --git a/src/components/password-input/PasswordInput.tsx b/src/components/password-input/PasswordInput.tsx index 5b022dbae8..57010e5f71 100644 --- a/src/components/password-input/PasswordInput.tsx +++ b/src/components/password-input/PasswordInput.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { forwardRef, MutableRefObject, Ref, useState } from "react"; import { useTranslation } from "react-i18next"; import { Button, InputGroup } from "@patternfly/react-core"; import { EyeIcon, EyeSlashIcon } from "@patternfly/react-icons"; @@ -39,12 +39,9 @@ const PasswordInputBase = ({ ); }; -export const PasswordInput = React.forwardRef( - (props: PasswordInputProps, ref: React.Ref) => ( - } - /> +export const PasswordInput = forwardRef( + (props: PasswordInputProps, ref: Ref) => ( + } /> ) ); PasswordInput.displayName = "PasswordInput"; diff --git a/src/components/permission-tab/PermissionTab.tsx b/src/components/permission-tab/PermissionTab.tsx index 9121049171..7db1a4d643 100644 --- a/src/components/permission-tab/PermissionTab.tsx +++ b/src/components/permission-tab/PermissionTab.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory } from "react-router-dom"; import { Trans, useTranslation } from "react-i18next"; import { diff --git a/src/components/realm-selector/RealmSelector.tsx b/src/components/realm-selector/RealmSelector.tsx index b73026df9d..0f791b5025 100644 --- a/src/components/realm-selector/RealmSelector.tsx +++ b/src/components/realm-selector/RealmSelector.tsx @@ -11,7 +11,7 @@ import { SplitItem, } from "@patternfly/react-core"; import { CheckIcon } from "@patternfly/react-icons"; -import React, { ReactElement, useMemo, useState } from "react"; +import { Fragment, ReactElement, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { useHistory } from "react-router-dom"; @@ -95,7 +95,7 @@ export const RealmSelector = () => { )); const addRealmComponent = ( - + {whoAmI.canCreateRealm() && ( <> @@ -104,7 +104,7 @@ export const RealmSelector = () => { )} - + ); return ( diff --git a/src/components/role-mapping/AddRoleMappingModal.tsx b/src/components/role-mapping/AddRoleMappingModal.tsx index fe5858f056..c2d925e1b0 100644 --- a/src/components/role-mapping/AddRoleMappingModal.tsx +++ b/src/components/role-mapping/AddRoleMappingModal.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Badge, diff --git a/src/components/role-mapping/RoleMapping.tsx b/src/components/role-mapping/RoleMapping.tsx index e4b26628ab..0a2d8bd89f 100644 --- a/src/components/role-mapping/RoleMapping.tsx +++ b/src/components/role-mapping/RoleMapping.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant, diff --git a/src/components/routable-tabs/RoutableTabs.tsx b/src/components/routable-tabs/RoutableTabs.tsx index 55f1c0b976..253df516f0 100644 --- a/src/components/routable-tabs/RoutableTabs.tsx +++ b/src/components/routable-tabs/RoutableTabs.tsx @@ -5,7 +5,7 @@ import { TabsProps, } from "@patternfly/react-core"; import type { History, LocationDescriptorObject } from "history"; -import React, { +import { Children, isValidElement, JSXElementConstructor, diff --git a/src/components/scroll-form/FormPanel.tsx b/src/components/scroll-form/FormPanel.tsx index 3329f3c5c6..bcb2925616 100644 --- a/src/components/scroll-form/FormPanel.tsx +++ b/src/components/scroll-form/FormPanel.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent } from "react"; +import { FunctionComponent } from "react"; import { Card, CardBody, diff --git a/src/components/scroll-form/ScrollForm.tsx b/src/components/scroll-form/ScrollForm.tsx index 347ab0421f..9a7aac8c8d 100644 --- a/src/components/scroll-form/ScrollForm.tsx +++ b/src/components/scroll-form/ScrollForm.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, FunctionComponent, ReactNode, useMemo } from "react"; +import { Fragment, FunctionComponent, ReactNode, useMemo } from "react"; import { useTranslation } from "react-i18next"; import { Grid, diff --git a/src/components/scroll-form/ScrollPanel.tsx b/src/components/scroll-form/ScrollPanel.tsx index 4fde18e33f..cc4aa49b82 100644 --- a/src/components/scroll-form/ScrollPanel.tsx +++ b/src/components/scroll-form/ScrollPanel.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent, HTMLProps } from "react"; +import { FunctionComponent, HTMLProps } from "react"; import { Title } from "@patternfly/react-core"; import "./form-panel.css"; diff --git a/src/components/table-toolbar/KeycloakDataTable.tsx b/src/components/table-toolbar/KeycloakDataTable.tsx index 2b0422ae21..ac616da0ed 100644 --- a/src/components/table-toolbar/KeycloakDataTable.tsx +++ b/src/components/table-toolbar/KeycloakDataTable.tsx @@ -1,4 +1,5 @@ -import React, { +import { + ComponentClass, isValidElement, ReactNode, useEffect, @@ -146,7 +147,7 @@ export type DataListProps = Omit< toolbarItem?: ReactNode; subToolbar?: ReactNode; emptyState?: ReactNode; - icon?: React.ComponentClass; + icon?: ComponentClass; isNotCompact?: boolean; isRadio?: boolean; isSearching?: boolean; diff --git a/src/components/table-toolbar/PaginatingTableToolbar.tsx b/src/components/table-toolbar/PaginatingTableToolbar.tsx index a81f3d07f8..145f6489c7 100644 --- a/src/components/table-toolbar/PaginatingTableToolbar.tsx +++ b/src/components/table-toolbar/PaginatingTableToolbar.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent, ReactNode } from "react"; +import { FunctionComponent, ReactNode } from "react"; import { Pagination, ToggleTemplateProps, diff --git a/src/components/table-toolbar/TableToolbar.tsx b/src/components/table-toolbar/TableToolbar.tsx index 157bc97d6a..8d9d0f7581 100644 --- a/src/components/table-toolbar/TableToolbar.tsx +++ b/src/components/table-toolbar/TableToolbar.tsx @@ -1,9 +1,4 @@ -import React, { - FunctionComponent, - ReactNode, - useState, - KeyboardEvent, -} from "react"; +import { FunctionComponent, ReactNode, useState, KeyboardEvent } from "react"; import { Toolbar, ToolbarContent, diff --git a/src/components/time-selector/TimeSelector.tsx b/src/components/time-selector/TimeSelector.tsx index 7141563612..2b10eb77a7 100644 --- a/src/components/time-selector/TimeSelector.tsx +++ b/src/components/time-selector/TimeSelector.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { DropdownProps, diff --git a/src/components/users/UserSelect.tsx b/src/components/users/UserSelect.tsx index 3b74f8c327..71dcfcdc65 100644 --- a/src/components/users/UserSelect.tsx +++ b/src/components/users/UserSelect.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/components/view-header/ViewHeader.tsx b/src/components/view-header/ViewHeader.tsx index 99b874d25f..c3913923be 100644 --- a/src/components/view-header/ViewHeader.tsx +++ b/src/components/view-header/ViewHeader.tsx @@ -15,7 +15,7 @@ import { ToolbarContent, ToolbarItem, } from "@patternfly/react-core"; -import React, { +import { ReactElement, ReactNode, useState, @@ -168,7 +168,7 @@ export const ViewHeader = ({ {enabled && ( - {React.isValidElement(subKey) + {isValidElement(subKey) ? subKey : subKey ? t(subKey as string) diff --git a/src/components/wizard-section-header/WizardSectionHeader.tsx b/src/components/wizard-section-header/WizardSectionHeader.tsx index 4f7d369013..64bf632c2b 100644 --- a/src/components/wizard-section-header/WizardSectionHeader.tsx +++ b/src/components/wizard-section-header/WizardSectionHeader.tsx @@ -1,5 +1,5 @@ import { Text, TextContent, Title } from "@patternfly/react-core"; -import React from "react"; + import "./wizard-section-header.css"; export type WizardSectionHeaderProps = { diff --git a/src/context/RealmsContext.tsx b/src/context/RealmsContext.tsx index 047af75c37..a61a09eeee 100644 --- a/src/context/RealmsContext.tsx +++ b/src/context/RealmsContext.tsx @@ -1,6 +1,6 @@ import type RealmRepresentation from "@keycloak/keycloak-admin-client/lib/defs/realmRepresentation"; import { sortBy } from "lodash-es"; -import React, { +import { createContext, FunctionComponent, useCallback, diff --git a/src/context/access/Access.tsx b/src/context/access/Access.tsx index cde1ff1f0d..39922b465e 100644 --- a/src/context/access/Access.tsx +++ b/src/context/access/Access.tsx @@ -1,10 +1,5 @@ import type { AccessType } from "@keycloak/keycloak-admin-client/lib/defs/whoAmIRepresentation"; -import React, { - createContext, - FunctionComponent, - useEffect, - useState, -} from "react"; +import { createContext, FunctionComponent, useEffect, useState } from "react"; import { useRealm } from "../../context/realm-context/RealmContext"; import { useWhoAmI } from "../../context/whoami/WhoAmI"; import useRequiredContext from "../../utils/useRequiredContext"; diff --git a/src/context/realm-context/RealmContext.tsx b/src/context/realm-context/RealmContext.tsx index a4401aa8fe..c6943ac67f 100644 --- a/src/context/realm-context/RealmContext.tsx +++ b/src/context/realm-context/RealmContext.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent, useEffect, useMemo } from "react"; +import { createContext, FunctionComponent, useEffect, useMemo } from "react"; import { useRouteMatch } from "react-router-dom"; import { RecentUsed } from "../../components/realm-selector/recent-used"; import { @@ -13,7 +13,7 @@ type RealmContextType = { realm: string; }; -export const RealmContext = React.createContext( +export const RealmContext = createContext( undefined ); diff --git a/src/context/server-info/ServerInfoProvider.tsx b/src/context/server-info/ServerInfoProvider.tsx index 6a465d76a3..994eeebb8a 100644 --- a/src/context/server-info/ServerInfoProvider.tsx +++ b/src/context/server-info/ServerInfoProvider.tsx @@ -1,4 +1,4 @@ -import React, { createContext, FunctionComponent, useState } from "react"; +import { createContext, FunctionComponent, useState } from "react"; import type { ServerInfoRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/serverInfoRepesentation"; import { sortProviders } from "../../util"; diff --git a/src/context/whoami/WhoAmI.tsx b/src/context/whoami/WhoAmI.tsx index 13aabebe83..e86c1c7674 100644 --- a/src/context/whoami/WhoAmI.tsx +++ b/src/context/whoami/WhoAmI.tsx @@ -1,6 +1,6 @@ import type WhoAmIRepresentation from "@keycloak/keycloak-admin-client/lib/defs/whoAmIRepresentation"; import type { AccessType } from "@keycloak/keycloak-admin-client/lib/defs/whoAmIRepresentation"; -import React, { FunctionComponent, useState } from "react"; +import { createContext, FunctionComponent, useState } from "react"; import environment from "../../environment"; import i18n, { DEFAULT_LOCALE } from "../../i18n"; import useRequiredContext from "../../utils/useRequiredContext"; @@ -53,9 +53,7 @@ type WhoAmIProps = { whoAmI: WhoAmI; }; -export const WhoAmIContext = React.createContext( - undefined -); +export const WhoAmIContext = createContext(undefined); export const useWhoAmI = () => useRequiredContext(WhoAmIContext); diff --git a/src/dashboard/Dashboard.tsx b/src/dashboard/Dashboard.tsx index e01f212ada..3e205a4f58 100644 --- a/src/dashboard/Dashboard.tsx +++ b/src/dashboard/Dashboard.tsx @@ -1,4 +1,4 @@ -import React, { useMemo } from "react"; +import { useMemo } from "react"; import { useHistory } from "react-router-dom"; import { Trans, useTranslation } from "react-i18next"; import { xor } from "lodash-es"; diff --git a/src/dashboard/ProviderInfo.tsx b/src/dashboard/ProviderInfo.tsx index 93a77c437f..53e3af19d2 100644 --- a/src/dashboard/ProviderInfo.tsx +++ b/src/dashboard/ProviderInfo.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState } from "react"; +import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { ExpandableSection, PageSection } from "@patternfly/react-core"; import { diff --git a/src/events/AdminEvents.tsx b/src/events/AdminEvents.tsx index a698c7ef69..d73cef1a3a 100644 --- a/src/events/AdminEvents.tsx +++ b/src/events/AdminEvents.tsx @@ -24,7 +24,7 @@ import { } from "@patternfly/react-table"; import { CodeEditor, Language } from "@patternfly/react-code-editor"; import type AdminEventRepresentation from "@keycloak/keycloak-admin-client/lib/defs/adminEventRepresentation"; -import React, { FunctionComponent, useMemo, useState } from "react"; +import { FunctionComponent, useMemo, useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { pickBy } from "lodash-es"; diff --git a/src/events/EventsSection.tsx b/src/events/EventsSection.tsx index 6f655ff724..aac93427ac 100644 --- a/src/events/EventsSection.tsx +++ b/src/events/EventsSection.tsx @@ -27,7 +27,7 @@ import type EventRepresentation from "@keycloak/keycloak-admin-client/lib/defs/e import type EventType from "@keycloak/keycloak-admin-client/lib/defs/eventTypes"; import type { RealmEventsConfigRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/realmEventsConfigRepresentation"; import { pickBy } from "lodash-es"; -import React, { useState } from "react"; +import { useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { Trans, useTranslation } from "react-i18next"; import { Link, useHistory } from "react-router-dom"; diff --git a/src/events/ResourceLinks.tsx b/src/events/ResourceLinks.tsx index 71083ef401..85361e482f 100644 --- a/src/events/ResourceLinks.tsx +++ b/src/events/ResourceLinks.tsx @@ -1,4 +1,4 @@ -import React, { ReactElement } from "react"; +import { ReactElement } from "react"; import { Link } from "react-router-dom"; import { Tooltip } from "@patternfly/react-core"; diff --git a/src/groups/GroupAttributes.tsx b/src/groups/GroupAttributes.tsx index 94fbaaae72..6f8ce9034e 100644 --- a/src/groups/GroupAttributes.tsx +++ b/src/groups/GroupAttributes.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { useForm } from "react-hook-form"; import { diff --git a/src/groups/GroupRoleMapping.tsx b/src/groups/GroupRoleMapping.tsx index 7f8dc9d502..3f0c3e0f00 100644 --- a/src/groups/GroupRoleMapping.tsx +++ b/src/groups/GroupRoleMapping.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant } from "@patternfly/react-core"; diff --git a/src/groups/GroupTable.tsx b/src/groups/GroupTable.tsx index 92259ab71d..145de89f7f 100644 --- a/src/groups/GroupTable.tsx +++ b/src/groups/GroupTable.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useLocation } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/groups/GroupsModal.tsx b/src/groups/GroupsModal.tsx index 57350def26..c1a585ca06 100644 --- a/src/groups/GroupsModal.tsx +++ b/src/groups/GroupsModal.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { AlertVariant, Button, diff --git a/src/groups/GroupsSection.tsx b/src/groups/GroupsSection.tsx index 2ef0d6cd3e..fb5c2f8cb6 100644 --- a/src/groups/GroupsSection.tsx +++ b/src/groups/GroupsSection.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useLocation } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/groups/Members.tsx b/src/groups/Members.tsx index 578583ca49..1ca98e6a0f 100644 --- a/src/groups/Members.tsx +++ b/src/groups/Members.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useLocation } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { uniqBy } from "lodash-es"; diff --git a/src/groups/MembersModal.tsx b/src/groups/MembersModal.tsx index a6c921ecdd..00ded0b5a5 100644 --- a/src/groups/MembersModal.tsx +++ b/src/groups/MembersModal.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant, diff --git a/src/groups/SearchGroups.tsx b/src/groups/SearchGroups.tsx index 854263aad0..19dcda6499 100644 --- a/src/groups/SearchGroups.tsx +++ b/src/groups/SearchGroups.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/groups/SubGroupsContext.tsx b/src/groups/SubGroupsContext.tsx index db9e50b950..4b45a8845d 100644 --- a/src/groups/SubGroupsContext.tsx +++ b/src/groups/SubGroupsContext.tsx @@ -1,5 +1,5 @@ import type GroupRepresentation from "@keycloak/keycloak-admin-client/lib/defs/groupRepresentation"; -import React, { createContext, FunctionComponent, useState } from "react"; +import { createContext, FunctionComponent, useState } from "react"; import useRequiredContext from "../utils/useRequiredContext"; type SubGroupsProps = { diff --git a/src/identity-providers/IdentityProvidersSection.tsx b/src/identity-providers/IdentityProvidersSection.tsx index 048dfa3920..be3af88221 100644 --- a/src/identity-providers/IdentityProvidersSection.tsx +++ b/src/identity-providers/IdentityProvidersSection.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, useState } from "react"; +import { Fragment, useState } from "react"; import { Link, useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { sortBy, groupBy } from "lodash-es"; diff --git a/src/identity-providers/ManageOrderDialog.tsx b/src/identity-providers/ManageOrderDialog.tsx index 42453dd125..e4c45c60ea 100644 --- a/src/identity-providers/ManageOrderDialog.tsx +++ b/src/identity-providers/ManageOrderDialog.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { sortBy } from "lodash-es"; import { diff --git a/src/identity-providers/ProviderIconMapper.tsx b/src/identity-providers/ProviderIconMapper.tsx index 52a1ba317c..d032da30d9 100644 --- a/src/identity-providers/ProviderIconMapper.tsx +++ b/src/identity-providers/ProviderIconMapper.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { CubeIcon, FacebookSquareIcon, diff --git a/src/identity-providers/add/AddIdentityProvider.tsx b/src/identity-providers/add/AddIdentityProvider.tsx index 8c2dced612..cf68b3177d 100644 --- a/src/identity-providers/add/AddIdentityProvider.tsx +++ b/src/identity-providers/add/AddIdentityProvider.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/identity-providers/add/AddMapper.tsx b/src/identity-providers/add/AddMapper.tsx index 2e36255300..6a13f26e9b 100644 --- a/src/identity-providers/add/AddMapper.tsx +++ b/src/identity-providers/add/AddMapper.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/identity-providers/add/AddMapperForm.tsx b/src/identity-providers/add/AddMapperForm.tsx index 461eaa60b7..7c1c880486 100644 --- a/src/identity-providers/add/AddMapperForm.tsx +++ b/src/identity-providers/add/AddMapperForm.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, UseFormMethods } from "react-hook-form"; import { diff --git a/src/identity-providers/add/AddOpenIdConnect.tsx b/src/identity-providers/add/AddOpenIdConnect.tsx index 5d8a748824..d7ce6188f6 100644 --- a/src/identity-providers/add/AddOpenIdConnect.tsx +++ b/src/identity-providers/add/AddOpenIdConnect.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Link, useHistory, useRouteMatch } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/identity-providers/add/AddSamlConnect.tsx b/src/identity-providers/add/AddSamlConnect.tsx index 2a77556a8c..cd2db1787d 100644 --- a/src/identity-providers/add/AddSamlConnect.tsx +++ b/src/identity-providers/add/AddSamlConnect.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Link, useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/identity-providers/add/AdvancedSettings.tsx b/src/identity-providers/add/AdvancedSettings.tsx index 61a66b539f..2ef5f39fc4 100644 --- a/src/identity-providers/add/AdvancedSettings.tsx +++ b/src/identity-providers/add/AdvancedSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/identity-providers/add/DescriptorSettings.tsx b/src/identity-providers/add/DescriptorSettings.tsx index a25d1cb068..fe7391a542 100644 --- a/src/identity-providers/add/DescriptorSettings.tsx +++ b/src/identity-providers/add/DescriptorSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext, useWatch } from "react-hook-form"; import { diff --git a/src/identity-providers/add/DetailSettings.tsx b/src/identity-providers/add/DetailSettings.tsx index ca02af4f81..cd1d5a6baf 100644 --- a/src/identity-providers/add/DetailSettings.tsx +++ b/src/identity-providers/add/DetailSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/identity-providers/add/DiscoverySettings.tsx b/src/identity-providers/add/DiscoverySettings.tsx index ec549bf8c8..3ee3e944d0 100644 --- a/src/identity-providers/add/DiscoverySettings.tsx +++ b/src/identity-providers/add/DiscoverySettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useFormContext, useWatch } from "react-hook-form"; import { diff --git a/src/identity-providers/add/ExtendedNonDiscoverySettings.tsx b/src/identity-providers/add/ExtendedNonDiscoverySettings.tsx index fc123cc8ea..de0bcac642 100644 --- a/src/identity-providers/add/ExtendedNonDiscoverySettings.tsx +++ b/src/identity-providers/add/ExtendedNonDiscoverySettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/identity-providers/add/GeneralSettings.tsx b/src/identity-providers/add/GeneralSettings.tsx index cc7c9ae5d6..a0bed143e3 100644 --- a/src/identity-providers/add/GeneralSettings.tsx +++ b/src/identity-providers/add/GeneralSettings.tsx @@ -1,5 +1,3 @@ -import React from "react"; - import { RedirectUrl } from "../component/RedirectUrl"; import { ClientIdSecret } from "../component/ClientIdSecret"; import { DisplayOrder } from "../component/DisplayOrder"; diff --git a/src/identity-providers/add/OIDCAuthentication.tsx b/src/identity-providers/add/OIDCAuthentication.tsx index a787cc9473..1d7da06d84 100644 --- a/src/identity-providers/add/OIDCAuthentication.tsx +++ b/src/identity-providers/add/OIDCAuthentication.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext, useWatch } from "react-hook-form"; import { diff --git a/src/identity-providers/add/OIDCGeneralSettings.tsx b/src/identity-providers/add/OIDCGeneralSettings.tsx index e0da397138..016c4d75b3 100644 --- a/src/identity-providers/add/OIDCGeneralSettings.tsx +++ b/src/identity-providers/add/OIDCGeneralSettings.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/identity-providers/add/OpenIdConnectSettings.tsx b/src/identity-providers/add/OpenIdConnectSettings.tsx index 4cf35b28e9..f7b03c9842 100644 --- a/src/identity-providers/add/OpenIdConnectSettings.tsx +++ b/src/identity-providers/add/OpenIdConnectSettings.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useFormContext } from "react-hook-form"; import { FormGroup, Title } from "@patternfly/react-core"; diff --git a/src/identity-providers/add/ReqAuthnConstraintsSettings.tsx b/src/identity-providers/add/ReqAuthnConstraintsSettings.tsx index e29594321a..d5455a1160 100644 --- a/src/identity-providers/add/ReqAuthnConstraintsSettings.tsx +++ b/src/identity-providers/add/ReqAuthnConstraintsSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/identity-providers/add/SamlConnectSettings.tsx b/src/identity-providers/add/SamlConnectSettings.tsx index 070255c49f..0802818c33 100644 --- a/src/identity-providers/add/SamlConnectSettings.tsx +++ b/src/identity-providers/add/SamlConnectSettings.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useFormContext } from "react-hook-form"; import { FormGroup, Title } from "@patternfly/react-core"; diff --git a/src/identity-providers/add/SamlGeneralSettings.tsx b/src/identity-providers/add/SamlGeneralSettings.tsx index 30b6263e47..57951f692d 100644 --- a/src/identity-providers/add/SamlGeneralSettings.tsx +++ b/src/identity-providers/add/SamlGeneralSettings.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/identity-providers/component/ClientIdSecret.tsx b/src/identity-providers/component/ClientIdSecret.tsx index 2f535babf1..462352dcad 100644 --- a/src/identity-providers/component/ClientIdSecret.tsx +++ b/src/identity-providers/component/ClientIdSecret.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/identity-providers/component/DiscoveryEndpointField.tsx b/src/identity-providers/component/DiscoveryEndpointField.tsx index ea15cff64d..f5b84f0b31 100644 --- a/src/identity-providers/component/DiscoveryEndpointField.tsx +++ b/src/identity-providers/component/DiscoveryEndpointField.tsx @@ -1,4 +1,4 @@ -import React, { ReactNode, useEffect, useState } from "react"; +import { ReactNode, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; import { FormGroup, Switch } from "@patternfly/react-core"; diff --git a/src/identity-providers/component/DisplayOrder.tsx b/src/identity-providers/component/DisplayOrder.tsx index 228800fb36..69fc59a2ef 100644 --- a/src/identity-providers/component/DisplayOrder.tsx +++ b/src/identity-providers/component/DisplayOrder.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FormGroup, TextInput } from "@patternfly/react-core"; diff --git a/src/identity-providers/component/FormGroupField.tsx b/src/identity-providers/component/FormGroupField.tsx index ef90303903..ee3258a18d 100644 --- a/src/identity-providers/component/FormGroupField.tsx +++ b/src/identity-providers/component/FormGroupField.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent } from "react"; +import { FunctionComponent } from "react"; import { useTranslation } from "react-i18next"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/identity-providers/component/RedirectUrl.tsx b/src/identity-providers/component/RedirectUrl.tsx index 1e02b358be..4b720219a0 100644 --- a/src/identity-providers/component/RedirectUrl.tsx +++ b/src/identity-providers/component/RedirectUrl.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { ClipboardCopy, FormGroup } from "@patternfly/react-core"; diff --git a/src/identity-providers/component/SwitchField.tsx b/src/identity-providers/component/SwitchField.tsx index 139d73f365..d7ff4276c9 100644 --- a/src/identity-providers/component/SwitchField.tsx +++ b/src/identity-providers/component/SwitchField.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { Switch } from "@patternfly/react-core"; diff --git a/src/identity-providers/component/TextField.tsx b/src/identity-providers/component/TextField.tsx index 0376fa6c9d..01ed50deb1 100644 --- a/src/identity-providers/component/TextField.tsx +++ b/src/identity-providers/component/TextField.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useFormContext } from "react-hook-form"; import { FieldProps, FormGroupField } from "./FormGroupField"; diff --git a/src/identity-providers/icons/FontAwesomeIcon.tsx b/src/identity-providers/icons/FontAwesomeIcon.tsx index 5e6e5bb597..0b1cfc7498 100644 --- a/src/identity-providers/icons/FontAwesomeIcon.tsx +++ b/src/identity-providers/icons/FontAwesomeIcon.tsx @@ -1,4 +1,3 @@ -import React from "react"; import environment from "../../environment"; type FontAwesomeIconProps = { diff --git a/src/main.tsx b/src/main.tsx index 1d0223d01a..0b6c781ac1 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,7 +1,7 @@ import "@patternfly/patternfly/patternfly-addons.css"; import "@patternfly/react-core/dist/styles/base.css"; -import React, { StrictMode } from "react"; +import { StrictMode } from "react"; import ReactDOM from "react-dom"; import { App } from "./App"; diff --git a/src/realm-roles/AssociatedRolesModal.tsx b/src/realm-roles/AssociatedRolesModal.tsx index 82a4b87c58..3a1308c925 100644 --- a/src/realm-roles/AssociatedRolesModal.tsx +++ b/src/realm-roles/AssociatedRolesModal.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { omit, sortBy } from "lodash-es"; import { diff --git a/src/realm-roles/AssociatedRolesTab.tsx b/src/realm-roles/AssociatedRolesTab.tsx index 8d52cf1372..4caaae929b 100644 --- a/src/realm-roles/AssociatedRolesTab.tsx +++ b/src/realm-roles/AssociatedRolesTab.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useHistory, useParams, useRouteMatch } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/realm-roles/RealmRoleForm.tsx b/src/realm-roles/RealmRoleForm.tsx index c3bbd05e9a..9329c5d7e9 100644 --- a/src/realm-roles/RealmRoleForm.tsx +++ b/src/realm-roles/RealmRoleForm.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { ActionGroup, Button, diff --git a/src/realm-roles/RealmRoleTabs.tsx b/src/realm-roles/RealmRoleTabs.tsx index 1d375df15c..abaa613ae9 100644 --- a/src/realm-roles/RealmRoleTabs.tsx +++ b/src/realm-roles/RealmRoleTabs.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useHistory, useParams, useRouteMatch } from "react-router-dom"; import { AlertVariant, diff --git a/src/realm-roles/RealmRolesSection.tsx b/src/realm-roles/RealmRolesSection.tsx index 69b29a8015..3b8142cf78 100644 --- a/src/realm-roles/RealmRolesSection.tsx +++ b/src/realm-roles/RealmRolesSection.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { PageSection } from "@patternfly/react-core"; import { ViewHeader } from "../components/view-header/ViewHeader"; import { useAdminClient } from "../context/auth/AdminClient"; diff --git a/src/realm-roles/RolesList.tsx b/src/realm-roles/RolesList.tsx index 0f65313d33..aa64965b2a 100644 --- a/src/realm-roles/RolesList.tsx +++ b/src/realm-roles/RolesList.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent, useState } from "react"; +import { FunctionComponent, useState } from "react"; import { Link, useHistory, useRouteMatch } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { AlertVariant, Button, ButtonVariant } from "@patternfly/react-core"; diff --git a/src/realm-roles/UsersInRoleTab.tsx b/src/realm-roles/UsersInRoleTab.tsx index aeb95d88dd..b11c90f574 100644 --- a/src/realm-roles/UsersInRoleTab.tsx +++ b/src/realm-roles/UsersInRoleTab.tsx @@ -1,6 +1,6 @@ import { Button, PageSection, Popover } from "@patternfly/react-core"; import { QuestionCircleIcon } from "@patternfly/react-icons"; -import React from "react"; + import { useTranslation } from "react-i18next"; import { useHistory, useParams } from "react-router-dom"; import { useHelp } from "../components/help-enabler/HelpHeader"; diff --git a/src/realm-settings/AddClientProfileModal.tsx b/src/realm-settings/AddClientProfileModal.tsx index 2ab7f71733..95c607dad7 100644 --- a/src/realm-settings/AddClientProfileModal.tsx +++ b/src/realm-settings/AddClientProfileModal.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Button, Label, Modal, ModalVariant } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; import { useFetch, useAdminClient } from "../context/auth/AdminClient"; diff --git a/src/realm-settings/AddMessageBundleModal.tsx b/src/realm-settings/AddMessageBundleModal.tsx index f834a4e5a3..4e1678b9cd 100644 --- a/src/realm-settings/AddMessageBundleModal.tsx +++ b/src/realm-settings/AddMessageBundleModal.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Button, ButtonVariant, diff --git a/src/realm-settings/AddUserEmailModal.tsx b/src/realm-settings/AddUserEmailModal.tsx index d61da72139..6226f1188a 100644 --- a/src/realm-settings/AddUserEmailModal.tsx +++ b/src/realm-settings/AddUserEmailModal.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Button, ButtonVariant, diff --git a/src/realm-settings/ClientProfileForm.tsx b/src/realm-settings/ClientProfileForm.tsx index 90fb9888ba..a3ca8aea4f 100644 --- a/src/realm-settings/ClientProfileForm.tsx +++ b/src/realm-settings/ClientProfileForm.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, useEffect, useMemo, useState } from "react"; +import { Fragment, useEffect, useMemo, useState } from "react"; import { ActionGroup, AlertVariant, diff --git a/src/realm-settings/DefaultGroupsTab.tsx b/src/realm-settings/DefaultGroupsTab.tsx index bdc2102415..d717685625 100644 --- a/src/realm-settings/DefaultGroupsTab.tsx +++ b/src/realm-settings/DefaultGroupsTab.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link } from "react-router-dom"; import { Trans, useTranslation } from "react-i18next"; import { diff --git a/src/realm-settings/EmailTab.tsx b/src/realm-settings/EmailTab.tsx index db269bfbc4..ca49c963c6 100644 --- a/src/realm-settings/EmailTab.tsx +++ b/src/realm-settings/EmailTab.tsx @@ -8,7 +8,7 @@ import { Switch, } from "@patternfly/react-core"; import type RealmRepresentation from "@keycloak/keycloak-admin-client/lib/defs/realmRepresentation"; -import React, { useState } from "react"; +import { useState } from "react"; import { Controller, useForm, useWatch } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useAlerts } from "../components/alert/Alerts"; diff --git a/src/realm-settings/ExecutorForm.tsx b/src/realm-settings/ExecutorForm.tsx index b315f434c0..86b6449891 100644 --- a/src/realm-settings/ExecutorForm.tsx +++ b/src/realm-settings/ExecutorForm.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { ActionGroup, AlertVariant, diff --git a/src/realm-settings/GeneralTab.tsx b/src/realm-settings/GeneralTab.tsx index 0b9e66a763..9f6aea4f43 100644 --- a/src/realm-settings/GeneralTab.tsx +++ b/src/realm-settings/GeneralTab.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm } from "react-hook-form"; import { diff --git a/src/realm-settings/LocalizationTab.tsx b/src/realm-settings/LocalizationTab.tsx index ca6116fe56..ae963dbb37 100644 --- a/src/realm-settings/LocalizationTab.tsx +++ b/src/realm-settings/LocalizationTab.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { cloneDeep, isEqual, uniqWith } from "lodash-es"; import { Controller, useForm, useWatch } from "react-hook-form"; diff --git a/src/realm-settings/LoginTab.tsx b/src/realm-settings/LoginTab.tsx index d1fb9c3f80..f174af9c4c 100644 --- a/src/realm-settings/LoginTab.tsx +++ b/src/realm-settings/LoginTab.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { FormGroup, PageSection, Switch } from "@patternfly/react-core"; import { FormAccess } from "../components/form-access/FormAccess"; diff --git a/src/realm-settings/NewAttributeSettings.tsx b/src/realm-settings/NewAttributeSettings.tsx index f8dbef088c..47014fc6fc 100644 --- a/src/realm-settings/NewAttributeSettings.tsx +++ b/src/realm-settings/NewAttributeSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { ActionGroup, AlertVariant, diff --git a/src/realm-settings/NewClientPolicyCondition.tsx b/src/realm-settings/NewClientPolicyCondition.tsx index c5c8e2ca75..8833ae3fcd 100644 --- a/src/realm-settings/NewClientPolicyCondition.tsx +++ b/src/realm-settings/NewClientPolicyCondition.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm } from "react-hook-form"; import { diff --git a/src/realm-settings/NewClientPolicyForm.tsx b/src/realm-settings/NewClientPolicyForm.tsx index cb4e03fd24..a0d81ff2f4 100644 --- a/src/realm-settings/NewClientPolicyForm.tsx +++ b/src/realm-settings/NewClientPolicyForm.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { ActionGroup, AlertVariant, diff --git a/src/realm-settings/PartialExport.tsx b/src/realm-settings/PartialExport.tsx index 2d3275d730..9b186708d4 100644 --- a/src/realm-settings/PartialExport.tsx +++ b/src/realm-settings/PartialExport.tsx @@ -12,7 +12,7 @@ import { TextContent, } from "@patternfly/react-core"; import FileSaver from "file-saver"; -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useAlerts } from "../components/alert/Alerts"; import { useAdminClient } from "../context/auth/AdminClient"; diff --git a/src/realm-settings/PartialImport.tsx b/src/realm-settings/PartialImport.tsx index cca322ee15..03b4fba353 100644 --- a/src/realm-settings/PartialImport.tsx +++ b/src/realm-settings/PartialImport.tsx @@ -1,4 +1,10 @@ -import React, { useState, useEffect } from "react"; +import { + useState, + useEffect, + FormEvent, + ChangeEvent, + MouseEvent as ReactMouseEvent, +} from "react"; import { useTranslation } from "react-i18next"; import { Alert, @@ -122,7 +128,7 @@ export const PartialImportDialog = (props: PartialImportProps) => { const handleResourceCheckBox = ( checked: boolean, - event: React.FormEvent + event: FormEvent ) => { const resource = event.currentTarget.name as Resource; @@ -144,7 +150,7 @@ export const PartialImportDialog = (props: PartialImportProps) => { )); const handleCollisionSelect = ( - event: React.ChangeEvent | React.MouseEvent, + event: ChangeEvent | ReactMouseEvent, option: string | SelectOptionObject ) => { setCollisionOption(option as CollisionOption); diff --git a/src/realm-settings/PoliciesTab.tsx b/src/realm-settings/PoliciesTab.tsx index bc33373765..663e0a1d17 100644 --- a/src/realm-settings/PoliciesTab.tsx +++ b/src/realm-settings/PoliciesTab.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { AlertVariant, Button, diff --git a/src/realm-settings/ProfilesTab.tsx b/src/realm-settings/ProfilesTab.tsx index 1ae187b802..ff82da8be5 100644 --- a/src/realm-settings/ProfilesTab.tsx +++ b/src/realm-settings/ProfilesTab.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { omit } from "lodash-es"; import { ActionGroup, diff --git a/src/realm-settings/RealmSettingsSection.tsx b/src/realm-settings/RealmSettingsSection.tsx index 4e7f29d096..ce196664f6 100644 --- a/src/realm-settings/RealmSettingsSection.tsx +++ b/src/realm-settings/RealmSettingsSection.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import type RealmRepresentation from "@keycloak/keycloak-admin-client/lib/defs/realmRepresentation"; import type { RealmSettingsParams } from "./routes/RealmSettings"; diff --git a/src/realm-settings/RealmSettingsTabs.tsx b/src/realm-settings/RealmSettingsTabs.tsx index c4ce87c3e8..4d6117e516 100644 --- a/src/realm-settings/RealmSettingsTabs.tsx +++ b/src/realm-settings/RealmSettingsTabs.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useHistory } from "react-router-dom"; import { Controller, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; diff --git a/src/realm-settings/SessionsTab.tsx b/src/realm-settings/SessionsTab.tsx index 0c028cb67a..255b50c956 100644 --- a/src/realm-settings/SessionsTab.tsx +++ b/src/realm-settings/SessionsTab.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm, useWatch } from "react-hook-form"; import { diff --git a/src/realm-settings/ThemesTab.tsx b/src/realm-settings/ThemesTab.tsx index 18d014f218..a057aad58b 100644 --- a/src/realm-settings/ThemesTab.tsx +++ b/src/realm-settings/ThemesTab.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm } from "react-hook-form"; import { diff --git a/src/realm-settings/TokensTab.tsx b/src/realm-settings/TokensTab.tsx index cbf669d0d2..56917759dd 100644 --- a/src/realm-settings/TokensTab.tsx +++ b/src/realm-settings/TokensTab.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm, useWatch } from "react-hook-form"; import { diff --git a/src/realm-settings/UserRegistration.tsx b/src/realm-settings/UserRegistration.tsx index 571545edad..390c8b319c 100644 --- a/src/realm-settings/UserRegistration.tsx +++ b/src/realm-settings/UserRegistration.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Tab, Tabs, TabTitleText } from "@patternfly/react-core"; diff --git a/src/realm-settings/event-config/AddEventTypesDialog.tsx b/src/realm-settings/event-config/AddEventTypesDialog.tsx index 5d1f8ce255..50d6044d4d 100644 --- a/src/realm-settings/event-config/AddEventTypesDialog.tsx +++ b/src/realm-settings/event-config/AddEventTypesDialog.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Button, Modal, ModalVariant } from "@patternfly/react-core"; diff --git a/src/realm-settings/event-config/EventConfigForm.tsx b/src/realm-settings/event-config/EventConfigForm.tsx index 623d33244d..04738582b6 100644 --- a/src/realm-settings/event-config/EventConfigForm.tsx +++ b/src/realm-settings/event-config/EventConfigForm.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, UseFormMethods } from "react-hook-form"; import { diff --git a/src/realm-settings/event-config/EventListenersForm.tsx b/src/realm-settings/event-config/EventListenersForm.tsx index 6276f4de33..afe6a740fd 100644 --- a/src/realm-settings/event-config/EventListenersForm.tsx +++ b/src/realm-settings/event-config/EventListenersForm.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, UseFormMethods } from "react-hook-form"; import { diff --git a/src/realm-settings/event-config/EventsTab.tsx b/src/realm-settings/event-config/EventsTab.tsx index cc62baace1..400db2a373 100644 --- a/src/realm-settings/event-config/EventsTab.tsx +++ b/src/realm-settings/event-config/EventsTab.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useForm } from "react-hook-form"; import { diff --git a/src/realm-settings/event-config/EventsTypeTable.tsx b/src/realm-settings/event-config/EventsTypeTable.tsx index ea7f97f9d0..a3a55b3330 100644 --- a/src/realm-settings/event-config/EventsTypeTable.tsx +++ b/src/realm-settings/event-config/EventsTypeTable.tsx @@ -1,4 +1,4 @@ -import React, { Fragment } from "react"; +import { Fragment } from "react"; import { useTranslation } from "react-i18next"; import { Button, ToolbarItem } from "@patternfly/react-core"; import type { IFormatterValueType } from "@patternfly/react-table"; diff --git a/src/realm-settings/keys/KeysListTab.tsx b/src/realm-settings/keys/KeysListTab.tsx index f46069ffc6..ce13762d4c 100644 --- a/src/realm-settings/keys/KeysListTab.tsx +++ b/src/realm-settings/keys/KeysListTab.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/realm-settings/keys/KeysProvidersTab.tsx b/src/realm-settings/keys/KeysProvidersTab.tsx index 6d21823445..8753e3caae 100644 --- a/src/realm-settings/keys/KeysProvidersTab.tsx +++ b/src/realm-settings/keys/KeysProvidersTab.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState, KeyboardEvent } from "react"; +import { useMemo, useState, KeyboardEvent } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant, diff --git a/src/realm-settings/keys/KeysTab.tsx b/src/realm-settings/keys/KeysTab.tsx index 12320fba39..13ac9dd48f 100644 --- a/src/realm-settings/keys/KeysTab.tsx +++ b/src/realm-settings/keys/KeysTab.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { Tab, TabTitleText } from "@patternfly/react-core"; diff --git a/src/realm-settings/keys/key-providers/KeyProviderForm.tsx b/src/realm-settings/keys/key-providers/KeyProviderForm.tsx index 1f681065c6..774f302bed 100644 --- a/src/realm-settings/keys/key-providers/KeyProviderForm.tsx +++ b/src/realm-settings/keys/key-providers/KeyProviderForm.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm } from "react-hook-form"; diff --git a/src/realm-settings/keys/key-providers/KeyProviderModal.tsx b/src/realm-settings/keys/key-providers/KeyProviderModal.tsx index e86a14fb43..9164239fba 100644 --- a/src/realm-settings/keys/key-providers/KeyProviderModal.tsx +++ b/src/realm-settings/keys/key-providers/KeyProviderModal.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Modal, ModalVariant } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; import { KeyProviderForm } from "./KeyProviderForm"; diff --git a/src/realm-settings/security-defences/BruteForceDetection.tsx b/src/realm-settings/security-defences/BruteForceDetection.tsx index a0beb60940..c945746c04 100644 --- a/src/realm-settings/security-defences/BruteForceDetection.tsx +++ b/src/realm-settings/security-defences/BruteForceDetection.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm, useWatch } from "react-hook-form"; import { diff --git a/src/realm-settings/security-defences/HeadersForm.tsx b/src/realm-settings/security-defences/HeadersForm.tsx index 6f5329a363..0c3e4a6f25 100644 --- a/src/realm-settings/security-defences/HeadersForm.tsx +++ b/src/realm-settings/security-defences/HeadersForm.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; import { ActionGroup, Button } from "@patternfly/react-core"; diff --git a/src/realm-settings/security-defences/HelpLinkTextInput.tsx b/src/realm-settings/security-defences/HelpLinkTextInput.tsx index c8122aa3b6..b7deec15d8 100644 --- a/src/realm-settings/security-defences/HelpLinkTextInput.tsx +++ b/src/realm-settings/security-defences/HelpLinkTextInput.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Trans, useTranslation } from "react-i18next"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/realm-settings/security-defences/SecurityDefenses.tsx b/src/realm-settings/security-defences/SecurityDefenses.tsx index 3b54180d44..afbd763e6a 100644 --- a/src/realm-settings/security-defences/SecurityDefenses.tsx +++ b/src/realm-settings/security-defences/SecurityDefenses.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { PageSection, Tab, Tabs, TabTitleText } from "@patternfly/react-core"; diff --git a/src/realm-settings/security-defences/Time.tsx b/src/realm-settings/security-defences/Time.tsx index 69faf92e83..043523b56d 100644 --- a/src/realm-settings/security-defences/Time.tsx +++ b/src/realm-settings/security-defences/Time.tsx @@ -1,4 +1,4 @@ -import React, { CSSProperties } from "react"; +import { CSSProperties } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FormGroup, ValidatedOptions } from "@patternfly/react-core"; diff --git a/src/realm-settings/user-profile/AttributesGroupDetails.tsx b/src/realm-settings/user-profile/AttributesGroupDetails.tsx index c32446b0bd..607d82b1ed 100644 --- a/src/realm-settings/user-profile/AttributesGroupDetails.tsx +++ b/src/realm-settings/user-profile/AttributesGroupDetails.tsx @@ -1,4 +1,3 @@ -import React from "react"; import AttributesGroupForm from "./AttributesGroupForm"; import { UserProfileProvider } from "./UserProfileContext"; diff --git a/src/realm-settings/user-profile/AttributesGroupForm.tsx b/src/realm-settings/user-profile/AttributesGroupForm.tsx index 81acb19f74..df0d9cf99a 100644 --- a/src/realm-settings/user-profile/AttributesGroupForm.tsx +++ b/src/realm-settings/user-profile/AttributesGroupForm.tsx @@ -7,7 +7,7 @@ import { Text, TextContent, } from "@patternfly/react-core"; -import React, { useEffect, useMemo } from "react"; +import { useEffect, useMemo } from "react"; import { FormProvider, SubmitHandler, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { Link, useHistory, useParams } from "react-router-dom"; diff --git a/src/realm-settings/user-profile/AttributesGroupTab.tsx b/src/realm-settings/user-profile/AttributesGroupTab.tsx index a23fcf41c3..b5c996d9a9 100644 --- a/src/realm-settings/user-profile/AttributesGroupTab.tsx +++ b/src/realm-settings/user-profile/AttributesGroupTab.tsx @@ -5,7 +5,7 @@ import { PageSection, ToolbarItem, } from "@patternfly/react-core"; -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { Trans, useTranslation } from "react-i18next"; import { Link, useHistory } from "react-router-dom"; import { useConfirmDialog } from "../../components/confirm-dialog/ConfirmDialog"; diff --git a/src/realm-settings/user-profile/AttributesTab.tsx b/src/realm-settings/user-profile/AttributesTab.tsx index 98ed7a8533..a573e95fca 100644 --- a/src/realm-settings/user-profile/AttributesTab.tsx +++ b/src/realm-settings/user-profile/AttributesTab.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Button, diff --git a/src/realm-settings/user-profile/JsonEditorTab.tsx b/src/realm-settings/user-profile/JsonEditorTab.tsx index d6896b6233..e47bcd4189 100644 --- a/src/realm-settings/user-profile/JsonEditorTab.tsx +++ b/src/realm-settings/user-profile/JsonEditorTab.tsx @@ -1,7 +1,7 @@ import { CodeEditor, Language } from "@patternfly/react-code-editor"; import { ActionGroup, Button, Form, PageSection } from "@patternfly/react-core"; import type { editor } from "monaco-editor"; -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useAlerts } from "../../components/alert/Alerts"; import { prettyPrintJSON } from "../../util"; diff --git a/src/realm-settings/user-profile/UserProfileContext.tsx b/src/realm-settings/user-profile/UserProfileContext.tsx index b2952fb09f..0c7a0f8b05 100644 --- a/src/realm-settings/user-profile/UserProfileContext.tsx +++ b/src/realm-settings/user-profile/UserProfileContext.tsx @@ -1,6 +1,6 @@ import type UserProfileConfig from "@keycloak/keycloak-admin-client/lib/defs/userProfileConfig"; import { AlertVariant } from "@patternfly/react-core"; -import React, { createContext, FunctionComponent, useState } from "react"; +import { createContext, FunctionComponent, useState } from "react"; import { useTranslation } from "react-i18next"; import { useAlerts } from "../../components/alert/Alerts"; import { useAdminClient, useFetch } from "../../context/auth/AdminClient"; diff --git a/src/realm-settings/user-profile/UserProfileTab.tsx b/src/realm-settings/user-profile/UserProfileTab.tsx index 04264baffd..a18eb29db4 100644 --- a/src/realm-settings/user-profile/UserProfileTab.tsx +++ b/src/realm-settings/user-profile/UserProfileTab.tsx @@ -1,5 +1,5 @@ import { Tab, TabTitleText } from "@patternfly/react-core"; -import React from "react"; + import { useTranslation } from "react-i18next"; import { useHistory } from "react-router-dom"; import { diff --git a/src/realm-settings/user-profile/attribute/AddValidatorDialog.tsx b/src/realm-settings/user-profile/attribute/AddValidatorDialog.tsx index 6ffb2761c3..a72322fe17 100644 --- a/src/realm-settings/user-profile/attribute/AddValidatorDialog.tsx +++ b/src/realm-settings/user-profile/attribute/AddValidatorDialog.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Modal, ModalVariant } from "@patternfly/react-core"; import { diff --git a/src/realm-settings/user-profile/attribute/AddValidatorRoleDialog.tsx b/src/realm-settings/user-profile/attribute/AddValidatorRoleDialog.tsx index 5307d1f59e..1bfc97a477 100644 --- a/src/realm-settings/user-profile/attribute/AddValidatorRoleDialog.tsx +++ b/src/realm-settings/user-profile/attribute/AddValidatorRoleDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Button, Modal, ModalVariant } from "@patternfly/react-core"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/realm-settings/user-profile/attribute/AttributeAnnotations.tsx b/src/realm-settings/user-profile/attribute/AttributeAnnotations.tsx index 5cb99f3f97..3bd9437086 100644 --- a/src/realm-settings/user-profile/attribute/AttributeAnnotations.tsx +++ b/src/realm-settings/user-profile/attribute/AttributeAnnotations.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { FormGroup, Grid, GridItem } from "@patternfly/react-core"; diff --git a/src/realm-settings/user-profile/attribute/AttributeGeneralSettings.tsx b/src/realm-settings/user-profile/attribute/AttributeGeneralSettings.tsx index 9e428cddd6..495adadd06 100644 --- a/src/realm-settings/user-profile/attribute/AttributeGeneralSettings.tsx +++ b/src/realm-settings/user-profile/attribute/AttributeGeneralSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Divider, FormGroup, diff --git a/src/realm-settings/user-profile/attribute/AttributePermission.tsx b/src/realm-settings/user-profile/attribute/AttributePermission.tsx index a4d73a1bc0..d6dad7c64a 100644 --- a/src/realm-settings/user-profile/attribute/AttributePermission.tsx +++ b/src/realm-settings/user-profile/attribute/AttributePermission.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { Checkbox, FormGroup, Grid, GridItem } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; import { HelpItem } from "../../../components/help-enabler/HelpItem"; diff --git a/src/realm-settings/user-profile/attribute/AttributeValidations.tsx b/src/realm-settings/user-profile/attribute/AttributeValidations.tsx index f0e1390beb..471ef3da89 100644 --- a/src/realm-settings/user-profile/attribute/AttributeValidations.tsx +++ b/src/realm-settings/user-profile/attribute/AttributeValidations.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { Button, ButtonVariant, diff --git a/src/realm/add/NewRealmForm.tsx b/src/realm/add/NewRealmForm.tsx index e4a0e73eca..779e45c868 100644 --- a/src/realm/add/NewRealmForm.tsx +++ b/src/realm/add/NewRealmForm.tsx @@ -7,7 +7,7 @@ import { Switch, } from "@patternfly/react-core"; import type RealmRepresentation from "@keycloak/keycloak-admin-client/lib/defs/realmRepresentation"; -import React from "react"; + import { Controller, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useHistory } from "react-router-dom"; diff --git a/src/route-config.ts b/src/route-config.ts index d72f54e32b..82b31075e6 100644 --- a/src/route-config.ts +++ b/src/route-config.ts @@ -1,6 +1,6 @@ import type { TFunction } from "i18next"; import type { AccessType } from "@keycloak/keycloak-admin-client/lib/defs/whoAmIRepresentation"; -import type { ComponentType } from "react"; +import type { ComponentType, LazyExoticComponent } from "react"; import type { MatchOptions } from "use-react-router-breadcrumbs"; import authenticationRoutes from "./authentication/routes"; import clientScopesRoutes from "./client-scopes/routes"; @@ -19,7 +19,7 @@ import userRoutes from "./user/routes"; export type RouteDef = { path: string; - component: ComponentType | React.LazyExoticComponent<() => JSX.Element>; + component: ComponentType | LazyExoticComponent<() => JSX.Element>; breadcrumb?: (t: TFunction) => string | ComponentType; access: AccessType | AccessType[]; matchOptions?: MatchOptions; diff --git a/src/sessions/RevocationModal.tsx b/src/sessions/RevocationModal.tsx index e26ab3a8b0..4e7bc8bc21 100644 --- a/src/sessions/RevocationModal.tsx +++ b/src/sessions/RevocationModal.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { AlertVariant, Button, diff --git a/src/sessions/SessionsSection.tsx b/src/sessions/SessionsSection.tsx index 32b7eb45ea..1b0d3ba0cc 100644 --- a/src/sessions/SessionsSection.tsx +++ b/src/sessions/SessionsSection.tsx @@ -1,6 +1,6 @@ import type ClientRepresentation from "@keycloak/keycloak-admin-client/lib/defs/clientRepresentation"; import { DropdownItem, PageSection } from "@patternfly/react-core"; -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { ViewHeader } from "../components/view-header/ViewHeader"; diff --git a/src/sessions/SessionsTable.tsx b/src/sessions/SessionsTable.tsx index ab631a3a8c..c2f79a3488 100644 --- a/src/sessions/SessionsTable.tsx +++ b/src/sessions/SessionsTable.tsx @@ -7,7 +7,7 @@ import { ToolbarItem, } from "@patternfly/react-core"; import { CubesIcon } from "@patternfly/react-icons"; -import React, { useMemo, useState } from "react"; +import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; diff --git a/src/user-federation/ManagePriorityDialog.tsx b/src/user-federation/ManagePriorityDialog.tsx index 1fd8e96f94..9e36da3877 100644 --- a/src/user-federation/ManagePriorityDialog.tsx +++ b/src/user-federation/ManagePriorityDialog.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { sortBy } from "lodash-es"; import { diff --git a/src/user-federation/UserFederationKerberosSettings.tsx b/src/user-federation/UserFederationKerberosSettings.tsx index f56dcc24a4..fb3412d892 100644 --- a/src/user-federation/UserFederationKerberosSettings.tsx +++ b/src/user-federation/UserFederationKerberosSettings.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { ActionGroup, AlertVariant, diff --git a/src/user-federation/UserFederationKerberosWizard.tsx b/src/user-federation/UserFederationKerberosWizard.tsx index d7de5294cf..5fdfe4f41f 100644 --- a/src/user-federation/UserFederationKerberosWizard.tsx +++ b/src/user-federation/UserFederationKerberosWizard.tsx @@ -1,6 +1,6 @@ import { Wizard } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; -import React from "react"; + import { KerberosSettingsRequired } from "./kerberos/KerberosSettingsRequired"; import { SettingsCache } from "./shared/SettingsCache"; import type ComponentRepresentation from "@keycloak/keycloak-admin-client/lib/defs/componentRepresentation"; diff --git a/src/user-federation/UserFederationLdapSettings.tsx b/src/user-federation/UserFederationLdapSettings.tsx index f6432b6777..061ca33c27 100644 --- a/src/user-federation/UserFederationLdapSettings.tsx +++ b/src/user-federation/UserFederationLdapSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { ActionGroup, AlertVariant, diff --git a/src/user-federation/UserFederationLdapWizard.tsx b/src/user-federation/UserFederationLdapWizard.tsx index 0290eb9f09..90e7199028 100644 --- a/src/user-federation/UserFederationLdapWizard.tsx +++ b/src/user-federation/UserFederationLdapWizard.tsx @@ -4,7 +4,7 @@ import { WizardContextConsumer, WizardFooter, } from "@patternfly/react-core"; -import React from "react"; + import { LdapSettingsGeneral } from "./ldap/LdapSettingsGeneral"; import { LdapSettingsConnection } from "./ldap/LdapSettingsConnection"; import { LdapSettingsSearching } from "./ldap/LdapSettingsSearching"; diff --git a/src/user-federation/UserFederationSection.tsx b/src/user-federation/UserFederationSection.tsx index 674925f836..075c6b9d1b 100644 --- a/src/user-federation/UserFederationSection.tsx +++ b/src/user-federation/UserFederationSection.tsx @@ -15,7 +15,7 @@ import { } from "@patternfly/react-core"; import { DatabaseIcon } from "@patternfly/react-icons"; import type ComponentRepresentation from "@keycloak/keycloak-admin-client/lib/defs/componentRepresentation"; -import React, { useMemo, useState } from "react"; +import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { useHistory } from "react-router-dom"; import { useAlerts } from "../components/alert/Alerts"; diff --git a/src/user-federation/custom/CustomProviderSettings.tsx b/src/user-federation/custom/CustomProviderSettings.tsx index 05c25f9f33..6714e370c0 100644 --- a/src/user-federation/custom/CustomProviderSettings.tsx +++ b/src/user-federation/custom/CustomProviderSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm } from "react-hook-form"; diff --git a/src/user-federation/kerberos/KerberosSettingsRequired.tsx b/src/user-federation/kerberos/KerberosSettingsRequired.tsx index 33f31840ec..2f80ed5103 100644 --- a/src/user-federation/kerberos/KerberosSettingsRequired.tsx +++ b/src/user-federation/kerberos/KerberosSettingsRequired.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { FormGroup, Select, diff --git a/src/user-federation/ldap/LdapSettingsAdvanced.tsx b/src/user-federation/ldap/LdapSettingsAdvanced.tsx index ce9be78f69..aba3ecc2e4 100644 --- a/src/user-federation/ldap/LdapSettingsAdvanced.tsx +++ b/src/user-federation/ldap/LdapSettingsAdvanced.tsx @@ -1,6 +1,6 @@ import { Button, FormGroup, Switch } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; -import React from "react"; + import { HelpItem } from "../../components/help-enabler/HelpItem"; import { UseFormMethods, Controller } from "react-hook-form"; import { FormAccess } from "../../components/form-access/FormAccess"; diff --git a/src/user-federation/ldap/LdapSettingsConnection.tsx b/src/user-federation/ldap/LdapSettingsConnection.tsx index d33a624899..d8033f8181 100644 --- a/src/user-federation/ldap/LdapSettingsConnection.tsx +++ b/src/user-federation/ldap/LdapSettingsConnection.tsx @@ -9,7 +9,7 @@ import { ValidatedOptions, } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; -import React, { useState } from "react"; +import { useState } from "react"; import { get, isEqual } from "lodash-es"; import type TestLdapConnectionRepresentation from "@keycloak/keycloak-admin-client/lib/defs/testLdapConnection"; diff --git a/src/user-federation/ldap/LdapSettingsGeneral.tsx b/src/user-federation/ldap/LdapSettingsGeneral.tsx index 43f771df97..8ce590486d 100644 --- a/src/user-federation/ldap/LdapSettingsGeneral.tsx +++ b/src/user-federation/ldap/LdapSettingsGeneral.tsx @@ -5,7 +5,7 @@ import { SelectVariant, } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; -import React, { useState } from "react"; +import { useState } from "react"; import { HelpItem } from "../../components/help-enabler/HelpItem"; import { UseFormMethods, Controller } from "react-hook-form"; import { FormAccess } from "../../components/form-access/FormAccess"; diff --git a/src/user-federation/ldap/LdapSettingsKerberosIntegration.tsx b/src/user-federation/ldap/LdapSettingsKerberosIntegration.tsx index 875ad9e6a1..44adb80352 100644 --- a/src/user-federation/ldap/LdapSettingsKerberosIntegration.tsx +++ b/src/user-federation/ldap/LdapSettingsKerberosIntegration.tsx @@ -1,6 +1,6 @@ import { FormGroup, Switch } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; -import React from "react"; + import { HelpItem } from "../../components/help-enabler/HelpItem"; import { UseFormMethods, Controller, useWatch } from "react-hook-form"; import { FormAccess } from "../../components/form-access/FormAccess"; diff --git a/src/user-federation/ldap/LdapSettingsSearching.tsx b/src/user-federation/ldap/LdapSettingsSearching.tsx index a82e9c4075..91e495be1e 100644 --- a/src/user-federation/ldap/LdapSettingsSearching.tsx +++ b/src/user-federation/ldap/LdapSettingsSearching.tsx @@ -6,7 +6,7 @@ import { Switch, } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; -import React, { useState } from "react"; +import { useState } from "react"; import { HelpItem } from "../../components/help-enabler/HelpItem"; import { UseFormMethods, Controller } from "react-hook-form"; import { FormAccess } from "../../components/form-access/FormAccess"; diff --git a/src/user-federation/ldap/LdapSettingsSynchronization.tsx b/src/user-federation/ldap/LdapSettingsSynchronization.tsx index 7e19541847..31d3c04bd2 100644 --- a/src/user-federation/ldap/LdapSettingsSynchronization.tsx +++ b/src/user-federation/ldap/LdapSettingsSynchronization.tsx @@ -1,6 +1,6 @@ import { FormGroup, Switch } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; -import React from "react"; + import { HelpItem } from "../../components/help-enabler/HelpItem"; import { UseFormMethods, Controller } from "react-hook-form"; import { FormAccess } from "../../components/form-access/FormAccess"; diff --git a/src/user-federation/ldap/mappers/LdapMapperDetails.tsx b/src/user-federation/ldap/mappers/LdapMapperDetails.tsx index 57875e75d8..31f34a9383 100644 --- a/src/user-federation/ldap/mappers/LdapMapperDetails.tsx +++ b/src/user-federation/ldap/mappers/LdapMapperDetails.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { ActionGroup, AlertVariant, diff --git a/src/user-federation/ldap/mappers/LdapMapperList.tsx b/src/user-federation/ldap/mappers/LdapMapperList.tsx index 18cac0c91c..0db9f40b48 100644 --- a/src/user-federation/ldap/mappers/LdapMapperList.tsx +++ b/src/user-federation/ldap/mappers/LdapMapperList.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { Link, useHistory, useParams, useRouteMatch } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/user-federation/shared/ExtendedHeader.tsx b/src/user-federation/shared/ExtendedHeader.tsx index 5a78188315..b6151f309e 100644 --- a/src/user-federation/shared/ExtendedHeader.tsx +++ b/src/user-federation/shared/ExtendedHeader.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/user-federation/shared/Header.tsx b/src/user-federation/shared/Header.tsx index acef0f222e..5054e3c64b 100644 --- a/src/user-federation/shared/Header.tsx +++ b/src/user-federation/shared/Header.tsx @@ -1,4 +1,4 @@ -import React, { ReactElement } from "react"; +import { ReactElement } from "react"; import { useHistory, useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/user-federation/shared/SettingsCache.tsx b/src/user-federation/shared/SettingsCache.tsx index c32c5e0d9f..40e3137429 100644 --- a/src/user-federation/shared/SettingsCache.tsx +++ b/src/user-federation/shared/SettingsCache.tsx @@ -6,7 +6,7 @@ import { SelectVariant, } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; -import React from "react"; + import { HelpItem } from "../../components/help-enabler/HelpItem"; import { UseFormMethods, useWatch, Controller } from "react-hook-form"; import { FormAccess } from "../../components/form-access/FormAccess"; diff --git a/src/user/SearchUser.tsx b/src/user/SearchUser.tsx index 47800eaee3..0522303053 100644 --- a/src/user/SearchUser.tsx +++ b/src/user/SearchUser.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Button, diff --git a/src/user/UserAttributes.tsx b/src/user/UserAttributes.tsx index 0a56e17c25..8b297df4e8 100644 --- a/src/user/UserAttributes.tsx +++ b/src/user/UserAttributes.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useForm } from "react-hook-form"; import { diff --git a/src/user/UserConsents.tsx b/src/user/UserConsents.tsx index 2ffc28f17f..9fe7056d13 100644 --- a/src/user/UserConsents.tsx +++ b/src/user/UserConsents.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { diff --git a/src/user/UserCredentials.tsx b/src/user/UserCredentials.tsx index 8cfc543961..67e5999d71 100644 --- a/src/user/UserCredentials.tsx +++ b/src/user/UserCredentials.tsx @@ -1,4 +1,10 @@ -import React, { Fragment, useMemo, useRef, useState } from "react"; +import { + DragEvent as ReactDragEvent, + Fragment, + useMemo, + useRef, + useState, +} from "react"; import { AlertVariant, Button, @@ -171,7 +177,7 @@ export const UserCredentials = ({ user }: UserCredentialsProps) => { [groupedUserCredentials] ); - const onDragStart = (evt: React.DragEvent) => { + const onDragStart = (evt: ReactDragEvent) => { evt.dataTransfer.effectAllowed = "move"; evt.dataTransfer.setData("text/plain", evt.currentTarget.id); const draggedItemId = evt.currentTarget.id; @@ -217,14 +223,14 @@ export const UserCredentials = ({ user }: UserCredentialsProps) => { }); }; - const onDragLeave = (evt: React.DragEvent) => { + const onDragLeave = (evt: ReactDragEvent) => { if (!isValidDrop(evt)) { move(itemOrder); setState({ ...state, draggingToItemIndex: -1 }); } }; - const isValidDrop = (evt: React.DragEvent) => { + const isValidDrop = (evt: ReactDragEvent) => { if (!bodyRef.current) return false; const ulRect = bodyRef.current.getBoundingClientRect(); return ( @@ -235,7 +241,7 @@ export const UserCredentials = ({ user }: UserCredentialsProps) => { ); }; - const onDrop = (evt: React.DragEvent) => { + const onDrop = (evt: ReactDragEvent) => { if (isValidDrop(evt)) { onDragFinish(state.draggedItemId, state.tempItemOrder); } else { @@ -243,7 +249,7 @@ export const UserCredentials = ({ user }: UserCredentialsProps) => { } }; - const onDragOver = (evt: React.DragEvent) => { + const onDragOver = (evt: ReactDragEvent) => { evt.preventDefault(); const td = evt.target as HTMLTableCellElement; const curListItem = td.closest("tr"); @@ -275,7 +281,7 @@ export const UserCredentials = ({ user }: UserCredentialsProps) => { } }; - const onDragEnd = ({ target }: React.DragEvent) => { + const onDragEnd = ({ target }: ReactDragEvent) => { if (!(target instanceof HTMLTableRowElement)) { return; } diff --git a/src/user/UserForm.tsx b/src/user/UserForm.tsx index ad13fab752..b04047f2fc 100644 --- a/src/user/UserForm.tsx +++ b/src/user/UserForm.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { ActionGroup, AlertVariant, diff --git a/src/user/UserGroups.tsx b/src/user/UserGroups.tsx index 731e4147ca..e1ae702f5d 100644 --- a/src/user/UserGroups.tsx +++ b/src/user/UserGroups.tsx @@ -10,7 +10,7 @@ import { cellWidth } from "@patternfly/react-table"; import type GroupRepresentation from "@keycloak/keycloak-admin-client/lib/defs/groupRepresentation"; import type UserRepresentation from "@keycloak/keycloak-admin-client/lib/defs/userRepresentation"; import { intersectionBy, sortBy } from "lodash-es"; -import React, { useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useAlerts } from "../components/alert/Alerts"; import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog"; diff --git a/src/user/UserIdPModal.tsx b/src/user/UserIdPModal.tsx index 0d353a11b9..59d7801090 100644 --- a/src/user/UserIdPModal.tsx +++ b/src/user/UserIdPModal.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { AlertVariant, Button, diff --git a/src/user/UserIdentityProviderLinks.tsx b/src/user/UserIdentityProviderLinks.tsx index d914a3fd53..b5a1bffcfd 100644 --- a/src/user/UserIdentityProviderLinks.tsx +++ b/src/user/UserIdentityProviderLinks.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant, diff --git a/src/user/UserRoleMapping.tsx b/src/user/UserRoleMapping.tsx index 514a0793af..10ad2a8d2b 100644 --- a/src/user/UserRoleMapping.tsx +++ b/src/user/UserRoleMapping.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AlertVariant } from "@patternfly/react-core"; diff --git a/src/user/UserSessions.tsx b/src/user/UserSessions.tsx index 1dd3e5bc6f..3943ebee1a 100644 --- a/src/user/UserSessions.tsx +++ b/src/user/UserSessions.tsx @@ -1,5 +1,5 @@ import { PageSection } from "@patternfly/react-core"; -import React from "react"; + import { useTranslation } from "react-i18next"; import { useParams } from "react-router-dom"; diff --git a/src/user/UsersSection.tsx b/src/user/UsersSection.tsx index fe9b7d4dc2..bfad01f283 100644 --- a/src/user/UsersSection.tsx +++ b/src/user/UsersSection.tsx @@ -29,7 +29,7 @@ import type { IRowData } from "@patternfly/react-table"; import type RealmRepresentation from "@keycloak/keycloak-admin-client/lib/defs/realmRepresentation"; import type ComponentRepresentation from "@keycloak/keycloak-admin-client/lib/defs/componentRepresentation"; import type UserRepresentation from "@keycloak/keycloak-admin-client/lib/defs/userRepresentation"; -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link, useHistory } from "react-router-dom"; import { useAlerts } from "../components/alert/Alerts"; diff --git a/src/user/UsersTabs.tsx b/src/user/UsersTabs.tsx index 440205977e..8b36e03462 100644 --- a/src/user/UsersTabs.tsx +++ b/src/user/UsersTabs.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { AlertVariant, ButtonVariant, diff --git a/src/user/user-credentials/CredentialDataDialog.tsx b/src/user/user-credentials/CredentialDataDialog.tsx index 242114340d..7284f38a24 100644 --- a/src/user/user-credentials/CredentialDataDialog.tsx +++ b/src/user/user-credentials/CredentialDataDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Modal, ModalVariant } from "@patternfly/react-core"; import { diff --git a/src/user/user-credentials/CredentialRow.tsx b/src/user/user-credentials/CredentialRow.tsx index dec67ac77c..9d4f4c8974 100644 --- a/src/user/user-credentials/CredentialRow.tsx +++ b/src/user/user-credentials/CredentialRow.tsx @@ -1,4 +1,4 @@ -import React, { ReactNode, useMemo } from "react"; +import { ReactNode, useMemo } from "react"; import { useTranslation } from "react-i18next"; import { Td } from "@patternfly/react-table"; import { diff --git a/src/user/user-credentials/CredentialsResetActionMultiSelect.tsx b/src/user/user-credentials/CredentialsResetActionMultiSelect.tsx index 62304f7061..56170a7857 100644 --- a/src/user/user-credentials/CredentialsResetActionMultiSelect.tsx +++ b/src/user/user-credentials/CredentialsResetActionMultiSelect.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { diff --git a/src/user/user-credentials/InlineLabelEdit.tsx b/src/user/user-credentials/InlineLabelEdit.tsx index b203d431af..360f8b78a2 100644 --- a/src/user/user-credentials/InlineLabelEdit.tsx +++ b/src/user/user-credentials/InlineLabelEdit.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { useForm } from "react-hook-form"; import { AlertVariant, Button, Form, FormGroup } from "@patternfly/react-core"; diff --git a/src/user/user-credentials/LifespanField.tsx b/src/user/user-credentials/LifespanField.tsx index 6f36ce9d01..670569a383 100644 --- a/src/user/user-credentials/LifespanField.tsx +++ b/src/user/user-credentials/LifespanField.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useFormContext } from "react-hook-form"; import { FormGroup } from "@patternfly/react-core"; diff --git a/src/user/user-credentials/ResetCredentialDialog.tsx b/src/user/user-credentials/ResetCredentialDialog.tsx index 9dcace3441..d505c54c9b 100644 --- a/src/user/user-credentials/ResetCredentialDialog.tsx +++ b/src/user/user-credentials/ResetCredentialDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { FormProvider, useForm, useWatch } from "react-hook-form"; import { ModalVariant, Form, AlertVariant } from "@patternfly/react-core"; diff --git a/src/user/user-credentials/ResetPasswordDialog.tsx b/src/user/user-credentials/ResetPasswordDialog.tsx index 4d1e0c42d9..16d2001620 100644 --- a/src/user/user-credentials/ResetPasswordDialog.tsx +++ b/src/user/user-credentials/ResetPasswordDialog.tsx @@ -1,4 +1,3 @@ -import React from "react"; import { useTranslation } from "react-i18next"; import { Controller, useForm } from "react-hook-form"; import { diff --git a/tsconfig.json b/tsconfig.json index fd871a8516..ff0930c592 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,7 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react", + "jsx": "react-jsx", "baseUrl": "./", }, "include": ["src"], diff --git a/vite.config.ts b/vite.config.ts index 3f23c09c7b..8e350a1af9 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -22,7 +22,7 @@ export default defineConfig({ include: [], }, }, - plugins: [react({ jsxRuntime: "classic" }), checker({ typescript: true })], + plugins: [react(), checker({ typescript: true })], test: { setupFiles: "vitest.setup.ts", watch: false,