diff --git a/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/client_scopes/client_scope_details/tabs/mappers/MapperDetailsPage.ts b/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/client_scopes/client_scope_details/tabs/mappers/MapperDetailsPage.ts
index 951f4d7cb7d..6f4b42a2c25 100644
--- a/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/client_scopes/client_scope_details/tabs/mappers/MapperDetailsPage.ts
+++ b/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/client_scopes/client_scope_details/tabs/mappers/MapperDetailsPage.ts
@@ -10,7 +10,7 @@ export enum ClaimJsonType {
export default class MapperDetailsPage extends CommonPage {
#userAttributeInput = '[data-testid="config.user🍺attribute"]';
- #tokenClaimNameInput = '[id="claim.name"]';
+ #tokenClaimNameInput = '[data-testid="claim.name"]';
#claimJsonType = '[id="jsonType.label"]';
fillUserAttribute(userAttribute: string) {
diff --git a/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/realm_settings/RealmSettingsPage.ts b/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/realm_settings/RealmSettingsPage.ts
index 1f7cac1f1a3..061f9be5229 100644
--- a/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/realm_settings/RealmSettingsPage.ts
+++ b/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/realm_settings/RealmSettingsPage.ts
@@ -207,7 +207,7 @@ export default class RealmSettingsPage extends CommonPage {
#availablePeriodExecutorFld = "available-period";
#editExecutorBtn =
'[aria-label="Executors"] > li > div:first-child [data-testid="editExecutor"]';
- #executorAvailablePeriodInput = "#available-period";
+ #executorAvailablePeriodInput = "[data-testid='available-period']";
#listingPage = new ListingPage();
#addCondition = "addCondition";
diff --git a/js/apps/admin-ui/src/components/dynamic/StringComponent.tsx b/js/apps/admin-ui/src/components/dynamic/StringComponent.tsx
index 3da266c1a81..7bff36d3fa1 100644
--- a/js/apps/admin-ui/src/components/dynamic/StringComponent.tsx
+++ b/js/apps/admin-ui/src/components/dynamic/StringComponent.tsx
@@ -1,8 +1,5 @@
-import { FormGroup, TextInput } from "@patternfly/react-core";
-import { useFormContext } from "react-hook-form";
+import { TextControl } from "@keycloak/keycloak-ui-shared";
import { useTranslation } from "react-i18next";
-import { HelpItem } from "@keycloak/keycloak-ui-shared";
-
import { convertToName } from "./DynamicComponents";
import type { ComponentProps } from "./components";
@@ -10,27 +7,17 @@ export const StringComponent = ({
name,
label,
helpText,
- defaultValue,
- isDisabled = false,
- required,
+ ...props
}: ComponentProps) => {
const { t } = useTranslation();
- const { register } = useFormContext();
return (
- }
- fieldId={name!}
- isRequired={required}
- >
-
-
+ helperText={t(helpText!)}
+ data-testid={name}
+ {...props}
+ />
);
};
diff --git a/js/libs/ui-shared/src/controls/TextControl.tsx b/js/libs/ui-shared/src/controls/TextControl.tsx
index b29e10f6901..668ec2868b9 100644
--- a/js/libs/ui-shared/src/controls/TextControl.tsx
+++ b/js/libs/ui-shared/src/controls/TextControl.tsx
@@ -26,6 +26,7 @@ export type TextControlProps<
labelIcon?: string | ReactNode;
isDisabled?: boolean;
helperText?: string;
+ "data-testid"?: string;
};
export const TextControl = <
@@ -34,7 +35,7 @@ export const TextControl = <
>(
props: TextControlProps,
) => {
- const { labelIcon, ...rest } = props;
+ const { labelIcon, helperText, ...rest } = props;
const required = !!props.rules?.required;
const defaultValue = props.defaultValue ?? ("" as PathValue);
@@ -54,7 +55,7 @@ export const TextControl = <
- {props.helperText && (
+ {helperText && (
- {props.helperText}
+ {helperText}
)}