@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
65 lines (59 loc) • 2.83 kB
text/typescript
import type { ConfigPropertyRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/authenticatorConfigInfoRepresentation";
import { FunctionComponent } from "react";
import { BooleanComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/BooleanComponent";
import { ClientSelectComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/ClientSelectComponent";
import { FileComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/FileComponent";
import { GroupComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/GroupComponent";
import { ListComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/ListComponent";
import { MapComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/MapComponent";
import { MultiValuedListComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/MultivaluedListComponent";
import { MultiValuedStringComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/MultivaluedStringComponent";
import { PasswordComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/PasswordComponent";
import { RoleComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/RoleComponent";
import { ScriptComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/ScriptComponent";
import { StringComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/StringComponent";
import { TextComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/TextComponent";
import { UrlComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/UrlComponent";
import { UserProfileAttributeListComponent } from "@keycloakify/keycloak-admin-ui/components/dynamic/UserProfileAttributeListComponent";
export type ComponentProps = Omit<ConfigPropertyRepresentation, "type"> & {
isDisabled?: boolean;
isNew?: boolean;
stringify?: boolean;
};
type ComponentType =
| "String"
| "Text"
| "boolean"
| "List"
| "Role"
| "Script"
| "Map"
| "Group"
| "MultivaluedList"
| "ClientList"
| "UserProfileAttributeList"
| "MultivaluedString"
| "File"
| "Password"
| "Url";
export const COMPONENTS: {
[index in ComponentType]: FunctionComponent<ComponentProps>;
} = {
String: StringComponent,
Text: TextComponent,
boolean: BooleanComponent,
List: ListComponent,
Role: RoleComponent,
Script: ScriptComponent,
Map: MapComponent,
Group: GroupComponent,
ClientList: ClientSelectComponent,
UserProfileAttributeList: UserProfileAttributeListComponent,
MultivaluedList: MultiValuedListComponent,
MultivaluedString: MultiValuedStringComponent,
File: FileComponent,
Password: PasswordComponent,
Url: UrlComponent,
} as const;
export const isValidComponentType = (value: string): value is ComponentType =>
value in COMPONENTS;