Port common authorization policy fields to new form controls (#27571)
Signed-off-by: Jon Koops <jonkoops@gmail.com>
This commit is contained in:
parent
b486972485
commit
658c033cf7
2 changed files with 15 additions and 62 deletions
|
@ -1,76 +1,29 @@
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useFormContext } from "react-hook-form";
|
import { TextAreaControl, TextControl } from "ui-shared";
|
||||||
import { FormGroup, ValidatedOptions } from "@patternfly/react-core";
|
|
||||||
|
|
||||||
import { HelpItem } from "ui-shared";
|
|
||||||
import { KeycloakTextInput } from "../../../components/keycloak-text-input/KeycloakTextInput";
|
|
||||||
import { KeycloakTextArea } from "../../../components/keycloak-text-area/KeycloakTextArea";
|
|
||||||
|
|
||||||
type NameDescriptionProps = {
|
type NameDescriptionProps = {
|
||||||
prefix: string;
|
|
||||||
isDisabled: boolean;
|
isDisabled: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const NameDescription = ({
|
export const NameDescription = ({ isDisabled }: NameDescriptionProps) => {
|
||||||
prefix,
|
|
||||||
isDisabled,
|
|
||||||
}: NameDescriptionProps) => {
|
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const {
|
|
||||||
register,
|
|
||||||
formState: { errors },
|
|
||||||
} = useFormContext();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<FormGroup
|
<TextControl
|
||||||
|
name="name"
|
||||||
label={t("name")}
|
label={t("name")}
|
||||||
fieldId="kc-name"
|
rules={{ required: t("required") }}
|
||||||
helperTextInvalid={t("required")}
|
|
||||||
validated={
|
|
||||||
errors.name ? ValidatedOptions.error : ValidatedOptions.default
|
|
||||||
}
|
|
||||||
isRequired
|
|
||||||
labelIcon={
|
|
||||||
<HelpItem helpText={t(`${prefix}-nameHelp`)} fieldLabelId="name" />
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<KeycloakTextInput
|
|
||||||
isDisabled={isDisabled}
|
isDisabled={isDisabled}
|
||||||
id="kc-name"
|
|
||||||
data-testid="name"
|
|
||||||
validated={
|
|
||||||
errors.name ? ValidatedOptions.error : ValidatedOptions.default
|
|
||||||
}
|
|
||||||
{...register("name", { required: true })}
|
|
||||||
/>
|
/>
|
||||||
</FormGroup>
|
<TextAreaControl
|
||||||
<FormGroup
|
name="description"
|
||||||
label={t("description")}
|
label={t("description")}
|
||||||
fieldId="kc-description"
|
rules={{
|
||||||
labelIcon={
|
maxLength: { message: t("maxLength", { length: 255 }), value: 255 },
|
||||||
<HelpItem
|
}}
|
||||||
helpText={t(`${prefix}-descriptionHelp`)}
|
|
||||||
fieldLabelId="description"
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
validated={
|
|
||||||
errors.description ? ValidatedOptions.error : ValidatedOptions.default
|
|
||||||
}
|
|
||||||
helperTextInvalid={t("maxLength", { length: 255 })}
|
|
||||||
>
|
|
||||||
<KeycloakTextArea
|
|
||||||
isDisabled={isDisabled}
|
isDisabled={isDisabled}
|
||||||
id="kc-description"
|
|
||||||
data-testid="description"
|
|
||||||
validated={
|
|
||||||
errors.description
|
|
||||||
? ValidatedOptions.error
|
|
||||||
: ValidatedOptions.default
|
|
||||||
}
|
|
||||||
{...register("description", { maxLength: 255 })}
|
|
||||||
/>
|
/>
|
||||||
</FormGroup>
|
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -201,7 +201,7 @@ export default function PolicyDetails() {
|
||||||
role="anyone" // if you get this far it means you have access
|
role="anyone" // if you get this far it means you have access
|
||||||
>
|
>
|
||||||
<FormProvider {...form}>
|
<FormProvider {...form}>
|
||||||
<NameDescription isDisabled={isDisabled} prefix="policy" />
|
<NameDescription isDisabled={isDisabled} />
|
||||||
<ComponentType />
|
<ComponentType />
|
||||||
<LogicSelector isDisabled={isDisabled} />
|
<LogicSelector isDisabled={isDisabled} />
|
||||||
</FormProvider>
|
</FormProvider>
|
||||||
|
|
Loading…
Reference in a new issue