UNPKG

@mantine/dropzone

Version:

Dropzone component built with Mantine theme and components

25 lines (24 loc) 1.05 kB
"use client"; import { useDropzoneContext } from "./Dropzone.context.mjs"; import { isElement, useProps } from "@mantine/core"; import { upperFirst } from "@mantine/hooks"; import { cloneElement } from "react"; import { jsx } from "react/jsx-runtime"; //#region packages/@mantine/dropzone/src/DropzoneStatus.tsx function createDropzoneStatus(status) { const Component = (props) => { const { children, ...others } = useProps(`Dropzone${upperFirst(status)}`, {}, props); const ctx = useDropzoneContext(); const _children = isElement(children) ? children : /* @__PURE__ */ jsx("span", { children }); if (ctx[status]) return cloneElement(_children, others); return null; }; Component.displayName = `@mantine/dropzone/${upperFirst(status)}`; return Component; } const DropzoneAccept = createDropzoneStatus("accept"); const DropzoneReject = createDropzoneStatus("reject"); const DropzoneIdle = createDropzoneStatus("idle"); //#endregion export { DropzoneAccept, DropzoneIdle, DropzoneReject }; //# sourceMappingURL=DropzoneStatus.mjs.map