import { FieldMetaProps, useField } from "formik"; import React, { Fragment } from "react"; import { BsFillPlusSquareFill, BsImage } from "react-icons/bs"; import { MdCancel } from "react-icons/md"; import { Badge, Flex, Text, ThemeUIStyleObject } from "theme-ui"; import { FormFieldInput } from "@/legacy/components/FormFields"; import SliceMachineIconButton, { SliceMachineIconButtonProps, } from "@/legacy/components/SliceMachineIconButton"; type ThumbnailButtonProps = Pick< SliceMachineIconButtonProps, "onClick" | "error" | "active" | "sx" > & { onDelete?: React.MouseEventHandler; text: React.ReactNode; }; export const ThumbnailButton: React.FC = ({ onClick, error, onDelete, active, text, sx, }) => ( ( {text} {onDelete ? ( ) : null} )} /> ); export const AddThumbnailButton: React.FC<{ onClick: React.MouseEventHandler; }> = ({ onClick }) => ( `1px solid ${String(colors?.borders)}`, }} Icon={() => ( )} /> ); export const ConstraintForm: React.FC<{ prefix: string; required?: boolean; display: boolean; }> = ({ prefix, required = false, display }) => { const [_field, meta] = useField(prefix); const requiredChar = required ? "*" : ""; if (!display) { return null; } return ( ); }; const TexField: React.FC<{ name: string; label: string; placeholder: string; isConstraint: boolean; meta: FieldMetaProps; sx?: ThemeUIStyleObject; }> = ({ name, label, placeholder, meta, isConstraint, ...props }) => { const [field] = useField(name); return ( ); }; const NumberField: React.FC<{ name: string; label: string; placeholder: string; sx?: ThemeUIStyleObject; }> = ({ name, label, placeholder, ...props }) => { const [field, meta] = useField(name); return ( { if (event.key === "e" || event.key === "-" || event.key === "+") { event.preventDefault(); } }, }} /> ); };