request instance of rive file

This commit is contained in:
Hernan Torrisi
2024-05-24 14:16:19 -07:00
committed by hernan
parent 0e0a2bd972
commit e3739f1a1f
2 changed files with 8 additions and 4 deletions

View File

@@ -25,7 +25,11 @@ function useRiveFile(params: UseRiveFileParameters): RiveFileState {
const loadRiveFile = async () => {
setStatus('loading');
file = new RiveFile(params);
file.init();
file.on(EventType.Load, () => {
// We request an instance to add +1 to the referencesCount so it doesn't get destroyed
// while this hook is active
file?.getInstance();
setRiveFile(file);
setStatus('success');
});
@@ -38,9 +42,7 @@ function useRiveFile(params: UseRiveFileParameters): RiveFileState {
loadRiveFile();
return () => {
if (file) {
file.cleanup();
}
file?.cleanup();
};
}, [params.src, params.buffer]);

View File

@@ -42,7 +42,9 @@ export type RiveState = {
RiveComponent: (props: ComponentProps<'canvas'>) => JSX.Element;
};
export type UseRiveFileParameters = RiveFileParameters;
export type UseRiveFileParameters = Partial<
Omit<RiveFileParameters, 'onLoad' | 'onLoadError'>
>;
export type FileStatus = 'idle' | 'loading' | 'failed' | 'success';