"use client" import { Text, TextField } from "react-aria-components" import { Controller, useFormContext } from "react-hook-form" import { useIntl } from "react-intl" import { CheckIcon, CloseIcon } from "@/components/Icons" import Error from "@/components/TempDesignSystem/Form/ErrorMessage/Error" import AriaInputWithLabel from "@/components/TempDesignSystem/Form/Input/AriaInputWithLabel" import Caption from "@/components/TempDesignSystem/Text/Caption" import { type IconProps, Key, type NewPasswordProps } from "./newPassword" import styles from "./newPassword.module.css" export default function NewPassword({ "aria-label": ariaLabel, disabled = false, placeholder = "", registerOptions = {}, }: NewPasswordProps) { const { control } = useFormContext() const { formatMessage } = useIntl() return ( { const messages = (fieldState.error?.message?.split(",") ?? []) as Key[] return ( {field.value ? (
10 {formatMessage({ id: "to" })} 40{" "} {formatMessage({ id: "characters" })} 1{" "} {formatMessage({ id: "uppercase letter" })} 1{" "} {formatMessage({ id: "number" })} 1{" "} {formatMessage({ id: "special character" })}
) : null} {!field.value && fieldState.error ? ( {fieldState.error.message} ) : null}
) }} /> ) } function Icon({ matcher, messages }: IconProps) { return messages.includes(matcher) ? ( ) : ( ) }