oneframe-react
Version:
Oneframe React ## Components, Hooks, Helper Functions & State Management
37 lines (36 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const noop = () => { };
exports.default = (options) => {
const { method = 'readAsText', onload: onloadHook = noop } = options;
const [file, setFile] = react_1.useState(null);
const [error, setError] = react_1.useState(null);
const [result, setResult] = react_1.useState(null);
const [loading, setLoading] = react_1.useState(false);
react_1.useEffect(() => {
if (!file)
return;
const reader = new FileReader();
reader.onloadstart = () => {
setLoading(true);
};
reader.onloadend = () => {
setLoading(false);
};
reader.onload = (e) => {
setResult(e.target.result);
onloadHook(e.target.result);
};
reader.onerror = (e) => {
setError(e);
};
try {
reader[method](file);
}
catch (e) {
setError(e);
}
}, [file, method, onloadHook]);
return [{ result, error, file, loading }, setFile];
};