@hashiprobr/react-use-loader
Version:
A React Hook for simplifying basic usage of Three.js loaders
26 lines (22 loc) • 584 B
JavaScript
import { useState } from 'react';
export default function useLoader() {
const [loading, setLoading] = useState(false);
async function load(Loader, uri, onProgress) {
let model;
setLoading(true);
const promise = new Promise((resolve, reject) => {
const loader = new Loader();
loader.load(uri, resolve, onProgress, reject);
});
try {
model = await promise;
} finally {
setLoading(false);
}
return model;
}
return {
loading,
load,
};
}