UNPKG

@progress/kendo-react-upload

Version:

React Upload component helps users transfer files from their file systems to dedicated server handlers. KendoReact Upload package

55 lines (54 loc) 2.04 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { provideLocalizationService as f, registerForLocalization as b } from "@progress/kendo-react-intl"; import * as n from "react"; import { messages as a, select as r, selectTitle as v, selectNoFilesTitle as w } from "./messages/index.mjs"; const y = /(chrome)[ \/]([\w.]+)/i, A = /(webkit)[ \/]([\w.]+)/i; class E extends n.Component { constructor() { super(...arguments), this._input = null, this.onMouseDown = (t) => { this.props.onMouseDown && this.props.onMouseDown(t); }, this.onAdd = () => { const t = navigator.userAgent, e = this._input; e && (this.props.onAdd && e.files && this.props.onAdd.call(void 0, e.files), !t.match(y) && t.match(A) || (e.type = "", e.type = "file")); }; } get actionElement() { return this._input; } render() { const { multiple: t, async: e, disabled: l, accept: c, hasFiles: d, ariaLabelledBy: i, ariaDescribedBy: p, id: u } = this.props, s = f(this), o = d ? v : w, h = s.toLanguageString(o, a[o]), m = s.toLanguageString(r, a[r]); return /* @__PURE__ */ n.createElement( "input", { id: u, ref: (g) => this._input = g, className: "k-hidden", autoComplete: "off", name: e.saveField, accept: c, type: "file", multiple: t, disabled: l, onChange: this.onAdd, onMouseDown: this.onMouseDown, title: h, tabIndex: -1, "data-testid": "upload-input-testid", "aria-label": i !== void 0 ? void 0 : m, "aria-labelledby": i, "aria-describedby": p, "aria-hidden": !0 } ); } } b(E); export { E as UploadInput };