@rive-app/react-native 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -4,6 +4,9 @@ import { useState, useEffect, useMemo, useRef } from 'react';
|
|
|
4
4
|
import { Image } from 'react-native';
|
|
5
5
|
import { RiveFileFactory } from "../core/RiveFile.js";
|
|
6
6
|
import { callDispose } from "../core/callDispose.js";
|
|
7
|
+
function isUriInput(input) {
|
|
8
|
+
return input != null && typeof input === 'object' && 'uri' in input;
|
|
9
|
+
}
|
|
7
10
|
function isRiveImage(value) {
|
|
8
11
|
return value !== null && typeof value === 'object' && '__type' in value && value.__type === 'HybridObject<RiveImage>';
|
|
9
12
|
}
|
|
@@ -61,11 +64,15 @@ export function useRiveFile(input, options = {}) {
|
|
|
61
64
|
});
|
|
62
65
|
const referencedAssets = useMemo(() => transformFilesHandledMapping(options.referencedAssets), [options.referencedAssets]);
|
|
63
66
|
const initialReferencedAssets = useRef(referencedAssets);
|
|
67
|
+
const inputKind = isUriInput(input) ? 'uri' : 'primitive';
|
|
68
|
+
const inputValue = isUriInput(input) ? input.uri : input;
|
|
64
69
|
useEffect(() => {
|
|
65
70
|
let currentFile = null;
|
|
66
71
|
const loadRiveFile = async () => {
|
|
67
72
|
try {
|
|
68
|
-
const currentInput =
|
|
73
|
+
const currentInput = inputKind === 'uri' ? {
|
|
74
|
+
uri: inputValue
|
|
75
|
+
} : inputValue;
|
|
69
76
|
if (currentInput == null) {
|
|
70
77
|
setResult({
|
|
71
78
|
riveFile: null,
|
|
@@ -105,7 +112,7 @@ export function useRiveFile(input, options = {}) {
|
|
|
105
112
|
callDispose(currentFile);
|
|
106
113
|
}
|
|
107
114
|
};
|
|
108
|
-
}, [
|
|
115
|
+
}, [inputKind, inputValue]);
|
|
109
116
|
const {
|
|
110
117
|
riveFile
|
|
111
118
|
} = result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useMemo","useRef","Image","RiveFileFactory","callDispose","isRiveImage","value","__type","parsePossibleSources","asset","image","source","resolvedAsset","resolveAssetSource","uri","sourceAssetId","Error","sourceUrl","fileName","path","result","sourceAsset","transformFilesHandledMapping","mapping","transformedMapping","undefined","Object","entries","forEach","key","useRiveFile","
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useMemo","useRef","Image","RiveFileFactory","callDispose","isUriInput","input","isRiveImage","value","__type","parsePossibleSources","asset","image","source","resolvedAsset","resolveAssetSource","uri","sourceAssetId","Error","sourceUrl","fileName","path","result","sourceAsset","transformFilesHandledMapping","mapping","transformedMapping","undefined","Object","entries","forEach","key","useRiveFile","options","setResult","riveFile","isLoading","error","referencedAssets","initialReferencedAssets","inputKind","inputValue","currentFile","loadRiveFile","currentInput","startsWith","fromURL","current","fromResource","fromSource","ArrayBuffer","fromBytes","err","console","message","updateReferencedAssets","data"],"sourceRoot":"../../../src","sources":["hooks/useRiveFile.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRiveFile.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRiveFile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EAET,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAEV,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"useRiveFile.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRiveFile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EAET,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAEV,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,WAAW,CAAC;AAQ5E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AA+DF,KAAK,kBAAkB,GACnB;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GACrD;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAChD;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,OAAO,GAAE,kBAAuB,GAC/B,kBAAkB,CAkGpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rive-app/react-native",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Rive React Native",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -189,5 +189,9 @@
|
|
|
189
189
|
"languages": "kotlin-swift",
|
|
190
190
|
"type": "nitro-module",
|
|
191
191
|
"version": "0.50.2"
|
|
192
|
+
},
|
|
193
|
+
"resolutions": {
|
|
194
|
+
"core-js-compat": "^3.40.0",
|
|
195
|
+
"browserslist": "^4.24.4"
|
|
192
196
|
}
|
|
193
197
|
}
|
package/src/hooks/useRiveFile.ts
CHANGED
|
@@ -16,6 +16,12 @@ import type {
|
|
|
16
16
|
export type { ReferencedAssets, ResolvedReferencedAssets };
|
|
17
17
|
export type RiveFileInput = number | { uri: string } | string | ArrayBuffer;
|
|
18
18
|
|
|
19
|
+
function isUriInput(
|
|
20
|
+
input: RiveFileInput | undefined
|
|
21
|
+
): input is { uri: string } {
|
|
22
|
+
return input != null && typeof input === 'object' && 'uri' in input;
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
export type UseRiveFileOptions = {
|
|
20
26
|
referencedAssets?: ReferencedAssets;
|
|
21
27
|
};
|
|
@@ -101,12 +107,18 @@ export function useRiveFile(
|
|
|
101
107
|
);
|
|
102
108
|
const initialReferencedAssets = useRef(referencedAssets);
|
|
103
109
|
|
|
110
|
+
const inputKind = isUriInput(input) ? 'uri' : 'primitive';
|
|
111
|
+
const inputValue = isUriInput(input) ? input.uri : input;
|
|
112
|
+
|
|
104
113
|
useEffect(() => {
|
|
105
114
|
let currentFile: RiveFile | null = null;
|
|
106
115
|
|
|
107
116
|
const loadRiveFile = async () => {
|
|
108
117
|
try {
|
|
109
|
-
const currentInput =
|
|
118
|
+
const currentInput =
|
|
119
|
+
inputKind === 'uri'
|
|
120
|
+
? { uri: inputValue as string }
|
|
121
|
+
: (inputValue as Exclude<RiveFileInput, { uri: string }>);
|
|
110
122
|
|
|
111
123
|
if (currentInput == null) {
|
|
112
124
|
setResult({
|
|
@@ -164,7 +176,7 @@ export function useRiveFile(
|
|
|
164
176
|
callDispose(currentFile);
|
|
165
177
|
}
|
|
166
178
|
};
|
|
167
|
-
}, [
|
|
179
|
+
}, [inputKind, inputValue]);
|
|
168
180
|
|
|
169
181
|
const { riveFile } = result;
|
|
170
182
|
useEffect(() => {
|