()
| 667 | useEffect(() => { |
| 668 | let canceled = false; |
| 669 | const load = async () => { |
| 670 | try { |
| 671 | await Promise.all([ |
| 672 | faceapi.nets.tinyFaceDetector.loadFromUri(modelsPath), |
| 673 | faceapi.nets.faceLandmark68TinyNet.loadFromUri(modelsPath) |
| 674 | ]); |
| 675 | if (!canceled) setModelsReady(true); |
| 676 | } catch { |
| 677 | if (!canceled) setModelsReady(false); |
| 678 | } |
| 679 | }; |
| 680 | load(); |
| 681 | return () => { |
| 682 | canceled = true; |