aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/FileUpload/FileUpload.tsx4
-rw-r--r--src/utils/files.ts15
2 files changed, 17 insertions, 2 deletions
diff --git a/src/components/FileUpload/FileUpload.tsx b/src/components/FileUpload/FileUpload.tsx
index 6a31656..d455f62 100644
--- a/src/components/FileUpload/FileUpload.tsx
+++ b/src/components/FileUpload/FileUpload.tsx
@@ -1,7 +1,7 @@
import React, { useRef } from 'react';
-import { utils } from 'react-sage';
import Button from '@material-ui/core/Button';
import CloudUpload from '@material-ui/icons/CloudUpload';
+import { getLocalFileUrl } from '../../utils/files';
interface PropTypes {
callback: (fileUrl: string, file: File) => void;
@@ -15,7 +15,7 @@ const FileUpload: React.FC<PropTypes> = ({ callback, children }) => {
const files = event.target?.files;
if (files?.length) {
const file = files[0];
- utils.loadFile(file).then(url => callback(url, file));
+ getLocalFileUrl(file).then(url => callback(url, file));
};
};
diff --git a/src/utils/files.ts b/src/utils/files.ts
new file mode 100644
index 0000000..98c342c
--- /dev/null
+++ b/src/utils/files.ts
@@ -0,0 +1,15 @@
+export const getLocalFileUrl = (file: File): Promise<string> => {
+ return new Promise((resolve, reject) => {
+ const reader = new FileReader();
+
+ reader.addEventListener('load', () => {
+ if (typeof reader.result === 'string') resolve(reader.result);
+ }, false);
+
+ reader.addEventListener('error', () => {
+ reject(new Error('Error reading the file'))
+ }, false );
+
+ if (file) reader.readAsDataURL(file);
+ });
+};