mirror of
https://github.com/rive-app/rive-react.git
synced 2026-03-13 08:22:30 +08:00
request instance of rive file
This commit is contained in:
@@ -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]);
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user