@siddjain/react-file-input
Version:
Bare-bones file picker for react with no dependencies that allows for ordering and deleting the files selected
1 lines • 3.97 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("@siddjain/react-file-input",[],t):"object"==typeof exports?exports["@siddjain/react-file-input"]=t():e["@siddjain/react-file-input"]=t()}(global,(function(){return(()=>{"use strict";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{default:()=>a});const n=require("react");var r=e.n(n);function o(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const a=function(e){var t,l,a=e.onChange,i=e.maxFileSize,u=e.value,c=e.accept,f=e.maxFileCount,d=(t=(0,n.useState)(u||[]),l=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,l=[],a=!0,i=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(l.push(r.value),!t||l.length!==t);a=!0);}catch(e){i=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(i)throw o}}return l}}(t,l)||o(t,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=d[0],y=d[1],p=function(){y(m.slice()),a&&a(m)},s=function(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=o(e))){n&&(e=n);var r=0,l=function(){};return{s:l,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw a}}}}(e.target.files);try{for(n.s();!(t=n.n()).done;){var r=t.value;m.push(r)}}catch(e){n.e(e)}finally{n.f()}p()};return r().createElement(r().Fragment,null,function(){if(m)return r().createElement("table",null,r().createElement("thead",null,r().createElement("tr",null,r().createElement("th",{scope:"col"},"#"),r().createElement("th",{scope:"col"},"Name"),r().createElement("th",{scope:"col"},"Size"),r().createElement("th",{scope:"col"},"Type"),r().createElement("th",{scope:"col"}))),r().createElement("tbody",null,m.map((function(e,t){return r().createElement("tr",{key:t},r().createElement("td",{key:t+":#"},t+1),r().createElement("td",null,e.name),r().createElement("td",null,e.size),r().createElement("td",null,e.type),r().createElement("td",null,t>0?r().createElement("button",{key:t+":up",onClick:function(e){return function(e,t){var n=m[t];m[t]=m[t-1],m[t-1]=n,p()}(0,t)}},String.fromCharCode(9650)):null,t<m.length-1?r().createElement("button",{key:t+":down",onClick:function(e){return function(e,t){var n=m[t];m[t]=m[t+1],m[t+1]=n,p()}(0,t)}},String.fromCharCode(9660)):null,r().createElement("button",{key:t+":del",onClick:function(e){return function(e,t){m.splice(t,1),p()}(0,t)}},String.fromCharCode(10006)),function(e){if(i&&i>0&&e.size>i)return r().createElement("span",null,String.fromCharCode(9888))}(e)))}))))}(),function(){if(!(f>0)||m.length<f)return r().createElement("input",{type:"file",onChange:s,accept:c})}())};return t})()}));