@sekmet/react-ipfs-uploader
Version:
React Components that enable you to upload file(Images,PDFs,Text,etc.) , multiple files or a folder to IPFS .
954 lines (841 loc) • 41.9 kB
JavaScript
import React, { useState, useRef, Fragment } from 'react';
import { create } from 'ipfs-http-client';
// A type of promise-like that resolves synchronously and supports only one observer
const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
// Asynchronously call a function and send errors to recovery continuation
function _catch(body, recover) {
try {
var result = body();
} catch(e) {
return recover(e);
}
if (result && result.then) {
return result.then(void 0, recover);
}
return result;
}
var ipfs = create('https://ipfs.infura.io:5001/api/v0');
var FileUpload = function FileUpload(_ref) {
var setUrl = _ref.setUrl;
var _useState = useState({}),
file = _useState[0],
setFile = _useState[1];
var _useState2 = useState(''),
fileUrl = _useState2[0],
setFileUrl = _useState2[1];
var _useState3 = useState(false),
loading = _useState3[0],
setLoading = _useState3[1];
var _useState4 = useState(false),
uploaded = _useState4[0],
setUploaded = _useState4[1];
var uploadFile = function uploadFile(e) {
try {
var _temp3 = function _temp3() {
setLoading(false);
};
setLoading(true);
e.preventDefault();
var _temp4 = _catch(function () {
return Promise.resolve(ipfs.add(file)).then(function (added) {
var url = "https://ipfs.infura.io/ipfs/" + added.path;
setUrl(url);
setFileUrl(url);
setUploaded(true);
});
}, function (err) {
console.log('Error uploading the file : ', err);
});
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
} catch (e) {
return Promise.reject(e);
}
};
var preUpload = function preUpload(e) {
if (e.target.value !== '') {
setFile(e.target.files[0]);
} else {
setFile({});
}
};
var fileAndUploadButton = function fileAndUploadButton() {
if (file.name) {
if (!loading) {
return /*#__PURE__*/React.createElement("div", {
className: "mt-3"
}, /*#__PURE__*/React.createElement("h5", null, file.name, " ", /*#__PURE__*/React.createElement("span", {
className: "bg-green-100 text-green-800 text-sm font-medium mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-900"
}, file.size, " kb")), uploaded ? /*#__PURE__*/React.createElement("h5", null, "\u2705", ' ', /*#__PURE__*/React.createElement("a", {
href: fileUrl,
target: "_blank",
rel: "noopener noreferrer"
}, "File"), ' ', "Uploaded Successfully \u2705") : /*#__PURE__*/React.createElement("button", {
type: "submit",
className: "inline-flex justify-center py-2 px-4 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-md border border-transparent focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, "Upload File"));
} else {
return /*#__PURE__*/React.createElement("div", {
className: "grid grid-cols-1 gap-y-6 mt-4 sm:grid-cols-3 sm:gap-x-4"
}, /*#__PURE__*/React.createElement("h4", null, "Uploading File"), /*#__PURE__*/React.createElement("div", {
className: "w-full bg-gray-200 rounded-full h-2.5 dark:bg-gray-700"
}, /*#__PURE__*/React.createElement("div", {
className: "bg-blue-600 h-2.5 rounded-full",
style: "width: 69%"
})), /*#__PURE__*/React.createElement("h4", null, "Please Wait ..."));
}
}
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("form", {
onSubmit: uploadFile
}, /*#__PURE__*/React.createElement("input", {
required: true,
type: "file",
onChange: function onChange(e) {
return preUpload(e);
},
className: "p-3 text-sm bg-white rounded border-0 focus:outline-none focus:ring shadow transition-all duration-150 ease-linear placeholder:text-blueGray-300 text-blueGray-600"
}), fileAndUploadButton()));
};
var ipfs$1 = create('https://ipfs.infura.io:5001/api/v0');
var all = require('it-all');
var MultipleFilesUpload = function MultipleFilesUpload(_ref) {
var setUrl = _ref.setUrl;
var _useState = useState([]),
files = _useState[0],
setFiles = _useState[1];
var _useState2 = useState(''),
filesUrl = _useState2[0],
setFilesUrl = _useState2[1];
var _useState3 = useState(false),
loading = _useState3[0],
setLoading = _useState3[1];
var _useState4 = useState(false),
uploaded = _useState4[0],
setUploaded = _useState4[1];
var uploadFiles = function uploadFiles() {
try {
var fileObjectsArray = Array.from(files).map(function (file) {
return {
path: file.name,
content: file
};
});
return Promise.resolve(all(ipfs$1.addAll(fileObjectsArray, {
wrapWithDirectory: true
}))).then(function (results) {
console.log(results);
return results;
});
} catch (e) {
return Promise.reject(e);
}
};
var returnFilesUrl = function returnFilesUrl(e) {
try {
setLoading(true);
e.preventDefault();
return Promise.resolve(uploadFiles(files)).then(function (results) {
var length = results.length;
var FilesHash = results[length - 1].cid._baseCache.get('z');
var FilesUrl = 'https://ipfs.infura.io/ipfs/' + FilesHash;
setUrl(FilesUrl);
setFilesUrl(FilesUrl);
setLoading(false);
setUploaded(true);
});
} catch (e) {
return Promise.reject(e);
}
};
var filesAndUploadButton = function filesAndUploadButton() {
if (files.length !== 0) {
if (!loading) {
return /*#__PURE__*/React.createElement("div", null, uploaded ? /*#__PURE__*/React.createElement("h5", null, "\u2705", ' ', /*#__PURE__*/React.createElement("a", {
href: filesUrl,
target: "_blank",
rel: "noopener noreferrer"
}, "Files"), ' ', "Uploaded Successfully \u2705") : /*#__PURE__*/React.createElement("div", {
className: "mt-3"
}, /*#__PURE__*/React.createElement("button", {
className: "inline-flex justify-center py-2 px-4 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-md border border-transparent focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm",
type: "submit"
}, "Upload Files"), /*#__PURE__*/React.createElement("ul", {
className: "mb-3 mt-3"
}, Array.from(files).map(function (file) {
return /*#__PURE__*/React.createElement("li", {
className: "d-flex justify-content-between align-items-start"
}, /*#__PURE__*/React.createElement("div", {
className: "ms-2 me-auto"
}, file.name), /*#__PURE__*/React.createElement("span", {
className: "bg-green-100 text-green-800 text-sm font-medium mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-900"
}, ">", file.size, " kb"));
}))));
} else {
return /*#__PURE__*/React.createElement("div", {
className: "grid grid-cols-1 gap-y-6 mt-4 sm:grid-cols-3 sm:gap-x-4"
}, /*#__PURE__*/React.createElement("h4", null, "Uploading Files"), /*#__PURE__*/React.createElement("div", {
className: "w-full bg-gray-200 rounded-full h-2.5 dark:bg-gray-700"
}, /*#__PURE__*/React.createElement("div", {
className: "bg-blue-600 h-2.5 rounded-full",
style: "width: 69%"
})), /*#__PURE__*/React.createElement("h4", null, "Please Wait ..."));
}
}
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("form", {
onSubmit: returnFilesUrl
}, /*#__PURE__*/React.createElement("input", {
required: true,
type: "file",
multiple: true,
onChange: function onChange(e) {
return setFiles(e.target.files);
},
className: "p-3 text-sm bg-white rounded border-0 focus:outline-none focus:ring shadow transition-all duration-150 ease-linear placeholder:text-blueGray-300 text-blueGray-600"
}), filesAndUploadButton()));
};
var ipfs$2 = create('https://ipfs.infura.io:5001/api/v0');
var all$1 = require('it-all');
var FolderUpload = function FolderUpload(_ref) {
var setUrl = _ref.setUrl;
var _useState = useState([]),
files = _useState[0],
setFiles = _useState[1];
var _useState2 = useState(''),
folderUrl = _useState2[0],
setFolderUrl = _useState2[1];
var _useState3 = useState(false),
loading = _useState3[0],
setLoading = _useState3[1];
var _useState4 = useState(false),
uploaded = _useState4[0],
setUploaded = _useState4[1];
var uploadFiles = function uploadFiles() {
try {
var fileObjectsArray = Array.from(files).map(function (file) {
return {
path: file.name,
content: file
};
});
return Promise.resolve(all$1(ipfs$2.addAll(fileObjectsArray, {
wrapWithDirectory: true
}))).then(function (results) {
console.log(results);
return results;
});
} catch (e) {
return Promise.reject(e);
}
};
var returnFilesUrl = function returnFilesUrl(e) {
try {
setLoading(true);
e.preventDefault();
return Promise.resolve(uploadFiles(files)).then(function (results) {
var length = results.length;
var FilesHash = results[length - 1].cid._baseCache.get('z');
var FilesUrl = 'https://ipfs.infura.io/ipfs/' + FilesHash;
console.log(FilesUrl);
setUrl(FilesUrl);
setFolderUrl(FilesUrl);
setLoading(false);
setUploaded(true);
});
} catch (e) {
return Promise.reject(e);
}
};
var filesAndUploadButton = function filesAndUploadButton() {
if (files.length !== 0) {
if (!loading) {
return /*#__PURE__*/React.createElement("div", null, uploaded ? /*#__PURE__*/React.createElement("h5", null, "\u2705", ' ', /*#__PURE__*/React.createElement("a", {
href: folderUrl,
target: "_blank",
rel: "noopener noreferrer"
}, "Folder"), ' ', "Uploaded Successfully \u2705") : /*#__PURE__*/React.createElement("div", {
className: "mt-3"
}, /*#__PURE__*/React.createElement("button", {
type: "submit",
className: "inline-flex justify-center py-2 px-4 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-md border border-transparent focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, "Upload Folder"), /*#__PURE__*/React.createElement("ul", {
className: "mb-3 mt-3"
}, Array.from(files).map(function (file) {
return /*#__PURE__*/React.createElement("li", {
className: "d-flex justify-content-between align-items-start"
}, /*#__PURE__*/React.createElement("div", {
className: "ms-2 me-auto"
}, file.name), /*#__PURE__*/React.createElement("span", {
className: "bg-green-100 text-green-800 text-sm font-medium mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-900"
}, file.size, " kb"));
}))));
} else {
return /*#__PURE__*/React.createElement("div", {
className: "grid grid-cols-1 gap-y-6 mt-4 sm:grid-cols-3 sm:gap-x-4"
}, /*#__PURE__*/React.createElement("h4", null, "Uploading Folder"), /*#__PURE__*/React.createElement("div", {
className: "w-full bg-gray-200 rounded-full h-2.5 dark:bg-gray-700"
}, /*#__PURE__*/React.createElement("div", {
className: "bg-blue-600 h-2.5 rounded-full",
style: "width: 69%"
})), /*#__PURE__*/React.createElement("h4", null, "Please Wait ..."));
}
}
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("form", {
onSubmit: returnFilesUrl
}, /*#__PURE__*/React.createElement("input", {
required: true,
type: "file",
webkitdirectory: "true",
multiple: true,
onChange: function onChange(e) {
return setFiles(e.target.files);
},
className: "p-3 text-sm bg-white rounded border-0 focus:outline-none focus:ring shadow transition-all duration-150 ease-linear placeholder:text-blueGray-300 text-blueGray-600"
}), filesAndUploadButton()));
};
var ipfs$3 = create('https://ipfs.infura.io:5001/api/v0');
var ImageUpload = function ImageUpload(_ref) {
var setUrl = _ref.setUrl,
setMediaUrl = _ref.setMediaUrl,
onlyButton = _ref.onlyButton,
_ref$buttonText = _ref.buttonText,
buttonText = _ref$buttonText === void 0 ? "Select image" : _ref$buttonText,
classNameSubmit = _ref.classNameSubmit,
prepareUpload = _ref.prepareUpload;
var _useState = useState({}),
image = _useState[0],
setImage = _useState[1];
var _useState2 = useState(''),
imagePreview = _useState2[0],
setImagePreview = _useState2[1];
var _useState3 = useState(false),
loading = _useState3[0],
setLoading = _useState3[1];
var _useState4 = useState(false),
uploaded = _useState4[0],
setUploaded = _useState4[1];
var inputFile = useRef(null);
var createPreview = function createPreview(e) {
if (e.target.value !== '') {
setImage(e.target.files[0]);
var src = URL.createObjectURL(e.target.files[0]);
setImagePreview(src);
setMediaUrl(src);
if (typeof prepareUpload === 'function') {
prepareUpload(true);
}
} else {
setImagePreview('');
}
};
var resetUpload = function resetUpload(e) {
e.preventDefault();
setUrl(false);
setImagePreview('');
setUploaded(false);
setLoading(false);
};
var uploadFile = function uploadFile(e) {
try {
var _temp3 = function _temp3() {
setLoading(false);
};
setLoading(true);
e.preventDefault();
var _temp4 = _catch(function () {
return Promise.resolve(ipfs$3.add(image)).then(function (added) {
var url = "https://ipfs.infura.io/ipfs/" + added.path;
setUrl(url);
setImagePreview(url);
setUploaded(true);
});
}, function (err) {
console.log('Error uploading the file : ', err);
});
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
} catch (e) {
return Promise.reject(e);
}
};
var previewAndUploadButton = function previewAndUploadButton() {
if (imagePreview !== '' && !onlyButton) {
if (!loading) {
return /*#__PURE__*/React.createElement("div", null, uploaded ? /*#__PURE__*/React.createElement("h5", null, "\u2705", ' ', /*#__PURE__*/React.createElement("a", {
href: imagePreview,
target: "_blank",
rel: "noopener noreferrer"
}, "Image"), ' ', "Uploaded Successfully \u2705", ' ') : /*#__PURE__*/React.createElement("div", {
className: "mt-3"
}, /*#__PURE__*/React.createElement("button", {
type: "submit",
className: "inline-flex justify-center py-2 px-4 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-md border border-transparent focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, "Upload Image"), /*#__PURE__*/React.createElement("h5", {
className: "mt-3 mb-3"
}, image.name, ' ', /*#__PURE__*/React.createElement("span", {
className: "bg-green-100 text-green-800 text-sm font-medium mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-900"
}, image.size, " kb")), /*#__PURE__*/React.createElement("img", {
style: {
height: '269px'
},
className: "box-content h-32 w-32 p-3 border-3 mb-3",
src: imagePreview
})));
} else {
return /*#__PURE__*/React.createElement("div", {
className: "grid grid-cols-1 gap-y-6 mt-4 sm:grid-cols-3 sm:gap-x-4"
}, /*#__PURE__*/React.createElement("h4", null, "Uploading Image"), /*#__PURE__*/React.createElement("div", {
className: "w-full bg-gray-200 rounded-full h-2.5 dark:bg-gray-700"
}, /*#__PURE__*/React.createElement("div", {
className: "bg-blue-600 h-2.5 rounded-full",
style: "width: 69%"
})), /*#__PURE__*/React.createElement("h4", null, "Please Wait ..."));
}
}
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("form", {
onSubmit: uploadFile
}, onlyButton ? /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("input", {
required: true,
ref: inputFile,
type: "file",
accept: "image/*",
onChange: function onChange(e) {
return createPreview(e);
},
className: "invisible",
style: {
position: 'absolute',
left: 0,
opacity: 0
}
}), imagePreview && !uploaded ? /*#__PURE__*/React.createElement("button", {
type: "submit",
className: "py-2 px-3 ml-3 text-sm font-medium leading-4 text-gray-700 bg-white hover:bg-gray-50 rounded-md border border-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, loading ? 'Uploading...' : 'Upload Image') : uploaded && /*#__PURE__*/React.createElement("button", {
type: "reset",
onClick: function onClick(e) {
return resetUpload(e);
},
className: "py-2 px-3 ml-3 text-sm font-medium leading-4 text-gray-700 bg-white hover:text-white hover:bg-red-500 rounded-md border border-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, "Reset") || !uploaded && /*#__PURE__*/React.createElement("button", {
onClick: function onClick() {
return inputFile.current.click();
},
type: "button",
className: classNameSubmit
}, buttonText)) : /*#__PURE__*/React.createElement("input", {
required: true,
type: "file",
accept: "image/*",
onChange: function onChange(e) {
return createPreview(e);
},
className: "p-3 text-sm bg-white rounded border-0 focus:outline-none focus:ring shadow transition-all duration-150 ease-linear placeholder:text-blueGray-300 text-blueGray-600"
}), previewAndUploadButton()));
};
var ipfs$4 = create('https://ipfs.infura.io:5001/api/v0');
var contractURI = function contractURI(name, description, image, animation_url, external_url, sha256) {
return "{\n \"name\": \"" + (name ? name : '') + "\",\n \"description\": \"" + (description ? description : '') + "\",\n \"image\": \"" + image + "\",\n \"animation_url\": \"" + (animation_url ? animation_url : '') + "\",\n \"external_url\": \"" + (external_url ? external_url : '') + "\",\n \"sha256\": \"" + (sha256 ? sha256 : '') + "\"\n}\n";
};
var Erc721ImageUpload = function Erc721ImageUpload(_ref) {
var name = _ref.name,
description = _ref.description,
setUrl = _ref.setUrl,
setPreview = _ref.setPreview,
prepareUpload = _ref.prepareUpload;
var _useState = useState({}),
image = _useState[0],
setImage = _useState[1];
var _useState2 = useState({});
var _useState3 = useState(''),
imagePreview = _useState3[0],
setImagePreview = _useState3[1];
var _useState4 = useState(false),
loading = _useState4[0],
setLoading = _useState4[1];
var _useState5 = useState(false),
uploaded = _useState5[0],
setUploaded = _useState5[1];
var getJsonFile = function getJsonFile(name, description, image, animation_url, external_url, sha256) {
var file = new Blob([contractURI(name, description, image, animation_url, external_url, sha256)], {
name: "contractURI.json",
type: 'application/json'
});
return file;
};
var createPreview = function createPreview(e) {
if (e.target.value !== '') {
setImage(e.target.files[0]);
var src = URL.createObjectURL(e.target.files[0]);
setImagePreview(src);
if (typeof prepareUpload === 'function') {
prepareUpload(true);
}
} else {
setImagePreview('');
}
};
var uploadFile = function uploadFile(e) {
try {
var _temp3 = function _temp3() {
setLoading(false);
};
setLoading(true);
e.preventDefault();
var _temp4 = _catch(function () {
return Promise.resolve(ipfs$4.add(image)).then(function (added) {
var image_url = "https://ipfs.infura.io/ipfs/" + added.path;
setImagePreview(image_url);
setPreview(image_url);
var jsonblob = getJsonFile(name, description, image_url, '', '', '');
return Promise.resolve(ipfs$4.add(jsonblob)).then(function (added_json) {
var url = "https://ipfs.infura.io/ipfs/" + added_json.path;
setUrl(url);
setUploaded(true);
});
});
}, function (err) {
console.log('Error uploading the file : ', err);
});
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
} catch (e) {
return Promise.reject(e);
}
};
var previewAndUploadButton = function previewAndUploadButton() {
if (imagePreview !== '') {
if (!loading) {
return /*#__PURE__*/React.createElement("div", null, uploaded ? /*#__PURE__*/React.createElement("h5", null, "\u2705", ' ', /*#__PURE__*/React.createElement("a", {
href: imagePreview,
target: "_blank",
rel: "noopener noreferrer"
}, "Image"), ' ', "Uploaded Successfully \u2705", ' ') : /*#__PURE__*/React.createElement("div", {
className: "mt-3"
}, /*#__PURE__*/React.createElement("button", {
type: "submit",
className: "inline-flex justify-center py-2 px-4 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-md border border-transparent focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, "Upload Image"), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("h5", {
className: "mt-3 mb-3"
}, image.name, ' ', /*#__PURE__*/React.createElement("span", {
className: "bg-green-100 text-green-800 text-sm font-medium mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-900"
}, image.size, " kb")), /*#__PURE__*/React.createElement("img", {
style: {
height: '269px'
},
className: "mb-3",
src: imagePreview
})));
} else {
return /*#__PURE__*/React.createElement("div", {
className: "grid grid-cols-1 gap-y-6 mt-4 sm:grid-cols-3 sm:gap-x-4"
}, /*#__PURE__*/React.createElement("h4", null, "Uploading Image"), /*#__PURE__*/React.createElement("div", {
className: "w-full bg-gray-200 rounded-full h-2.5 dark:bg-gray-700"
}, /*#__PURE__*/React.createElement("div", {
className: "bg-blue-600 h-2.5 rounded-full",
style: "width: 69%"
})), /*#__PURE__*/React.createElement("h4", null, "Please Wait ..."));
}
}
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("form", {
onSubmit: uploadFile
}, /*#__PURE__*/React.createElement("input", {
required: true,
type: "file",
accept: "image/*",
onChange: function onChange(e) {
return createPreview(e);
},
className: "p-3 text-sm bg-white rounded border-0 focus:outline-none focus:ring shadow transition-all duration-150 ease-linear placeholder:text-blueGray-300 text-blueGray-600"
}), previewAndUploadButton()));
};
var ipfs$5 = create('https://ipfs.infura.io:5001/api/v0');
var videoPlaceholder = "data:image/jpeg;base64,/9j/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABA\nAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAA\nABIAAAAAQAAAEgAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABo\nAMAAQAAAP//AAACoAQAAQAAALwCAAADoAQAAQAAAMIBAAAAAAAA/9sAQwAGBAUGBQQGBgUGBwcGC\nAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHB\nwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK\nCgoKCgo/8AAEQgBwgK8AwEiAAIRAQMRAf/EABsAAQADAQEBAQAAAAAAAAAAAAAFBgcCAwQB/8QAP\nRABAAIBAgIGBwUHAgcAAAAAAAECAwQFBhESITFBUWEHImJxgZGxExQjocEVNUJDdLLRMlNScpLC4\nfDx/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDE\nQA/ALeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n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\n+X2bW87c7aXJyrlpHb5THmhQGlcUcP4d901dw2u1LaiaxaJrPVlju6+6f8A5LOM2K+DLbHmpemSs\n8rVtHKYnzhL8OcQ6rZsnRr+LpZnnbFafzr4Lzamx8W4ImJj7xEdscq5ae/xj5wDLBb9y4E12GZnQ\n5ceop3Vt6lv8ITNw/u2GeV9u1Mz7FJt9OYIsSeLYd2yzyrt2qifbxzWPnMJfb+B9y1ExOqnFpad/\nSnp2+UdX5gqtaza0VrEzaZ5REdczLQOD+F/us13HdqxW9Y6WPFb+D2refl3JHTbbsnC2KNRqMlZz\n8urJl67zPs17vgqXE3FWfdulg08Tg0ffXn62T3+XkDvjTiH9q6iNNpbT9zxW58/9y3j7lYAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+0\ntbHeL0tNb1nnE1nlMT5S/AFh0HF+76OIrOeNRSO7NHOfn1Sl8XpBzRH42347T7GWY/SVHAXrJ6Qc\nkx+Ht1Kz42zTP8A2witdxnu2pia4749PWf9qvX85mfyVoB3nzZc+WcmfJfJkt22vMzM++XAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAA//Z";
var VideoUpload = function VideoUpload(_ref) {
var setUrl = _ref.setUrl;
var _useState = useState({}),
video = _useState[0],
setVideo = _useState[1];
var _useState2 = useState(''),
imagePreview = _useState2[0],
setImagePreview = _useState2[1];
var _useState3 = useState(false),
loading = _useState3[0],
setLoading = _useState3[1];
var _useState4 = useState(false),
uploaded = _useState4[0],
setUploaded = _useState4[1];
var createPreview = function createPreview(e) {
if (e.target.value !== '') {
setVideo(e.target.files[0]);
setImagePreview(videoPlaceholder);
} else {
setImagePreview('');
}
};
var uploadFile = function uploadFile(e) {
try {
var _temp3 = function _temp3() {
setLoading(false);
};
setLoading(true);
e.preventDefault();
var _temp4 = _catch(function () {
return Promise.resolve(ipfs$5.add(video)).then(function (added) {
var url = "https://ipfs.infura.io/ipfs/" + added.path;
setUrl(url);
setImagePreview(url);
setUploaded(true);
});
}, function (err) {
console.log('Error uploading the file : ', err);
});
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
} catch (e) {
return Promise.reject(e);
}
};
var previewAndUploadButton = function previewAndUploadButton() {
if (imagePreview !== '') {
if (!loading) {
return /*#__PURE__*/React.createElement("div", null, uploaded ? /*#__PURE__*/React.createElement("h5", null, "\u2705", ' ', /*#__PURE__*/React.createElement("a", {
href: imagePreview,
target: "_blank",
rel: "noopener noreferrer"
}, "Video"), ' ', "Uploaded Successfully \u2705", ' ') : /*#__PURE__*/React.createElement("div", {
className: "mt-3"
}, /*#__PURE__*/React.createElement("button", {
type: "submit",
className: "inline-flex justify-center py-2 px-4 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-md border border-transparent focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, "Upload Video"), /*#__PURE__*/React.createElement("h5", {
className: "mt-3 mb-3"
}, video.name, ' ', /*#__PURE__*/React.createElement("span", {
className: "bg-green-900 text-white text-sm font-medium mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-900"
}, video.size, " kb")), /*#__PURE__*/React.createElement("img", {
style: {
height: '300px'
},
className: "box-content h-32 w-32 p-3 border-3 mb-3",
src: imagePreview
})));
} else {
return /*#__PURE__*/React.createElement("div", {
className: "grid grid-cols-1 gap-y-6 mt-4 sm:grid-cols-3 sm:gap-x-4"
}, /*#__PURE__*/React.createElement("h4", null, "Uploading Video"), /*#__PURE__*/React.createElement("div", {
className: "w-full bg-gray-200 rounded-full h-2.5 dark:bg-gray-700"
}, /*#__PURE__*/React.createElement("div", {
className: "bg-blue-600 h-2.5 rounded-full",
style: "width: 69%"
})), /*#__PURE__*/React.createElement("h4", null, "Please Wait ..."));
}
}
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("form", {
onSubmit: uploadFile
}, /*#__PURE__*/React.createElement("input", {
required: true,
type: "file",
accept: "video/*",
onChange: function onChange(e) {
return createPreview(e);
},
className: "p-3 text-sm bg-white rounded border-0 focus:outline-none focus:ring shadow transition-all duration-150 ease-linear placeholder:text-blueGray-300 text-blueGray-600"
}), previewAndUploadButton()));
};
var ipfs$6 = create('https://ipfs.infura.io:5001/api/v0');
var PdfUpload = function PdfUpload(_ref) {
var setUrl = _ref.setUrl;
var _useState = useState({}),
pdf = _useState[0],
setPdf = _useState[1];
var _useState2 = useState(''),
pdfPreview = _useState2[0],
setPdfPreview = _useState2[1];
var _useState3 = useState(false),
loading = _useState3[0],
setLoading = _useState3[1];
var _useState4 = useState(false),
uploaded = _useState4[0],
setUploaded = _useState4[1];
var createPreview = function createPreview(e) {
if (e.target.value !== '') {
setPdf(e.target.files[0]);
var src = URL.createObjectURL(e.target.files[0]);
setPdfPreview(src);
} else {
setPdfPreview('');
}
};
var uploadFile = function uploadFile(e) {
try {
var _temp3 = function _temp3() {
setLoading(false);
};
setLoading(true);
e.preventDefault();
var _temp4 = _catch(function () {
return Promise.resolve(ipfs$6.add(pdf)).then(function (added) {
var url = "https://ipfs.infura.io/ipfs/" + added.path;
setPdfPreview(url);
setUrl(url);
setUploaded(true);
});
}, function (err) {
console.log('Error uploading the file : ', err);
});
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
} catch (e) {
return Promise.reject(e);
}
};
var previewAndUploadButton = function previewAndUploadButton() {
if (pdfPreview !== '') {
if (!loading) {
return /*#__PURE__*/React.createElement("div", null, uploaded ? /*#__PURE__*/React.createElement("h5", null, "\u2705", ' ', /*#__PURE__*/React.createElement("a", {
href: pdfPreview,
s: true,
target: "_blank",
rel: "noopener noreferrer"
}, "PDF"), ' ', "Uploaded Successfully \u2705") : /*#__PURE__*/React.createElement("div", {
className: "mt-3"
}, /*#__PURE__*/React.createElement("button", {
type: "submit",
className: "inline-flex justify-center py-2 px-4 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-md border border-transparent focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, "Upload PDF"), /*#__PURE__*/React.createElement("h5", {
className: "mt-3 mb-3"
}, pdf.name, " ", /*#__PURE__*/React.createElement("span", {
className: "bg-green-100 text-green-800 text-sm font-medium mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-900"
}, pdf.size, " kb")), /*#__PURE__*/React.createElement("embed", {
width: "75%",
height: "400px",
className: "mb-3",
src: pdfPreview
})));
} else {
return /*#__PURE__*/React.createElement("div", {
className: "grid grid-cols-1 gap-y-6 mt-4 sm:grid-cols-3 sm:gap-x-4"
}, /*#__PURE__*/React.createElement("h4", null, "Uploading PDF"), /*#__PURE__*/React.createElement("div", {
className: "w-full bg-gray-200 rounded-full h-2.5 dark:bg-gray-700"
}, /*#__PURE__*/React.createElement("div", {
className: "bg-blue-600 h-2.5 rounded-full",
style: "width: 69%"
})), /*#__PURE__*/React.createElement("h4", null, "Please Wait ..."));
}
}
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("form", {
onSubmit: uploadFile
}, /*#__PURE__*/React.createElement("input", {
required: true,
type: "file",
accept: "application/pdf",
onChange: function onChange(e) {
return createPreview(e);
},
className: "p-3 text-sm bg-white rounded border-0 focus:outline-none focus:ring shadow transition-all duration-150 ease-linear placeholder:text-blueGray-300 text-blueGray-600"
}), previewAndUploadButton()));
};
var ipfs$7 = create('https://ipfs.infura.io:5001/api/v0');
var TextUpload = function TextUpload(_ref) {
var setUrl = _ref.setUrl;
var _useState = useState(''),
text = _useState[0],
setText = _useState[1];
var _useState2 = useState(false),
loading = _useState2[0],
setLoading = _useState2[1];
var _useState3 = useState(false),
uploaded = _useState3[0],
setUploaded = _useState3[1];
var _useState4 = useState(''),
textUrl = _useState4[0],
setTextUrl = _useState4[1];
var uploadText = function uploadText(e) {
try {
var _temp3 = function _temp3() {
setLoading(false);
};
setLoading(true);
e.preventDefault();
var _temp4 = _catch(function () {
return Promise.resolve(ipfs$7.add(text)).then(function (added) {
var url = "https://ipfs.infura.io/ipfs/" + added.path;
setTextUrl(url);
setUrl(url);
setUploaded(true);
});
}, function (err) {
console.log('Error uploading the file : ', err);
});
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
} catch (e) {
return Promise.reject(e);
}
};
var uploadButtonLoading = function uploadButtonLoading() {
if (text === '') return;
if (uploaded) {
return /*#__PURE__*/React.createElement("h5", null, "\u2705", ' ', /*#__PURE__*/React.createElement("a", {
href: textUrl,
target: "_blank",
rel: "noopener noreferrer"
}, "Text"), ' ', "Uploaded Successfully \u2705");
} else {
if (loading) {
return /*#__PURE__*/React.createElement("div", {
className: "grid grid-cols-1 gap-y-6 mt-4 sm:grid-cols-3 sm:gap-x-4"
}, /*#__PURE__*/React.createElement("h4", null, "Uploading Text"), /*#__PURE__*/React.createElement("div", {
className: "w-full bg-gray-200 rounded-full h-2.5 dark:bg-gray-700"
}, /*#__PURE__*/React.createElement("div", {
className: "bg-blue-600 h-2.5 rounded-full",
style: "width: 69%"
})), /*#__PURE__*/React.createElement("h4", null, "Please Wait ..."));
} else {
return /*#__PURE__*/React.createElement("button", {
type: "submit",
className: "inline-flex justify-center py-2 px-4 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-md border border-transparent focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm"
}, "Upload Text");
}
}
};
var textForm = function textForm() {
if (loading || uploaded) {
return /*#__PURE__*/React.createElement("form", null, /*#__PURE__*/React.createElement("div", {
className: "mb-3"
}, /*#__PURE__*/React.createElement("label", {
className: "block text-sm font-medium text-gray-700"
}, "Enter the Text :"), /*#__PURE__*/React.createElement("div", {
className: "mt-1"
}, /*#__PURE__*/React.createElement("textarea", {
className: "block mt-1 w-full rounded-md border border-gray-300 focus:border-blue-500 focus:ring-blue-500 shadow-sm sm:text-sm",
onChange: function onChange(e) {
return setText(e.target.value);
},
readOnly: true,
rows: 3
}))), uploadButtonLoading());
} else {
return /*#__PURE__*/React.createElement("form", {
onSubmit: uploadText
}, /*#__PURE__*/React.createElement("div", {
className: "mb-3"
}, /*#__PURE__*/React.createElement("label", {
className: "block text-sm font-medium text-gray-700"
}, "Enter the Text :"), /*#__PURE__*/React.createElement("div", {
className: "mt-1"
}, /*#__PURE__*/React.createElement("textarea", {
className: "block mt-1 w-full rounded-md border border-gray-300 focus:border-blue-500 focus:ring-blue-500 shadow-sm sm:text-sm",
onChange: function onChange(e) {
return setText(e.target.value);
},
required: true,
rows: 3
}))), uploadButtonLoading());
}
};
return /*#__PURE__*/React.createElement("div", null, textForm());
};
export { Erc721ImageUpload, FileUpload, FolderUpload, ImageUpload, MultipleFilesUpload, PdfUpload, TextUpload, VideoUpload };
//# sourceMappingURL=index.modern.js.map