@brizy/ui
Version:
React elements in Brizy style
15 lines (14 loc) • 1.08 kB
JavaScript
import React, { useMemo } from "react";
import { Icon } from "../../Icon";
import { CmsAddIcon } from "../../icons";
import { BRZ_PREFIX, IMAGE_ACCEPTABLE_TYPES } from "../../constants";
import { useTranslation } from "../../utils/localization/useTranslation";
export const UploadButton = ({ disabled, withText, handleChange, onClick, acceptableTypes = IMAGE_ACCEPTABLE_TYPES, }) => {
const { t } = useTranslation();
const accept = useMemo(() => acceptableTypes.join(","), [acceptableTypes]);
return (React.createElement("label", { className: `${BRZ_PREFIX}-multiupload__label`, onClick: onClick },
!disabled && !onClick && (React.createElement("input", { multiple: true, type: "file", accept: accept, className: `${BRZ_PREFIX}-multiupload__input`, onChange: handleChange })),
React.createElement("div", { className: `${BRZ_PREFIX}-multiupload__add` },
React.createElement(Icon, { source: CmsAddIcon, color: "inherit" }),
withText && React.createElement("span", { className: `${BRZ_PREFIX}-multiupload__add-text` }, t("Add")))));
};