UNPKG

@premieroctet/next-admin

Version:

Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje

44 lines (43 loc) 2.11 kB
import { jsx } from "react/jsx-runtime"; import external_clsx_default from "clsx"; import { useCallback } from "react"; import { useFormState } from "../../context/FormStateContext.mjs"; import { ariaDescribedByIds } from "../../utils/rjsf.mjs"; const TextareaWidget_TextareaWidget = ({ id, options = {}, placeholder, value, required, disabled, readonly, autofocus = false, onChange, onBlur, onFocus, rawErrors })=>{ const { setFieldDirty } = useFormState(); const handleChange = useCallback(({ target: { value } })=>{ setFieldDirty(id); onChange("" === value ? options.emptyValue : value); }, [ onChange, options.emptyValue ]); const handleBlur = useCallback(({ target: { value } })=>onBlur(id, value), [ onBlur, id ]); const handleFocus = useCallback(({ target: { value } })=>onFocus(id, value), [ id, onFocus ]); return /*#__PURE__*/ jsx("textarea", { id: id, name: id, className: external_clsx_default("form-control", "dark:bg-dark-nextadmin-background-subtle text-nextadmin-content-inverted dark:text-dark-nextadmin-content-inverted ring-nextadmin-border-default focus:ring-nextadmin-brand-default dark:focus:ring-dark-nextadmin-brand-default dark:ring-dark-nextadmin-border-strong block w-full rounded-t-md rounded-bl-md border-0 px-2 py-1.5 text-sm shadow-sm ring-1 ring-inset transition-colors duration-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 sm:leading-6", { "ring-red-600 dark:ring-red-400": rawErrors }), value: value ? value : "", placeholder: placeholder, required: required, disabled: disabled, readOnly: readonly, autoFocus: autofocus, rows: options.rows, onBlur: handleBlur, onFocus: handleFocus, onChange: handleChange, "aria-describedby": ariaDescribedByIds(id) }); }; const TextareaWidget = TextareaWidget_TextareaWidget; export { TextareaWidget as default };