Merge pull request #584 from jonkoops/feature/react-scripts-tsconfig
Extend ts config from Snowpack and fix type errors
This commit is contained in:
commit
435fb81550
128 changed files with 202 additions and 250 deletions
|
@ -1,6 +1,6 @@
|
||||||
import KeycloakAdminClient from "keycloak-admin";
|
import KeycloakAdminClient from "keycloak-admin";
|
||||||
import UserRepresentation from "keycloak-admin/lib/defs/userRepresentation";
|
import type UserRepresentation from "keycloak-admin/lib/defs/userRepresentation";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
|
|
||||||
export default class AdminClient {
|
export default class AdminClient {
|
||||||
private client: KeycloakAdminClient;
|
private client: KeycloakAdminClient;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// See: https://github.com/snowpackjs/snowpack/issues/3242
|
// See: https://github.com/snowpackjs/snowpack/issues/3242
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import snowpackConfig from "@snowpack/app-scripts-react/jest.config.js";
|
import snowpackConfig from "@snowpack/app-scripts-react/jest.config.js";
|
||||||
import { Config } from "@jest/types";
|
import type { Config } from "@jest/types";
|
||||||
|
|
||||||
const config: Config.InitialOptions = {
|
const config: Config.InitialOptions = {
|
||||||
...snowpackConfig(),
|
...snowpackConfig(),
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import KeycloakAdminClient from "keycloak-admin";
|
import type KeycloakAdminClient from "keycloak-admin";
|
||||||
|
|
||||||
import { AdminClient } from "./context/auth/AdminClient";
|
import { AdminClient } from "./context/auth/AdminClient";
|
||||||
import { WhoAmIContextProvider } from "./context/whoami/WhoAmI";
|
import { WhoAmIContextProvider } from "./context/whoami/WhoAmI";
|
||||||
|
|
|
@ -13,7 +13,7 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { CheckCircleIcon } from "@patternfly/react-icons";
|
import { CheckCircleIcon } from "@patternfly/react-icons";
|
||||||
|
|
||||||
import AuthenticationFlowRepresentation from "keycloak-admin/lib/defs/authenticationFlowRepresentation";
|
import type AuthenticationFlowRepresentation from "keycloak-admin/lib/defs/authenticationFlowRepresentation";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { KeycloakTabs } from "../components/keycloak-tabs/KeycloakTabs";
|
import { KeycloakTabs } from "../components/keycloak-tabs/KeycloakTabs";
|
||||||
|
|
|
@ -12,7 +12,7 @@ import {
|
||||||
ToolbarItem,
|
ToolbarItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { cellWidth } from "@patternfly/react-table";
|
import { cellWidth } from "@patternfly/react-table";
|
||||||
import ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
import type ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
||||||
|
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { ViewHeader } from "../components/view-header/ViewHeader";
|
import { ViewHeader } from "../components/view-header/ViewHeader";
|
||||||
|
@ -26,7 +26,7 @@ import {
|
||||||
AllClientScopes,
|
AllClientScopes,
|
||||||
AllClientScopeType,
|
AllClientScopeType,
|
||||||
} from "../components/client-scope/ClientScopeTypes";
|
} from "../components/client-scope/ClientScopeTypes";
|
||||||
import KeycloakAdminClient from "keycloak-admin";
|
import type KeycloakAdminClient from "keycloak-admin";
|
||||||
import { ChangeTypeDialog } from "./ChangeTypeDialog";
|
import { ChangeTypeDialog } from "./ChangeTypeDialog";
|
||||||
|
|
||||||
import "./client-scope.css";
|
import "./client-scope.css";
|
||||||
|
|
|
@ -19,8 +19,8 @@ import {
|
||||||
TableVariant,
|
TableVariant,
|
||||||
} from "@patternfly/react-table";
|
} from "@patternfly/react-table";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
import type ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
||||||
import { ProtocolMapperTypeRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
import type { ProtocolMapperTypeRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
|
|
||||||
import { useServerInfo } from "../../context/server-info/ServerInfoProvider";
|
import { useServerInfo } from "../../context/server-info/ServerInfoProvider";
|
||||||
import { ListEmptyState } from "../../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../../components/list-empty-state/ListEmptyState";
|
||||||
|
|
|
@ -18,9 +18,9 @@ import {
|
||||||
ValidatedOptions,
|
ValidatedOptions,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
import type ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
||||||
import { useAlerts } from "../../components/alert/Alerts";
|
import { useAlerts } from "../../components/alert/Alerts";
|
||||||
import { RealmContext } from "../../context/realm-context/RealmContext";
|
import { RealmContext } from "../../context/realm-context/RealmContext";
|
||||||
import { useAdminClient, useFetch } from "../../context/auth/AdminClient";
|
import { useAdminClient, useFetch } from "../../context/auth/AdminClient";
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { mount } from "enzyme";
|
import { mount } from "enzyme";
|
||||||
import { Button } from "@patternfly/react-core";
|
import { Button } from "@patternfly/react-core";
|
||||||
|
import type { ServerInfoRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
|
|
||||||
import serverInfo from "../../../context/server-info/__tests__/mock.json";
|
import serverInfo from "../../../context/server-info/__tests__/mock.json";
|
||||||
import { ServerInfoContext } from "../../../context/server-info/ServerInfoProvider";
|
import { ServerInfoContext } from "../../../context/server-info/ServerInfoProvider";
|
||||||
|
@ -10,7 +11,9 @@ describe("<MapperDialog/>", () => {
|
||||||
const Test = (args: AddMapperDialogModalProps) => {
|
const Test = (args: AddMapperDialogModalProps) => {
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
return (
|
return (
|
||||||
<ServerInfoContext.Provider value={serverInfo}>
|
<ServerInfoContext.Provider
|
||||||
|
value={(serverInfo as unknown) as ServerInfoRepresentation}
|
||||||
|
>
|
||||||
<AddMapperDialog
|
<AddMapperDialog
|
||||||
{...args}
|
{...args}
|
||||||
open={open}
|
open={open}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Link, useHistory, useRouteMatch } from "react-router-dom";
|
import { Link, useHistory } from "react-router-dom";
|
||||||
import {
|
import {
|
||||||
AlertVariant,
|
AlertVariant,
|
||||||
ButtonVariant,
|
ButtonVariant,
|
||||||
|
@ -10,9 +10,9 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { CaretDownIcon } from "@patternfly/react-icons";
|
import { CaretDownIcon } from "@patternfly/react-icons";
|
||||||
|
|
||||||
import ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
import type ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
||||||
import ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
import type ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
||||||
import { ProtocolMapperTypeRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
import type { ProtocolMapperTypeRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
import { useServerInfo } from "../../context/server-info/ServerInfoProvider";
|
import { useServerInfo } from "../../context/server-info/ServerInfoProvider";
|
||||||
|
|
||||||
import { ListEmptyState } from "../../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../../components/list-empty-state/ListEmptyState";
|
||||||
|
|
|
@ -19,8 +19,8 @@ import {
|
||||||
TextInput,
|
TextInput,
|
||||||
ValidatedOptions,
|
ValidatedOptions,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { ConfigPropertyRepresentation } from "keycloak-admin/lib/defs/configPropertyRepresentation";
|
import type { ConfigPropertyRepresentation } from "keycloak-admin/lib/defs/configPropertyRepresentation";
|
||||||
import ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
import type ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
||||||
|
|
||||||
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
||||||
import { useAdminClient, useFetch } from "../../context/auth/AdminClient";
|
import { useAdminClient, useFetch } from "../../context/auth/AdminClient";
|
||||||
|
|
|
@ -15,7 +15,7 @@ import {
|
||||||
Button,
|
Button,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
import type ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
||||||
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
||||||
import { useLoginProviders } from "../../context/server-info/ServerInfoProvider";
|
import { useLoginProviders } from "../../context/server-info/ServerInfoProvider";
|
||||||
import { convertToFormValues } from "../../util";
|
import { convertToFormValues } from "../../util";
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
TabTitleText,
|
TabTitleText,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
import type ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
||||||
import { useAdminClient, useFetch } from "../../context/auth/AdminClient";
|
import { useAdminClient, useFetch } from "../../context/auth/AdminClient";
|
||||||
import { KeycloakTabs } from "../../components/keycloak-tabs/KeycloakTabs";
|
import { KeycloakTabs } from "../../components/keycloak-tabs/KeycloakTabs";
|
||||||
import { useAlerts } from "../../components/alert/Alerts";
|
import { useAlerts } from "../../components/alert/Alerts";
|
||||||
|
@ -18,7 +18,7 @@ import { convertFormValuesToObject } from "../../util";
|
||||||
import { MapperList } from "../details/MapperList";
|
import { MapperList } from "../details/MapperList";
|
||||||
import { ScopeForm } from "../details/ScopeForm";
|
import { ScopeForm } from "../details/ScopeForm";
|
||||||
import { RoleMapping, Row } from "../../components/role-mapping/RoleMapping";
|
import { RoleMapping, Row } from "../../components/role-mapping/RoleMapping";
|
||||||
import { RoleMappingPayload } from "keycloak-admin/lib/defs/roleRepresentation";
|
import type { RoleMappingPayload } from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
|
|
||||||
export const ClientScopeForm = () => {
|
export const ClientScopeForm = () => {
|
||||||
const { t } = useTranslation("client-scopes");
|
const { t } = useTranslation("client-scopes");
|
||||||
|
|
|
@ -18,8 +18,8 @@ import {
|
||||||
ToolbarItem,
|
ToolbarItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import GlobalRequestResult from "keycloak-admin/lib/defs/globalRequestResult";
|
import type GlobalRequestResult from "keycloak-admin/lib/defs/globalRequestResult";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import { convertToFormValues, toUpperCase } from "../util";
|
import { convertToFormValues, toUpperCase } from "../util";
|
||||||
import { FormAccess } from "../components/form-access/FormAccess";
|
import { FormAccess } from "../components/form-access/FormAccess";
|
||||||
import { ScrollForm } from "../components/scroll-form/ScrollForm";
|
import { ScrollForm } from "../components/scroll-form/ScrollForm";
|
||||||
|
@ -36,7 +36,7 @@ import { AddHostDialog } from "./advanced/AddHostDialog";
|
||||||
import { FineGrainSamlEndpointConfig } from "./advanced/FineGrainSamlEndpointConfig";
|
import { FineGrainSamlEndpointConfig } from "./advanced/FineGrainSamlEndpointConfig";
|
||||||
import { AuthenticationOverrides } from "./advanced/AuthenticationOverrides";
|
import { AuthenticationOverrides } from "./advanced/AuthenticationOverrides";
|
||||||
import { useRealm } from "../context/realm-context/RealmContext";
|
import { useRealm } from "../context/realm-context/RealmContext";
|
||||||
import { SaveOptions } from "./ClientDetails";
|
import type { SaveOptions } from "./ClientDetails";
|
||||||
|
|
||||||
type AdvancedProps = {
|
type AdvancedProps = {
|
||||||
save: (options?: SaveOptions) => void;
|
save: (options?: SaveOptions) => void;
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
import { HelpItem } from "../components/help-enabler/HelpItem";
|
import { HelpItem } from "../components/help-enabler/HelpItem";
|
||||||
|
|
||||||
import { FormAccess } from "../components/form-access/FormAccess";
|
import { FormAccess } from "../components/form-access/FormAccess";
|
||||||
import { ClientForm } from "./ClientDetails";
|
import type { ClientForm } from "./ClientDetails";
|
||||||
|
|
||||||
export const ClientDescription = () => {
|
export const ClientDescription = () => {
|
||||||
const { t } = useTranslation("clients");
|
const { t } = useTranslation("clients");
|
||||||
|
|
|
@ -14,7 +14,7 @@ import {
|
||||||
import { useHistory, useParams } from "react-router-dom";
|
import { useHistory, useParams } from "react-router-dom";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Controller, FormProvider, useForm, useWatch } from "react-hook-form";
|
import { Controller, FormProvider, useForm, useWatch } from "react-hook-form";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
|
|
||||||
import { ClientSettings } from "./ClientSettings";
|
import { ClientSettings } from "./ClientSettings";
|
||||||
|
|
|
@ -17,7 +17,7 @@ import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { emptyFormatter, exportClient, getBaseUrl } from "../util";
|
import { emptyFormatter, exportClient, getBaseUrl } from "../util";
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import { formattedLinkTableCell } from "../components/external-link/FormattedLink";
|
import { formattedLinkTableCell } from "../components/external-link/FormattedLink";
|
||||||
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
||||||
import { KeycloakTabs } from "../components/keycloak-tabs/KeycloakTabs";
|
import { KeycloakTabs } from "../components/keycloak-tabs/KeycloakTabs";
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import { FormAccess } from "../../components/form-access/FormAccess";
|
import { FormAccess } from "../../components/form-access/FormAccess";
|
||||||
import { ClientForm } from "../ClientDetails";
|
import type { ClientForm } from "../ClientDetails";
|
||||||
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
||||||
|
|
||||||
import "./capability-config.css";
|
import "./capability-config.css";
|
||||||
|
|
|
@ -15,7 +15,7 @@ import { GeneralSettings } from "./GeneralSettings";
|
||||||
import { CapabilityConfig } from "./CapabilityConfig";
|
import { CapabilityConfig } from "./CapabilityConfig";
|
||||||
import { useAlerts } from "../../components/alert/Alerts";
|
import { useAlerts } from "../../components/alert/Alerts";
|
||||||
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import { useAdminClient } from "../../context/auth/AdminClient";
|
import { useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { useRealm } from "../../context/realm-context/RealmContext";
|
import { useRealm } from "../../context/realm-context/RealmContext";
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Control } from "react-hook-form";
|
import type { Control } from "react-hook-form";
|
||||||
import {
|
import {
|
||||||
ActionGroup,
|
ActionGroup,
|
||||||
Button,
|
Button,
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {
|
||||||
SplitItem,
|
SplitItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { useFormContext } from "react-hook-form";
|
import { useFormContext } from "react-hook-form";
|
||||||
import { ClientForm } from "../ClientDetails";
|
import type { ClientForm } from "../ClientDetails";
|
||||||
|
|
||||||
export type ClientSecretProps = {
|
export type ClientSecretProps = {
|
||||||
secret: string;
|
secret: string;
|
||||||
|
|
|
@ -18,7 +18,7 @@ import {
|
||||||
Split,
|
Split,
|
||||||
SplitItem,
|
SplitItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import CredentialRepresentation from "keycloak-admin/lib/defs/credentialRepresentation";
|
import type CredentialRepresentation from "keycloak-admin/lib/defs/credentialRepresentation";
|
||||||
|
|
||||||
import { useAlerts } from "../../components/alert/Alerts";
|
import { useAlerts } from "../../components/alert/Alerts";
|
||||||
import { useConfirmDialog } from "../../components/confirm-dialog/ConfirmDialog";
|
import { useConfirmDialog } from "../../components/confirm-dialog/ConfirmDialog";
|
||||||
|
|
|
@ -15,7 +15,7 @@ import { ClientDescription } from "../ClientDescription";
|
||||||
import { JsonFileUpload } from "../../components/json-file-upload/JsonFileUpload";
|
import { JsonFileUpload } from "../../components/json-file-upload/JsonFileUpload";
|
||||||
import { useAlerts } from "../../components/alert/Alerts";
|
import { useAlerts } from "../../components/alert/Alerts";
|
||||||
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import { useAdminClient } from "../../context/auth/AdminClient";
|
import { useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { FormAccess } from "../../components/form-access/FormAccess";
|
import { FormAccess } from "../../components/form-access/FormAccess";
|
||||||
import { useRealm } from "../../context/realm-context/RealmContext";
|
import { useRealm } from "../../context/realm-context/RealmContext";
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {
|
||||||
PageSection,
|
PageSection,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import ClientInitialAccessPresentation from "keycloak-admin/lib/defs/clientInitialAccessPresentation";
|
import type ClientInitialAccessPresentation from "keycloak-admin/lib/defs/clientInitialAccessPresentation";
|
||||||
import { FormAccess } from "../../components/form-access/FormAccess";
|
import { FormAccess } from "../../components/form-access/FormAccess";
|
||||||
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
||||||
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { useTranslation } from "react-i18next";
|
||||||
import { AlertVariant, Button, ButtonVariant } from "@patternfly/react-core";
|
import { AlertVariant, Button, ButtonVariant } from "@patternfly/react-core";
|
||||||
import { wrappable } from "@patternfly/react-table";
|
import { wrappable } from "@patternfly/react-table";
|
||||||
|
|
||||||
import ClientInitialAccessPresentation from "keycloak-admin/lib/defs/clientInitialAccessPresentation";
|
import type ClientInitialAccessPresentation from "keycloak-admin/lib/defs/clientInitialAccessPresentation";
|
||||||
import { KeycloakDataTable } from "../../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../../components/table-toolbar/KeycloakDataTable";
|
||||||
import { useAdminClient } from "../../context/auth/AdminClient";
|
import { useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { useRealm } from "../../context/realm-context/RealmContext";
|
import { useRealm } from "../../context/realm-context/RealmContext";
|
||||||
|
|
|
@ -16,7 +16,7 @@ import {
|
||||||
TextInput,
|
TextInput,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import KeyStoreConfig from "keycloak-admin/lib/defs/keystoreConfig";
|
import type KeyStoreConfig from "keycloak-admin/lib/defs/keystoreConfig";
|
||||||
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
||||||
import { PasswordInput } from "../../components/password-input/PasswordInput";
|
import { PasswordInput } from "../../components/password-input/PasswordInput";
|
||||||
import { StoreSettings } from "./StoreSettings";
|
import { StoreSettings } from "./StoreSettings";
|
||||||
|
|
|
@ -18,12 +18,12 @@ import {
|
||||||
TextInput,
|
TextInput,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import CertificateRepresentation from "keycloak-admin/lib/defs/certificateRepresentation";
|
import type CertificateRepresentation from "keycloak-admin/lib/defs/certificateRepresentation";
|
||||||
import KeyStoreConfig from "keycloak-admin/lib/defs/keystoreConfig";
|
import type KeyStoreConfig from "keycloak-admin/lib/defs/keystoreConfig";
|
||||||
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
||||||
import { FormAccess } from "../../components/form-access/FormAccess";
|
import { FormAccess } from "../../components/form-access/FormAccess";
|
||||||
import { Controller, useFormContext, useWatch } from "react-hook-form";
|
import { Controller, useFormContext, useWatch } from "react-hook-form";
|
||||||
import { ClientForm } from "../ClientDetails";
|
import type { ClientForm } from "../ClientDetails";
|
||||||
import { GenerateKeyDialog } from "./GenerateKeyDialog";
|
import { GenerateKeyDialog } from "./GenerateKeyDialog";
|
||||||
import { useFetch, useAdminClient } from "../../context/auth/AdminClient";
|
import { useFetch, useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { useAlerts } from "../../components/alert/Alerts";
|
import { useAlerts } from "../../components/alert/Alerts";
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {
|
||||||
DropdownDirection,
|
DropdownDirection,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { CaretUpIcon } from "@patternfly/react-icons";
|
import { CaretUpIcon } from "@patternfly/react-icons";
|
||||||
import ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
import type ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ClientScopeType,
|
ClientScopeType,
|
||||||
|
|
|
@ -11,8 +11,8 @@ import {
|
||||||
ToolbarItem,
|
ToolbarItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { FilterIcon } from "@patternfly/react-icons";
|
import { FilterIcon } from "@patternfly/react-icons";
|
||||||
import ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
import type ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
||||||
import KeycloakAdminClient from "keycloak-admin";
|
import type KeycloakAdminClient from "keycloak-admin";
|
||||||
|
|
||||||
import { useAdminClient } from "../../context/auth/AdminClient";
|
import { useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { toUpperCase } from "../../util";
|
import { toUpperCase } from "../../util";
|
||||||
|
|
|
@ -24,11 +24,11 @@ import {
|
||||||
Title,
|
Title,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { QuestionCircleIcon } from "@patternfly/react-icons";
|
import { QuestionCircleIcon } from "@patternfly/react-icons";
|
||||||
import ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
import type ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
||||||
import UserRepresentation from "keycloak-admin/lib/defs/userRepresentation";
|
import type UserRepresentation from "keycloak-admin/lib/defs/userRepresentation";
|
||||||
import RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
import ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
import type ProtocolMapperRepresentation from "keycloak-admin/lib/defs/protocolMapperRepresentation";
|
||||||
import { ProtocolMapperTypeRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
import type { ProtocolMapperTypeRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
|
|
||||||
import { useAdminClient, useFetch } from "../../context/auth/AdminClient";
|
import { useAdminClient, useFetch } from "../../context/auth/AdminClient";
|
||||||
import { useServerInfo } from "../../context/server-info/ServerInfoProvider";
|
import { useServerInfo } from "../../context/server-info/ServerInfoProvider";
|
||||||
|
|
|
@ -2,9 +2,8 @@ import React, { useContext, useState } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { AlertVariant } from "@patternfly/react-core";
|
import { AlertVariant } from "@patternfly/react-core";
|
||||||
|
|
||||||
import RoleRepresentation, {
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
RoleMappingPayload,
|
import type { RoleMappingPayload } from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
} from "keycloak-admin/lib/defs/roleRepresentation";
|
|
||||||
import { useAdminClient } from "../../context/auth/AdminClient";
|
import { useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { RealmContext } from "../../context/realm-context/RealmContext";
|
import { RealmContext } from "../../context/realm-context/RealmContext";
|
||||||
import { useAlerts } from "../../components/alert/Alerts";
|
import { useAlerts } from "../../components/alert/Alerts";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { ArrayField, UseFormMethods } from "react-hook-form";
|
import type { ArrayField, UseFormMethods } from "react-hook-form";
|
||||||
import { ActionGroup, Button, TextInput } from "@patternfly/react-core";
|
import { ActionGroup, Button, TextInput } from "@patternfly/react-core";
|
||||||
import {
|
import {
|
||||||
TableComposable,
|
TableComposable,
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
|
|
||||||
import { TFunction } from "i18next";
|
import type { TFunction } from "i18next";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { DropdownItem, Select, SelectOption } from "@patternfly/react-core";
|
import { DropdownItem, Select, SelectOption } from "@patternfly/react-core";
|
||||||
|
|
||||||
import ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
import type ClientScopeRepresentation from "keycloak-admin/lib/defs/clientScopeRepresentation";
|
||||||
|
|
||||||
export enum ClientScope {
|
export enum ClientScope {
|
||||||
default = "default",
|
default = "default",
|
||||||
|
|
|
@ -6,7 +6,7 @@ import {
|
||||||
PageSection,
|
PageSection,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { FallbackProps } from "react-error-boundary";
|
import type { FallbackProps } from "react-error-boundary";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
export const ErrorRenderer = ({ error, resetErrorBoundary }: FallbackProps) => {
|
export const ErrorRenderer = ({ error, resetErrorBoundary }: FallbackProps) => {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React, { AnchorHTMLAttributes } from "react";
|
import React, { AnchorHTMLAttributes } from "react";
|
||||||
import { ExternalLinkAltIcon } from "@patternfly/react-icons";
|
import { ExternalLinkAltIcon } from "@patternfly/react-icons";
|
||||||
import { IFormatter, IFormatterValueType } from "@patternfly/react-table";
|
import type { IFormatter, IFormatterValueType } from "@patternfly/react-table";
|
||||||
|
|
||||||
export type FormattedLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> & {
|
export type FormattedLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> & {
|
||||||
isInline?: boolean;
|
isInline?: boolean;
|
||||||
|
|
|
@ -18,7 +18,7 @@ import {
|
||||||
StackItem,
|
StackItem,
|
||||||
TextArea,
|
TextArea,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { AccessType } from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
import type { AccessType } from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
||||||
|
|
||||||
import { useAccess } from "../../context/access/Access";
|
import { useAccess } from "../../context/access/Access";
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ import React from "react";
|
||||||
import { mount } from "enzyme";
|
import { mount } from "enzyme";
|
||||||
import { Controller, useForm } from "react-hook-form";
|
import { Controller, useForm } from "react-hook-form";
|
||||||
import { FormGroup, Switch, TextInput } from "@patternfly/react-core";
|
import { FormGroup, Switch, TextInput } from "@patternfly/react-core";
|
||||||
|
import type WhoAmIRepresentation from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
||||||
|
|
||||||
import { WhoAmI, WhoAmIContext } from "../../../context/whoami/WhoAmI";
|
import { WhoAmI, WhoAmIContext } from "../../../context/whoami/WhoAmI";
|
||||||
import whoami from "../../../context/whoami/__tests__/mock-whoami.json";
|
import whoami from "../../../context/whoami/__tests__/mock-whoami.json";
|
||||||
|
@ -15,7 +16,10 @@ describe("<FormAccess />", () => {
|
||||||
const { register, control } = useForm();
|
const { register, control } = useForm();
|
||||||
return (
|
return (
|
||||||
<WhoAmIContext.Provider
|
<WhoAmIContext.Provider
|
||||||
value={{ refresh: () => {}, whoAmI: new WhoAmI("master", whoami) }}
|
value={{
|
||||||
|
refresh: () => {},
|
||||||
|
whoAmI: new WhoAmI("master", whoami as WhoAmIRepresentation),
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<RealmContext.Provider
|
<RealmContext.Provider
|
||||||
value={{
|
value={{
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {
|
||||||
ButtonVariant,
|
ButtonVariant,
|
||||||
EmptyStateSecondaryActions,
|
EmptyStateSecondaryActions,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { SVGIconProps } from "@patternfly/react-icons/dist/js/createIcon";
|
import type { SVGIconProps } from "@patternfly/react-icons/dist/js/createIcon";
|
||||||
import { PlusCircleIcon } from "@patternfly/react-icons";
|
import { PlusCircleIcon } from "@patternfly/react-icons";
|
||||||
import { SearchIcon } from "@patternfly/react-icons";
|
import { SearchIcon } from "@patternfly/react-icons";
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { CheckIcon } from "@patternfly/react-icons";
|
import { CheckIcon } from "@patternfly/react-icons";
|
||||||
|
|
||||||
import RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
import type RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
||||||
import { toUpperCase } from "../../util";
|
import { toUpperCase } from "../../util";
|
||||||
import { useRealm } from "../../context/realm-context/RealmContext";
|
import { useRealm } from "../../context/realm-context/RealmContext";
|
||||||
import { WhoAmIContext } from "../../context/whoami/WhoAmI";
|
import { WhoAmIContext } from "../../context/whoami/WhoAmI";
|
||||||
|
|
|
@ -18,10 +18,10 @@ import {
|
||||||
|
|
||||||
import { KeycloakDataTable } from "../table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../table-toolbar/KeycloakDataTable";
|
||||||
import { useFetch, useAdminClient } from "../../context/auth/AdminClient";
|
import { useFetch, useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import { FilterIcon } from "@patternfly/react-icons";
|
import { FilterIcon } from "@patternfly/react-icons";
|
||||||
import { Row, ServiceRole } from "./RoleMapping";
|
import { Row, ServiceRole } from "./RoleMapping";
|
||||||
import RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
|
|
||||||
export type MappingType = "service-account" | "client-scope";
|
export type MappingType = "service-account" | "client-scope";
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@ import {
|
||||||
ToolbarItem,
|
ToolbarItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
import { AddRoleMappingModal, MappingType } from "./AddRoleMappingModal";
|
import { AddRoleMappingModal, MappingType } from "./AddRoleMappingModal";
|
||||||
import { KeycloakDataTable } from "../table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../table-toolbar/KeycloakDataTable";
|
||||||
import { emptyFormatter } from "../../util";
|
import { emptyFormatter } from "../../util";
|
||||||
|
|
|
@ -17,7 +17,7 @@ import _ from "lodash";
|
||||||
import { PaginatingTableToolbar } from "./PaginatingTableToolbar";
|
import { PaginatingTableToolbar } from "./PaginatingTableToolbar";
|
||||||
import { useFetch } from "../../context/auth/AdminClient";
|
import { useFetch } from "../../context/auth/AdminClient";
|
||||||
import { ListEmptyState } from "../list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../list-empty-state/ListEmptyState";
|
||||||
import { SVGIconProps } from "@patternfly/react-icons/dist/js/createIcon";
|
import type { SVGIconProps } from "@patternfly/react-icons/dist/js/createIcon";
|
||||||
|
|
||||||
type TitleCell = { title: JSX.Element };
|
type TitleCell = { title: JSX.Element };
|
||||||
type Cell<T> = keyof T | JSX.Element | TitleCell;
|
type Cell<T> = keyof T | JSX.Element | TitleCell;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { createContext, useContext, useEffect, useState } from "react";
|
import React, { createContext, useContext, useEffect, useState } from "react";
|
||||||
import { AccessType } from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
import type { AccessType } from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
||||||
|
|
||||||
import { RealmContext } from "../../context/realm-context/RealmContext";
|
import { RealmContext } from "../../context/realm-context/RealmContext";
|
||||||
import { WhoAmIContext } from "../../context/whoami/WhoAmI";
|
import { WhoAmIContext } from "../../context/whoami/WhoAmI";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { createContext, DependencyList, useContext, useEffect } from "react";
|
import { createContext, DependencyList, useContext, useEffect } from "react";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
|
||||||
import KeycloakAdminClient from "keycloak-admin";
|
import type KeycloakAdminClient from "keycloak-admin";
|
||||||
import { useErrorHandler } from "react-error-boundary";
|
import { useErrorHandler } from "react-error-boundary";
|
||||||
|
|
||||||
export const AdminClient = createContext<KeycloakAdminClient | undefined>(
|
export const AdminClient = createContext<KeycloakAdminClient | undefined>(
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import React, { useContext, useState } from "react";
|
import React, { useContext, useState } from "react";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
|
|
||||||
import RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
import type RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
||||||
import { RecentUsed } from "../../components/realm-selector/recent-used";
|
import { RecentUsed } from "../../components/realm-selector/recent-used";
|
||||||
import { useAdminClient, useFetch } from "../auth/AdminClient";
|
import { useAdminClient, useFetch } from "../auth/AdminClient";
|
||||||
import { WhoAmIContext } from "../whoami/WhoAmI";
|
import { WhoAmIContext } from "../whoami/WhoAmI";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { createContext, ReactNode, useContext } from "react";
|
import React, { createContext, ReactNode, useContext } from "react";
|
||||||
import { ServerInfoRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
import type { ServerInfoRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
|
|
||||||
import { sortProviders } from "../../util";
|
import { sortProviders } from "../../util";
|
||||||
import { DataLoader } from "../../components/data-loader/DataLoader";
|
import { DataLoader } from "../../components/data-loader/DataLoader";
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import i18n from "../../i18n";
|
import i18n from "../../i18n";
|
||||||
|
|
||||||
import WhoAmIRepresentation, {
|
import type WhoAmIRepresentation from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
||||||
AccessType,
|
import type { AccessType } from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
||||||
} from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
|
||||||
import { useAdminClient, useFetch } from "../auth/AdminClient";
|
import { useAdminClient, useFetch } from "../auth/AdminClient";
|
||||||
|
|
||||||
export class WhoAmI {
|
export class WhoAmI {
|
||||||
|
|
|
@ -1,25 +1,26 @@
|
||||||
import whoamiMock from "./mock-whoami.json";
|
import whoamiMock from "./mock-whoami.json";
|
||||||
import { WhoAmI } from "../WhoAmI";
|
import { WhoAmI } from "../WhoAmI";
|
||||||
|
import type WhoAmIRepresentation from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
||||||
|
|
||||||
test("returns display name", () => {
|
test("returns display name", () => {
|
||||||
const whoami = new WhoAmI("master", whoamiMock);
|
const whoami = new WhoAmI("master", whoamiMock as WhoAmIRepresentation);
|
||||||
expect(whoami.getDisplayName()).toEqual("Stan Silvert");
|
expect(whoami.getDisplayName()).toEqual("Stan Silvert");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("returns correct home realm", () => {
|
test("returns correct home realm", () => {
|
||||||
let whoami = new WhoAmI("myrealm", whoamiMock);
|
let whoami = new WhoAmI("myrealm", whoamiMock as WhoAmIRepresentation);
|
||||||
expect(whoami.getHomeRealm()).toEqual("myrealm");
|
expect(whoami.getHomeRealm()).toEqual("myrealm");
|
||||||
whoami = new WhoAmI(undefined, whoamiMock);
|
whoami = new WhoAmI(undefined, whoamiMock as WhoAmIRepresentation);
|
||||||
expect(whoami.getHomeRealm()).toEqual("master");
|
expect(whoami.getHomeRealm()).toEqual("master");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("can not create realm", () => {
|
test("can not create realm", () => {
|
||||||
const whoami = new WhoAmI("master", whoamiMock);
|
const whoami = new WhoAmI("master", whoamiMock as WhoAmIRepresentation);
|
||||||
expect(whoami.canCreateRealm()).toEqual(false);
|
expect(whoami.canCreateRealm()).toEqual(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("getRealmAccess", () => {
|
test("getRealmAccess", () => {
|
||||||
const whoami = new WhoAmI("master", whoamiMock);
|
const whoami = new WhoAmI("master", whoamiMock as WhoAmIRepresentation);
|
||||||
expect(Object.keys(whoami.getRealmAccess()).length).toEqual(3);
|
expect(Object.keys(whoami.getRealmAccess()).length).toEqual(3);
|
||||||
expect(whoami.getRealmAccess()["master"].length).toEqual(18);
|
expect(whoami.getRealmAccess()["master"].length).toEqual(18);
|
||||||
});
|
});
|
||||||
|
|
|
@ -20,7 +20,7 @@ import {
|
||||||
TableHeader,
|
TableHeader,
|
||||||
TableVariant,
|
TableVariant,
|
||||||
} from "@patternfly/react-table";
|
} from "@patternfly/react-table";
|
||||||
import AdminEventRepresentation from "keycloak-admin/lib/defs/adminEventRepresentation";
|
import type AdminEventRepresentation from "keycloak-admin/lib/defs/adminEventRepresentation";
|
||||||
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
||||||
|
|
||||||
type DisplayDialogProps = {
|
type DisplayDialogProps = {
|
||||||
|
|
|
@ -16,7 +16,7 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { cellWidth, expandable } from "@patternfly/react-table";
|
import { cellWidth, expandable } from "@patternfly/react-table";
|
||||||
import { CheckCircleIcon, WarningTriangleIcon } from "@patternfly/react-icons";
|
import { CheckCircleIcon, WarningTriangleIcon } from "@patternfly/react-icons";
|
||||||
import EventRepresentation from "keycloak-admin/lib/defs/eventRepresentation";
|
import type EventRepresentation from "keycloak-admin/lib/defs/eventRepresentation";
|
||||||
|
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { ViewHeader } from "../components/view-header/ViewHeader";
|
import { ViewHeader } from "../components/view-header/ViewHeader";
|
||||||
|
|
|
@ -12,7 +12,7 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { UsersIcon } from "@patternfly/react-icons";
|
import { UsersIcon } from "@patternfly/react-icons";
|
||||||
|
|
||||||
import GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
import type GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
import { useRealm } from "../context/realm-context/RealmContext";
|
import { useRealm } from "../context/realm-context/RealmContext";
|
||||||
|
|
|
@ -13,7 +13,7 @@ import {
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useForm } from "react-hook-form";
|
import { useForm } from "react-hook-form";
|
||||||
|
|
||||||
import GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
import type GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {
|
||||||
TabTitleText,
|
TabTitleText,
|
||||||
Tabs,
|
Tabs,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
import type GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
||||||
|
|
||||||
import { ViewHeader } from "../components/view-header/ViewHeader";
|
import { ViewHeader } from "../components/view-header/ViewHeader";
|
||||||
import { useFetch, useAdminClient } from "../context/auth/AdminClient";
|
import { useFetch, useAdminClient } from "../context/auth/AdminClient";
|
||||||
|
|
|
@ -12,8 +12,8 @@ import {
|
||||||
ToolbarItem,
|
ToolbarItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
import type GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
||||||
import UserRepresentation from "keycloak-admin/lib/defs/userRepresentation";
|
import type UserRepresentation from "keycloak-admin/lib/defs/userRepresentation";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {
|
||||||
ModalVariant,
|
ModalVariant,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import UserRepresentation from "keycloak-admin/lib/defs/userRepresentation";
|
import type UserRepresentation from "keycloak-admin/lib/defs/userRepresentation";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { useRealm } from "../context/realm-context/RealmContext";
|
import { useRealm } from "../context/realm-context/RealmContext";
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
|
|
|
@ -21,7 +21,7 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { AngleRightIcon, SearchIcon } from "@patternfly/react-icons";
|
import { AngleRightIcon, SearchIcon } from "@patternfly/react-icons";
|
||||||
|
|
||||||
import GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
import type GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
||||||
import { useFetch, useAdminClient } from "../context/auth/AdminClient";
|
import { useFetch, useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { SearchIcon } from "@patternfly/react-icons";
|
import { SearchIcon } from "@patternfly/react-icons";
|
||||||
|
|
||||||
import GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
import type GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { useRealm } from "../context/realm-context/RealmContext";
|
import { useRealm } from "../context/realm-context/RealmContext";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { createContext, ReactNode, useContext, useState } from "react";
|
import React, { createContext, ReactNode, useContext, useState } from "react";
|
||||||
import GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
import type GroupRepresentation from "keycloak-admin/lib/defs/groupRepresentation";
|
||||||
|
|
||||||
type SubGroupsProps = {
|
type SubGroupsProps = {
|
||||||
subGroups: GroupRepresentation[];
|
subGroups: GroupRepresentation[];
|
||||||
|
|
|
@ -23,7 +23,7 @@ import {
|
||||||
ToolbarItem,
|
ToolbarItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
import type IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
||||||
import { ViewHeader } from "../components/view-header/ViewHeader";
|
import { ViewHeader } from "../components/view-header/ViewHeader";
|
||||||
import { useFetch, useAdminClient } from "../context/auth/AdminClient";
|
import { useFetch, useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
|
|
|
@ -17,7 +17,7 @@ import {
|
||||||
TextContent,
|
TextContent,
|
||||||
Text,
|
Text,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
import type IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {
|
||||||
StackOverflowIcon,
|
StackOverflowIcon,
|
||||||
TwitterIcon,
|
TwitterIcon,
|
||||||
} from "@patternfly/react-icons";
|
} from "@patternfly/react-icons";
|
||||||
import { SVGIconProps } from "@patternfly/react-icons/dist/js/createIcon";
|
import type { SVGIconProps } from "@patternfly/react-icons/dist/js/createIcon";
|
||||||
|
|
||||||
import { FontAwesomeIcon } from "./icons/FontAwesomeIcon";
|
import { FontAwesomeIcon } from "./icons/FontAwesomeIcon";
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
PageSection,
|
PageSection,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
import type IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
||||||
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
||||||
import { toUpperCase } from "../../util";
|
import { toUpperCase } from "../../util";
|
||||||
import { FormAccess } from "../../components/form-access/FormAccess";
|
import { FormAccess } from "../../components/form-access/FormAccess";
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
PageSection,
|
PageSection,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
import type IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
||||||
import { FormAccess } from "../../components/form-access/FormAccess";
|
import { FormAccess } from "../../components/form-access/FormAccess";
|
||||||
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
||||||
import { useAdminClient } from "../../context/auth/AdminClient";
|
import { useAdminClient } from "../../context/auth/AdminClient";
|
||||||
|
|
|
@ -10,12 +10,12 @@ import {
|
||||||
SelectVariant,
|
SelectVariant,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import AuthenticationFlowRepresentation from "keycloak-admin/lib/defs/authenticationFlowRepresentation";
|
import type AuthenticationFlowRepresentation from "keycloak-admin/lib/defs/authenticationFlowRepresentation";
|
||||||
import { useFetch, useAdminClient } from "../../context/auth/AdminClient";
|
import { useFetch, useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { SwitchField } from "../component/SwitchField";
|
import { SwitchField } from "../component/SwitchField";
|
||||||
import { TextField } from "../component/TextField";
|
import { TextField } from "../component/TextField";
|
||||||
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
||||||
import { FieldProps } from "../component/FormGroupField";
|
import type { FieldProps } from "../component/FormGroupField";
|
||||||
|
|
||||||
const LoginFlow = ({
|
const LoginFlow = ({
|
||||||
field,
|
field,
|
||||||
|
|
|
@ -13,7 +13,7 @@ import {
|
||||||
TabTitleText,
|
TabTitleText,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
import type IdentityProviderRepresentation from "keycloak-admin/lib/defs/identityProviderRepresentation";
|
||||||
import { FormAccess } from "../../components/form-access/FormAccess";
|
import { FormAccess } from "../../components/form-access/FormAccess";
|
||||||
import { ScrollForm } from "../../components/scroll-form/ScrollForm";
|
import { ScrollForm } from "../../components/scroll-form/ScrollForm";
|
||||||
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { FormGroup, Switch, TextInput, Title } from "@patternfly/react-core";
|
||||||
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
import { HelpItem } from "../../components/help-enabler/HelpItem";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useAdminClient } from "../../context/auth/AdminClient";
|
import { useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { OIDCConfigurationRepresentation } from "../OIDCConfigurationRepresentation";
|
import type { OIDCConfigurationRepresentation } from "../OIDCConfigurationRepresentation";
|
||||||
import { JsonFileUpload } from "../../components/json-file-upload/JsonFileUpload";
|
import { JsonFileUpload } from "../../components/json-file-upload/JsonFileUpload";
|
||||||
import { useRealm } from "../../context/realm-context/RealmContext";
|
import { useRealm } from "../../context/realm-context/RealmContext";
|
||||||
import { DiscoverySettings } from "./DiscoverySettings";
|
import { DiscoverySettings } from "./DiscoverySettings";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import KeycloakAdminClient from "keycloak-admin";
|
import type KeycloakAdminClient from "keycloak-admin";
|
||||||
import { Label } from "@patternfly/react-core";
|
import { Label } from "@patternfly/react-core";
|
||||||
|
|
||||||
export type AliasRendererComponentProps = {
|
export type AliasRendererComponentProps = {
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useFetch, useAdminClient } from "../context/auth/AdminClient";
|
import { useFetch, useAdminClient } from "../context/auth/AdminClient";
|
||||||
import RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
||||||
import { CaretDownIcon, FilterIcon } from "@patternfly/react-icons";
|
import { CaretDownIcon, FilterIcon } from "@patternfly/react-icons";
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {
|
||||||
PageSection,
|
PageSection,
|
||||||
ToolbarItem,
|
ToolbarItem,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
|
@ -18,8 +18,8 @@ import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
||||||
import { emptyFormatter } from "../util";
|
import { emptyFormatter } from "../util";
|
||||||
import { AssociatedRolesModal } from "./AssociatedRolesModal";
|
import { AssociatedRolesModal } from "./AssociatedRolesModal";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { RoleFormType } from "./RealmRoleTabs";
|
import type { RoleFormType } from "./RealmRoleTabs";
|
||||||
import ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
import type ClientRepresentation from "keycloak-admin/lib/defs/clientRepresentation";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
|
|
||||||
type AssociatedRolesTabProps = {
|
type AssociatedRolesTabProps = {
|
||||||
|
|
|
@ -8,8 +8,8 @@ import {
|
||||||
ValidatedOptions,
|
ValidatedOptions,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { UseFormMethods } from "react-hook-form";
|
import type { UseFormMethods } from "react-hook-form";
|
||||||
import { RoleFormType } from "./RealmRoleTabs";
|
import type { RoleFormType } from "./RealmRoleTabs";
|
||||||
import { FormAccess } from "../components/form-access/FormAccess";
|
import { FormAccess } from "../components/form-access/FormAccess";
|
||||||
|
|
||||||
export type RealmRoleFormProps = {
|
export type RealmRoleFormProps = {
|
||||||
|
|
|
@ -13,8 +13,8 @@ import { useFieldArray, useForm } from "react-hook-form";
|
||||||
|
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
import Composites from "keycloak-admin/lib/defs/roleRepresentation";
|
import type Composites from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
import {
|
import {
|
||||||
KeyValueType,
|
KeyValueType,
|
||||||
AttributesForm,
|
AttributesForm,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { ArrayField, UseFormMethods } from "react-hook-form";
|
import type { ArrayField, UseFormMethods } from "react-hook-form";
|
||||||
import { ActionGroup, Button, TextInput } from "@patternfly/react-core";
|
import { ActionGroup, Button, TextInput } from "@patternfly/react-core";
|
||||||
import {
|
import {
|
||||||
TableComposable,
|
TableComposable,
|
||||||
|
@ -13,7 +13,7 @@ import {
|
||||||
import { MinusCircleIcon, PlusCircleIcon } from "@patternfly/react-icons";
|
import { MinusCircleIcon, PlusCircleIcon } from "@patternfly/react-icons";
|
||||||
|
|
||||||
import { FormAccess } from "../components/form-access/FormAccess";
|
import { FormAccess } from "../components/form-access/FormAccess";
|
||||||
import { RoleFormType } from "./RealmRoleTabs";
|
import type { RoleFormType } from "./RealmRoleTabs";
|
||||||
|
|
||||||
import "./RealmRolesSection.css";
|
import "./RealmRolesSection.css";
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { useTranslation } from "react-i18next";
|
||||||
import { AlertVariant, Button, ButtonVariant } from "@patternfly/react-core";
|
import { AlertVariant, Button, ButtonVariant } from "@patternfly/react-core";
|
||||||
|
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
import type RoleRepresentation from "keycloak-admin/lib/defs/roleRepresentation";
|
||||||
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { useAlerts } from "../components/alert/Alerts";
|
import { useAlerts } from "../components/alert/Alerts";
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
TextInput,
|
TextInput,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
import type RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
||||||
import { FormAccess } from "../components/form-access/FormAccess";
|
import { FormAccess } from "../components/form-access/FormAccess";
|
||||||
import { HelpItem } from "../components/help-enabler/HelpItem";
|
import { HelpItem } from "../components/help-enabler/HelpItem";
|
||||||
import { FormPanel } from "../components/scroll-form/FormPanel";
|
import { FormPanel } from "../components/scroll-form/FormPanel";
|
||||||
|
|
|
@ -16,7 +16,7 @@ import {
|
||||||
TextInput,
|
TextInput,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
import type RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
||||||
import { getBaseUrl } from "../util";
|
import { getBaseUrl } from "../util";
|
||||||
import { useAdminClient } from "../context/auth/AdminClient";
|
import { useAdminClient } from "../context/auth/AdminClient";
|
||||||
import { useRealm } from "../context/realm-context/RealmContext";
|
import { useRealm } from "../context/realm-context/RealmContext";
|
||||||
|
|
|
@ -2,12 +2,12 @@ import React, { useState } from "react";
|
||||||
import { useHistory, useRouteMatch } from "react-router-dom";
|
import { useHistory, useRouteMatch } from "react-router-dom";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Button, ButtonVariant, PageSection } from "@patternfly/react-core";
|
import { Button, ButtonVariant, PageSection } from "@patternfly/react-core";
|
||||||
import { KeyMetadataRepresentation } from "keycloak-admin/lib/defs/keyMetadataRepresentation";
|
import type { KeyMetadataRepresentation } from "keycloak-admin/lib/defs/keyMetadataRepresentation";
|
||||||
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
||||||
import { emptyFormatter } from "../util";
|
import { emptyFormatter } from "../util";
|
||||||
import ComponentRepresentation from "keycloak-admin/lib/defs/componentRepresentation";
|
import type ComponentRepresentation from "keycloak-admin/lib/defs/componentRepresentation";
|
||||||
|
|
||||||
import "./RealmSettingsSection.css";
|
import "./RealmSettingsSection.css";
|
||||||
import { cellWidth } from "@patternfly/react-table";
|
import { cellWidth } from "@patternfly/react-table";
|
||||||
|
|
|
@ -2,12 +2,12 @@ import React, { useState } from "react";
|
||||||
import { useHistory, useRouteMatch } from "react-router-dom";
|
import { useHistory, useRouteMatch } from "react-router-dom";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Button, ButtonVariant, PageSection } from "@patternfly/react-core";
|
import { Button, ButtonVariant, PageSection } from "@patternfly/react-core";
|
||||||
import { KeyMetadataRepresentation } from "keycloak-admin/lib/defs/keyMetadataRepresentation";
|
import type { KeyMetadataRepresentation } from "keycloak-admin/lib/defs/keyMetadataRepresentation";
|
||||||
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
import { ListEmptyState } from "../components/list-empty-state/ListEmptyState";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
||||||
import { emptyFormatter } from "../util";
|
import { emptyFormatter } from "../util";
|
||||||
import ComponentRepresentation from "keycloak-admin/lib/defs/componentRepresentation";
|
import type ComponentRepresentation from "keycloak-admin/lib/defs/componentRepresentation";
|
||||||
|
|
||||||
import "./RealmSettingsSection.css";
|
import "./RealmSettingsSection.css";
|
||||||
import { cellWidth } from "@patternfly/react-table";
|
import { cellWidth } from "@patternfly/react-table";
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { FormGroup, PageSection, Switch } from "@patternfly/react-core";
|
||||||
import { FormAccess } from "../components/form-access/FormAccess";
|
import { FormAccess } from "../components/form-access/FormAccess";
|
||||||
import { HelpItem } from "../components/help-enabler/HelpItem";
|
import { HelpItem } from "../components/help-enabler/HelpItem";
|
||||||
import { FormPanel } from "../components/scroll-form/FormPanel";
|
import { FormPanel } from "../components/scroll-form/FormPanel";
|
||||||
import RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
import type RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
||||||
|
|
||||||
type RealmSettingsLoginTabProps = {
|
type RealmSettingsLoginTabProps = {
|
||||||
save: (realm: RealmRepresentation) => void;
|
save: (realm: RealmRepresentation) => void;
|
||||||
|
|
|
@ -13,7 +13,7 @@ import {
|
||||||
TabTitleText,
|
TabTitleText,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
import type RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
||||||
import { toUpperCase } from "../util";
|
import { toUpperCase } from "../util";
|
||||||
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
|
||||||
import { useAdminClient, useFetch } from "../context/auth/AdminClient";
|
import { useAdminClient, useFetch } from "../context/auth/AdminClient";
|
||||||
|
@ -27,8 +27,8 @@ import { PartialImportDialog } from "./PartialImport";
|
||||||
import { RealmSettingsThemesTab } from "./ThemesTab";
|
import { RealmSettingsThemesTab } from "./ThemesTab";
|
||||||
import { RealmSettingsEmailTab } from "./EmailTab";
|
import { RealmSettingsEmailTab } from "./EmailTab";
|
||||||
import { KeysListTab } from "./KeysListTab";
|
import { KeysListTab } from "./KeysListTab";
|
||||||
import { KeyMetadataRepresentation } from "keycloak-admin/lib/defs/keyMetadataRepresentation";
|
import type { KeyMetadataRepresentation } from "keycloak-admin/lib/defs/keyMetadataRepresentation";
|
||||||
import ComponentRepresentation from "keycloak-admin/lib/defs/componentRepresentation";
|
import type ComponentRepresentation from "keycloak-admin/lib/defs/componentRepresentation";
|
||||||
|
|
||||||
type RealmSettingsHeaderProps = {
|
type RealmSettingsHeaderProps = {
|
||||||
onChange: (value: boolean) => void;
|
onChange: (value: boolean) => void;
|
||||||
|
|
|
@ -12,7 +12,7 @@ import {
|
||||||
Switch,
|
Switch,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
|
|
||||||
import RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
import type RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
||||||
import { FormAccess } from "../components/form-access/FormAccess";
|
import { FormAccess } from "../components/form-access/FormAccess";
|
||||||
import { HelpItem } from "../components/help-enabler/HelpItem";
|
import { HelpItem } from "../components/help-enabler/HelpItem";
|
||||||
import { useServerInfo } from "../context/server-info/ServerInfoProvider";
|
import { useServerInfo } from "../context/server-info/ServerInfoProvider";
|
||||||
|
|
|
@ -15,7 +15,7 @@ import { JsonFileUpload } from "../../components/json-file-upload/JsonFileUpload
|
||||||
import { useAlerts } from "../../components/alert/Alerts";
|
import { useAlerts } from "../../components/alert/Alerts";
|
||||||
import { useForm, Controller } from "react-hook-form";
|
import { useForm, Controller } from "react-hook-form";
|
||||||
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
import { ViewHeader } from "../../components/view-header/ViewHeader";
|
||||||
import RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
import type RealmRepresentation from "keycloak-admin/lib/defs/realmRepresentation";
|
||||||
import { useAdminClient } from "../../context/auth/AdminClient";
|
import { useAdminClient } from "../../context/auth/AdminClient";
|
||||||
import { WhoAmIContext } from "../../context/whoami/WhoAmI";
|
import { WhoAmIContext } from "../../context/whoami/WhoAmI";
|
||||||
import { FormAccess } from "../../components/form-access/FormAccess";
|
import { FormAccess } from "../../components/form-access/FormAccess";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { TFunction } from "i18next";
|
import type { TFunction } from "i18next";
|
||||||
import { BreadcrumbsRoute } from "use-react-router-breadcrumbs";
|
import type { BreadcrumbsRoute } from "use-react-router-breadcrumbs";
|
||||||
import { AccessType } from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
import type { AccessType } from "keycloak-admin/lib/defs/whoAmIRepresentation";
|
||||||
|
|
||||||
import { AuthenticationSection } from "./authentication/AuthenticationSection";
|
import { AuthenticationSection } from "./authentication/AuthenticationSection";
|
||||||
import { ClientScopeForm } from "./client-scopes/form/ClientScopeForm";
|
import { ClientScopeForm } from "./client-scopes/form/ClientScopeForm";
|
||||||
|
|
|
@ -2,7 +2,7 @@ import React from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { PageSection } from "@patternfly/react-core";
|
import { PageSection } from "@patternfly/react-core";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import UserSessionRepresentation from "keycloak-admin/lib/defs/userSessionRepresentation";
|
import type UserSessionRepresentation from "keycloak-admin/lib/defs/userSessionRepresentation";
|
||||||
|
|
||||||
import { ViewHeader } from "../components/view-header/ViewHeader";
|
import { ViewHeader } from "../components/view-header/ViewHeader";
|
||||||
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable";
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { Button } from "@patternfly/react-core";
|
import { Button } from "@patternfly/react-core";
|
||||||
import { Meta, Story } from "@storybook/react";
|
import type { Meta, Story } from "@storybook/react";
|
||||||
|
import type { ServerInfoRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
|
|
||||||
import serverInfo from "../context/server-info/__tests__/mock.json";
|
import serverInfo from "../context/server-info/__tests__/mock.json";
|
||||||
import { ServerInfoContext } from "../context/server-info/ServerInfoProvider";
|
import { ServerInfoContext } from "../context/server-info/ServerInfoProvider";
|
||||||
|
@ -17,7 +18,9 @@ export default {
|
||||||
const Template: Story<AddMapperDialogProps> = (args) => {
|
const Template: Story<AddMapperDialogProps> = (args) => {
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
return (
|
return (
|
||||||
<ServerInfoContext.Provider value={serverInfo}>
|
<ServerInfoContext.Provider
|
||||||
|
value={(serverInfo as unknown) as ServerInfoRepresentation}
|
||||||
|
>
|
||||||
<AddMapperDialog
|
<AddMapperDialog
|
||||||
{...args}
|
{...args}
|
||||||
open={open}
|
open={open}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { AlertVariant, Button } from "@patternfly/react-core";
|
import { AlertVariant, Button } from "@patternfly/react-core";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
|
|
||||||
import { AlertPanel } from "../components/alert/AlertPanel";
|
import { AlertPanel } from "../components/alert/AlertPanel";
|
||||||
import { AlertProvider, useAlerts } from "../components/alert/Alerts";
|
import { AlertProvider, useAlerts } from "../components/alert/Alerts";
|
||||||
|
|
|
@ -5,7 +5,7 @@ import {
|
||||||
TextVariants,
|
TextVariants,
|
||||||
ButtonVariant,
|
ButtonVariant,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { Meta, Story } from "@storybook/react";
|
import type { Meta, Story } from "@storybook/react";
|
||||||
import { action } from "@storybook/addon-actions";
|
import { action } from "@storybook/addon-actions";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { ReactNode } from "react";
|
import React, { ReactNode } from "react";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
|
|
||||||
import { DataLoader } from "../components/data-loader/DataLoader";
|
import { DataLoader } from "../components/data-loader/DataLoader";
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
|
|
||||||
import { DownloadDialog } from "../components/download-dialog/DownloadDialog";
|
import { DownloadDialog } from "../components/download-dialog/DownloadDialog";
|
||||||
import { MockAdminClient } from "./MockAdminClient";
|
import { MockAdminClient } from "./MockAdminClient";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta, Story } from "@storybook/react";
|
import type { Meta, Story } from "@storybook/react";
|
||||||
import {
|
import {
|
||||||
FormattedLink,
|
FormattedLink,
|
||||||
FormattedLinkProps,
|
FormattedLinkProps,
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
Form,
|
Form,
|
||||||
TextInput,
|
TextInput,
|
||||||
} from "@patternfly/react-core";
|
} from "@patternfly/react-core";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
|
|
||||||
import { HelpItem } from "../components/help-enabler/HelpItem";
|
import { HelpItem } from "../components/help-enabler/HelpItem";
|
||||||
import {
|
import {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta, Story } from "@storybook/react";
|
import type { Meta, Story } from "@storybook/react";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
JsonFileUpload,
|
JsonFileUpload,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { IFormatterValueType } from "@patternfly/react-table";
|
import type { IFormatterValueType } from "@patternfly/react-table";
|
||||||
import { Meta, Story } from "@storybook/react";
|
import type { Meta, Story } from "@storybook/react";
|
||||||
|
|
||||||
import clients from "../clients/__tests__/mock-clients.json";
|
import clients from "../clients/__tests__/mock-clients.json";
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ SimpleList.args = {
|
||||||
},
|
},
|
||||||
{ name: "baseUrl", displayKey: "clients:homeURL" },
|
{ name: "baseUrl", displayKey: "clients:homeURL" },
|
||||||
],
|
],
|
||||||
loader: () => clients,
|
loader: async () => clients,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const LoadingList = Template.bind({});
|
export const LoadingList = Template.bind({});
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta, Story } from "@storybook/react";
|
import type { Meta, Story } from "@storybook/react";
|
||||||
import {
|
import {
|
||||||
ListEmptyState,
|
ListEmptyState,
|
||||||
ListEmptyStateProps,
|
ListEmptyStateProps,
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
|
import type { ServerInfoRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
|
|
||||||
import serverInfo from "../context/server-info/__tests__/mock.json";
|
import serverInfo from "../context/server-info/__tests__/mock.json";
|
||||||
import clientScopeMock from "../client-scopes/__tests__/mock-client-scope.json";
|
import clientScopeMock from "../client-scopes/__tests__/mock-client-scope.json";
|
||||||
|
@ -13,7 +14,9 @@ export default {
|
||||||
} as Meta;
|
} as Meta;
|
||||||
|
|
||||||
export const MapperListExample = () => (
|
export const MapperListExample = () => (
|
||||||
<ServerInfoContext.Provider value={serverInfo}>
|
<ServerInfoContext.Provider
|
||||||
|
value={(serverInfo as unknown) as ServerInfoRepresentation}
|
||||||
|
>
|
||||||
<MockAdminClient>
|
<MockAdminClient>
|
||||||
<MapperList clientScope={clientScopeMock} refresh={() => {}} />
|
<MapperList clientScope={clientScopeMock} refresh={() => {}} />
|
||||||
</MockAdminClient>
|
</MockAdminClient>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import React, { ReactNode } from "react";
|
import React, { ReactNode } from "react";
|
||||||
import { HashRouter } from "react-router-dom";
|
import { HashRouter } from "react-router-dom";
|
||||||
import KeycloakAdminClient from "keycloak-admin";
|
import type KeycloakAdminClient from "keycloak-admin";
|
||||||
|
import type { ServerInfoRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
|
|
||||||
import { AccessContextProvider } from "../context/access/Access";
|
import { AccessContextProvider } from "../context/access/Access";
|
||||||
import { WhoAmIContextProvider } from "../context/whoami/WhoAmI";
|
import { WhoAmIContextProvider } from "../context/whoami/WhoAmI";
|
||||||
|
@ -30,7 +31,9 @@ export const MockAdminClient = (props: {
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<HashRouter>
|
<HashRouter>
|
||||||
<ServerInfoContext.Provider value={serverInfo}>
|
<ServerInfoContext.Provider
|
||||||
|
value={(serverInfo as unknown) as ServerInfoRepresentation}
|
||||||
|
>
|
||||||
<AdminClient.Provider
|
<AdminClient.Provider
|
||||||
value={
|
value={
|
||||||
({
|
({
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta, Story } from "@storybook/react";
|
import type { Meta, Story } from "@storybook/react";
|
||||||
import { action } from "@storybook/addon-actions";
|
import { action } from "@storybook/addon-actions";
|
||||||
import { FormProvider, useForm } from "react-hook-form";
|
import { FormProvider, useForm } from "react-hook-form";
|
||||||
import { Button } from "@patternfly/react-core";
|
import { Button } from "@patternfly/react-core";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
import { Page } from "@patternfly/react-core";
|
import { Page } from "@patternfly/react-core";
|
||||||
import { NewRealmForm } from "../realm/add/NewRealmForm";
|
import { NewRealmForm } from "../realm/add/NewRealmForm";
|
||||||
import { MockAdminClient } from "./MockAdminClient";
|
import { MockAdminClient } from "./MockAdminClient";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
import { MockAdminClient } from "./MockAdminClient";
|
import { MockAdminClient } from "./MockAdminClient";
|
||||||
import rolesMock from "../realm-roles/__tests__/mock-roles.json";
|
import rolesMock from "../realm-roles/__tests__/mock-roles.json";
|
||||||
import { RealmRoleTabs } from "../realm-roles/RealmRoleTabs";
|
import { RealmRoleTabs } from "../realm-roles/RealmRoleTabs";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Page } from "@patternfly/react-core";
|
import { Page } from "@patternfly/react-core";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
|
|
||||||
import { MockAdminClient } from "./MockAdminClient";
|
import { MockAdminClient } from "./MockAdminClient";
|
||||||
import { RealmRoleTabs } from "../realm-roles/RealmRoleTabs";
|
import { RealmRoleTabs } from "../realm-roles/RealmRoleTabs";
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
import { Page } from "@patternfly/react-core";
|
import { Page } from "@patternfly/react-core";
|
||||||
|
import type { ServerInfoRepresentation } from "keycloak-admin/lib/defs/serverInfoRepesentation";
|
||||||
|
|
||||||
import serverInfo from "../context/server-info/__tests__/mock.json";
|
import serverInfo from "../context/server-info/__tests__/mock.json";
|
||||||
import roles from "../realm-roles/__tests__/mock-roles.json";
|
import roles from "../realm-roles/__tests__/mock-roles.json";
|
||||||
|
@ -16,7 +17,9 @@ export default {
|
||||||
} as Meta;
|
} as Meta;
|
||||||
|
|
||||||
export const RoleMappingFormExample = () => (
|
export const RoleMappingFormExample = () => (
|
||||||
<ServerInfoContext.Provider value={serverInfo}>
|
<ServerInfoContext.Provider
|
||||||
|
value={(serverInfo as unknown) as ServerInfoRepresentation}
|
||||||
|
>
|
||||||
<MockAdminClient
|
<MockAdminClient
|
||||||
mock={{
|
mock={{
|
||||||
roles: {
|
roles: {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Meta } from "@storybook/react";
|
import type { Meta } from "@storybook/react";
|
||||||
import { ScrollForm } from "../components/scroll-form/ScrollForm";
|
import { ScrollForm } from "../components/scroll-form/ScrollForm";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue