This commit is contained in:
Josh Hawkins
2025-05-17 17:11:19 -05:00
committed by GitHub
parent ebae6cb1ed
commit 5d13925d2b
12 changed files with 45 additions and 14 deletions

View File

@@ -18,18 +18,33 @@ type TextEntryProps = {
allowEmpty?: boolean;
onSave: (text: string) => void;
children?: React.ReactNode;
regexPattern?: RegExp;
regexErrorMessage?: string;
};
export default function TextEntry({
defaultValue = "",
placeholder,
allowEmpty = false,
onSave,
children,
regexPattern,
regexErrorMessage = "Input does not match the required format",
}: TextEntryProps) {
const formSchema = z.object({
text: allowEmpty
? z.string().optional()
: z.string().min(1, "Field is required"),
text: z
.string()
.optional()
.refine(
(val) => {
if (!allowEmpty && !val) return false;
if (val && regexPattern) return regexPattern.test(val);
return true;
},
{
message: regexPattern ? regexErrorMessage : "Field is required",
},
),
});
const form = useForm<z.infer<typeof formSchema>>({