@rive-app/react-native 0.2.0 → 0.2.2
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.
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt +13 -4
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModel.kt +1 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt +1 -1
- package/ios/HybridRiveFile.swift +1 -0
- package/ios/HybridViewModel.swift +1 -0
- package/lib/module/core/RiveView.js +38 -9
- package/lib/module/core/RiveView.js.map +1 -1
- package/lib/module/hooks/useRive.js +56 -38
- package/lib/module/hooks/useRive.js.map +1 -1
- package/lib/module/hooks/useRiveBoolean.js +17 -5
- package/lib/module/hooks/useRiveBoolean.js.map +1 -1
- package/lib/module/hooks/useRiveColor.js +38 -10
- package/lib/module/hooks/useRiveColor.js.map +1 -1
- package/lib/module/hooks/useRiveEnum.js +21 -9
- package/lib/module/hooks/useRiveEnum.js.map +1 -1
- package/lib/module/hooks/useRiveList.js +170 -54
- package/lib/module/hooks/useRiveList.js.map +1 -1
- package/lib/module/hooks/useRiveNumber.js +17 -5
- package/lib/module/hooks/useRiveNumber.js.map +1 -1
- package/lib/module/hooks/useRiveProperty.js +2 -2
- package/lib/module/hooks/useRiveProperty.js.map +1 -1
- package/lib/module/hooks/useRiveString.js +17 -5
- package/lib/module/hooks/useRiveString.js.map +1 -1
- package/lib/module/hooks/useRiveTrigger.js +50 -15
- package/lib/module/hooks/useRiveTrigger.js.map +1 -1
- package/lib/module/hooks/useViewModelInstance.js +97 -12
- package/lib/module/hooks/useViewModelInstance.js.map +1 -1
- package/lib/typescript/src/hooks/useRiveEnum.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useViewModelInstance.d.ts +82 -13
- package/lib/typescript/src/hooks/useViewModelInstance.d.ts.map +1 -1
- package/lib/typescript/src/specs/RiveView.nitro.d.ts +1 -1
- package/lib/typescript/src/specs/RiveView.nitro.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/hooks/useRiveEnum.ts +5 -4
- package/src/hooks/useViewModelInstance.ts +198 -35
- package/src/specs/RiveView.nitro.ts +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
3
4
|
import { useCallback, useEffect, useState, useMemo } from 'react';
|
|
4
5
|
/**
|
|
5
6
|
* Hook for interacting with list ViewModel instance properties.
|
|
@@ -9,63 +10,178 @@ import { useCallback, useEffect, useState, useMemo } from 'react';
|
|
|
9
10
|
* @returns An object with list length, manipulation methods, and error state
|
|
10
11
|
*/
|
|
11
12
|
export function useRiveList(path, viewModelInstance) {
|
|
13
|
+
const $ = _c(36);
|
|
12
14
|
const [error, setError] = useState(null);
|
|
13
15
|
const [revision, setRevision] = useState(0);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
let t0;
|
|
17
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
18
|
+
t0 = () => {
|
|
19
|
+
setError(null);
|
|
20
|
+
};
|
|
21
|
+
$[0] = t0;
|
|
22
|
+
} else {
|
|
23
|
+
t0 = $[0];
|
|
24
|
+
}
|
|
25
|
+
let t1;
|
|
26
|
+
if ($[1] !== path || $[2] !== viewModelInstance) {
|
|
27
|
+
t1 = [path, viewModelInstance];
|
|
28
|
+
$[1] = path;
|
|
29
|
+
$[2] = viewModelInstance;
|
|
30
|
+
$[3] = t1;
|
|
31
|
+
} else {
|
|
32
|
+
t1 = $[3];
|
|
33
|
+
}
|
|
34
|
+
useEffect(t0, t1);
|
|
35
|
+
let t2;
|
|
36
|
+
bb0: {
|
|
37
|
+
if (!viewModelInstance) {
|
|
38
|
+
t2 = undefined;
|
|
39
|
+
break bb0;
|
|
40
|
+
}
|
|
41
|
+
let t3;
|
|
42
|
+
if ($[4] !== path || $[5] !== viewModelInstance) {
|
|
43
|
+
t3 = viewModelInstance.listProperty(path);
|
|
44
|
+
$[4] = path;
|
|
45
|
+
$[5] = viewModelInstance;
|
|
46
|
+
$[6] = t3;
|
|
47
|
+
} else {
|
|
48
|
+
t3 = $[6];
|
|
24
49
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
50
|
+
t2 = t3;
|
|
51
|
+
}
|
|
52
|
+
const property = t2;
|
|
53
|
+
let t3;
|
|
54
|
+
let t4;
|
|
55
|
+
if ($[7] !== path || $[8] !== property || $[9] !== viewModelInstance) {
|
|
56
|
+
t3 = () => {
|
|
57
|
+
if (viewModelInstance && !property) {
|
|
58
|
+
setError(new Error(`List property "${path}" not found in the ViewModel instance`));
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
t4 = [viewModelInstance, property, path];
|
|
62
|
+
$[7] = path;
|
|
63
|
+
$[8] = property;
|
|
64
|
+
$[9] = viewModelInstance;
|
|
65
|
+
$[10] = t3;
|
|
66
|
+
$[11] = t4;
|
|
67
|
+
} else {
|
|
68
|
+
t3 = $[10];
|
|
69
|
+
t4 = $[11];
|
|
70
|
+
}
|
|
71
|
+
useEffect(t3, t4);
|
|
72
|
+
let t5;
|
|
73
|
+
let t6;
|
|
74
|
+
if ($[12] !== property) {
|
|
75
|
+
t5 = () => {
|
|
76
|
+
if (!property) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const removeListener = property.addListener(() => {
|
|
80
|
+
setRevision(_temp);
|
|
81
|
+
});
|
|
82
|
+
return () => {
|
|
83
|
+
removeListener();
|
|
84
|
+
property.removeListeners();
|
|
85
|
+
property.dispose();
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
t6 = [property];
|
|
89
|
+
$[12] = property;
|
|
90
|
+
$[13] = t5;
|
|
91
|
+
$[14] = t6;
|
|
92
|
+
} else {
|
|
93
|
+
t5 = $[13];
|
|
94
|
+
t6 = $[14];
|
|
95
|
+
}
|
|
96
|
+
useEffect(t5, t6);
|
|
97
|
+
const length = property?.length ?? 0;
|
|
98
|
+
let t7;
|
|
99
|
+
if ($[15] !== property) {
|
|
100
|
+
t7 = index => property?.getInstanceAt(index);
|
|
101
|
+
$[15] = property;
|
|
102
|
+
$[16] = t7;
|
|
103
|
+
} else {
|
|
104
|
+
t7 = $[16];
|
|
105
|
+
}
|
|
106
|
+
const getInstanceAt = t7;
|
|
107
|
+
let t8;
|
|
108
|
+
if ($[17] !== property) {
|
|
109
|
+
t8 = instance => {
|
|
110
|
+
property?.addInstance(instance);
|
|
35
111
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
112
|
+
$[17] = property;
|
|
113
|
+
$[18] = t8;
|
|
114
|
+
} else {
|
|
115
|
+
t8 = $[18];
|
|
116
|
+
}
|
|
117
|
+
const addInstance = t8;
|
|
118
|
+
let t9;
|
|
119
|
+
if ($[19] !== property) {
|
|
120
|
+
t9 = (instance_0, index_0) => property?.addInstanceAt(instance_0, index_0) ?? false;
|
|
121
|
+
$[19] = property;
|
|
122
|
+
$[20] = t9;
|
|
123
|
+
} else {
|
|
124
|
+
t9 = $[20];
|
|
125
|
+
}
|
|
126
|
+
const addInstanceAt = t9;
|
|
127
|
+
let t10;
|
|
128
|
+
if ($[21] !== property) {
|
|
129
|
+
t10 = instance_1 => {
|
|
130
|
+
property?.removeInstance(instance_1);
|
|
131
|
+
};
|
|
132
|
+
$[21] = property;
|
|
133
|
+
$[22] = t10;
|
|
134
|
+
} else {
|
|
135
|
+
t10 = $[22];
|
|
136
|
+
}
|
|
137
|
+
const removeInstance = t10;
|
|
138
|
+
let t11;
|
|
139
|
+
if ($[23] !== property) {
|
|
140
|
+
t11 = index_1 => {
|
|
141
|
+
property?.removeInstanceAt(index_1);
|
|
142
|
+
};
|
|
143
|
+
$[23] = property;
|
|
144
|
+
$[24] = t11;
|
|
145
|
+
} else {
|
|
146
|
+
t11 = $[24];
|
|
147
|
+
}
|
|
148
|
+
const removeInstanceAt = t11;
|
|
149
|
+
let t12;
|
|
150
|
+
if ($[25] !== property) {
|
|
151
|
+
t12 = (index1, index2) => property?.swap(index1, index2) ?? false;
|
|
152
|
+
$[25] = property;
|
|
153
|
+
$[26] = t12;
|
|
154
|
+
} else {
|
|
155
|
+
t12 = $[26];
|
|
156
|
+
}
|
|
157
|
+
const swap = t12;
|
|
158
|
+
let t13;
|
|
159
|
+
if ($[27] !== addInstance || $[28] !== addInstanceAt || $[29] !== error || $[30] !== getInstanceAt || $[31] !== length || $[32] !== removeInstance || $[33] !== removeInstanceAt || $[34] !== swap) {
|
|
160
|
+
t13 = {
|
|
161
|
+
length,
|
|
162
|
+
getInstanceAt,
|
|
163
|
+
addInstance,
|
|
164
|
+
addInstanceAt,
|
|
165
|
+
removeInstance,
|
|
166
|
+
removeInstanceAt,
|
|
167
|
+
swap,
|
|
168
|
+
error
|
|
169
|
+
};
|
|
170
|
+
$[27] = addInstance;
|
|
171
|
+
$[28] = addInstanceAt;
|
|
172
|
+
$[29] = error;
|
|
173
|
+
$[30] = getInstanceAt;
|
|
174
|
+
$[31] = length;
|
|
175
|
+
$[32] = removeInstance;
|
|
176
|
+
$[33] = removeInstanceAt;
|
|
177
|
+
$[34] = swap;
|
|
178
|
+
$[35] = t13;
|
|
179
|
+
} else {
|
|
180
|
+
t13 = $[35];
|
|
181
|
+
}
|
|
182
|
+
return t13;
|
|
183
|
+
}
|
|
184
|
+
function _temp(r) {
|
|
185
|
+
return r + 1;
|
|
70
186
|
}
|
|
71
187
|
//# sourceMappingURL=useRiveList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useRiveList","path","viewModelInstance","error","setError","revision","setRevision","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useRiveList","path","viewModelInstance","$","_c","error","setError","revision","setRevision","t0","Symbol","for","t1","t2","bb0","undefined","t3","listProperty","property","t4","Error","t5","t6","removeListener","addListener","_temp","removeListeners","dispose","length","t7","index","getInstanceAt","t8","instance","addInstance","t9","instance_0","index_0","addInstanceAt","t10","instance_1","removeInstance","t11","index_1","removeInstanceAt","t12","index1","index2","swap","t13","r"],"sourceRoot":"../../../src","sources":["hooks/useRiveList.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
3
4
|
import { useRiveProperty } from "./useRiveProperty.js";
|
|
4
5
|
const NUMBER_PROPERTY_OPTIONS = {
|
|
5
6
|
getProperty: (vmi, p) => vmi.numberProperty(p)
|
|
@@ -13,11 +14,22 @@ const NUMBER_PROPERTY_OPTIONS = {
|
|
|
13
14
|
* @returns An object with the number value, a setter function, and an error if the property is not found
|
|
14
15
|
*/
|
|
15
16
|
export function useRiveNumber(path, viewModelInstance) {
|
|
17
|
+
const $ = _c(4);
|
|
16
18
|
const [value, setValue, error] = useRiveProperty(viewModelInstance, path, NUMBER_PROPERTY_OPTIONS);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
let t0;
|
|
20
|
+
if ($[0] !== error || $[1] !== setValue || $[2] !== value) {
|
|
21
|
+
t0 = {
|
|
22
|
+
value,
|
|
23
|
+
setValue,
|
|
24
|
+
error
|
|
25
|
+
};
|
|
26
|
+
$[0] = error;
|
|
27
|
+
$[1] = setValue;
|
|
28
|
+
$[2] = value;
|
|
29
|
+
$[3] = t0;
|
|
30
|
+
} else {
|
|
31
|
+
t0 = $[3];
|
|
32
|
+
}
|
|
33
|
+
return t0;
|
|
22
34
|
}
|
|
23
35
|
//# sourceMappingURL=useRiveNumber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRiveProperty","NUMBER_PROPERTY_OPTIONS","getProperty","vmi","p","numberProperty","useRiveNumber","path","viewModelInstance","value","setValue","error"],"sourceRoot":"../../../src","sources":["hooks/useRiveNumber.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["useRiveProperty","NUMBER_PROPERTY_OPTIONS","getProperty","vmi","p","numberProperty","useRiveNumber","path","viewModelInstance","$","_c","value","setValue","error","t0"],"sourceRoot":"../../../src","sources":["hooks/useRiveNumber.ts"],"mappings":";;;AAKA,SAASA,eAAe,QAAQ,sBAAmB;AAEnD,MAAMC,uBAAuB,GAAG;EAC9BC,WAAW,EAAEA,CAACC,GAAsB,EAAEC,CAAS,KAAKD,GAAG,CAACE,cAAc,CAACD,CAAC;AAC1E,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAAE,cAAAC,IAAA,EAAAC,iBAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAIL,OAAAC,KAAA,EAAAC,QAAA,EAAAC,KAAA,IAAiCb,eAAe,CAG9CQ,iBAAiB,EAAED,IAAI,EAAEN,uBAAuB,CAAC;EAAC,IAAAa,EAAA;EAAA,IAAAL,CAAA,QAAAI,KAAA,IAAAJ,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAE,KAAA;IAC7CG,EAAA;MAAAH,KAAA;MAAAC,QAAA;MAAAC;IAAyB,CAAC;IAAAJ,CAAA,MAAAI,KAAA;IAAAJ,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAE,KAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAAA,OAA1BK,EAA0B;AAAA","ignoreList":[]}
|
|
@@ -65,8 +65,8 @@ export function useRiveProperty(viewModelInstance, path, options) {
|
|
|
65
65
|
if (!property) {
|
|
66
66
|
setError(new Error(`Cannot set value for property "${path}" because it was not found. Your view model instance may be undefined, or the path may be incorrect.`));
|
|
67
67
|
} else {
|
|
68
|
-
const
|
|
69
|
-
property.value =
|
|
68
|
+
const newValue_0 = typeof valueOrUpdater === 'function' ? valueOrUpdater(property.value) : valueOrUpdater;
|
|
69
|
+
property.value = newValue_0;
|
|
70
70
|
}
|
|
71
71
|
}, [property, path]);
|
|
72
72
|
return [value, setPropertyValue, error, property];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useRiveProperty","viewModelInstance","path","options","property","getProperty","value","setValue","error","setError","Error","removeListener","onPropertyEventOverride","addListener","newValue","dispose","setPropertyValue","valueOrUpdater"],"sourceRoot":"../../../src","sources":["hooks/useRiveProperty.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AAOjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,iBAAuD,EACvDC,IAAY,EACZC,OAKC,EAMD;EACA;EACA,MAAMC,QAAQ,GAAGL,OAAO,CAAC,MAAM;IAC7B,IAAI,CAACE,iBAAiB,EAAE;IACxB,OAAOE,OAAO,CAACE,WAAW,CACxBJ,iBAAiB,EACjBC,IACF,CAAC;EACH,CAAC,EAAE,CAACC,OAAO,EAAEF,iBAAiB,EAAEC,IAAI,CAAC,CAAC;;EAEtC;EACA,MAAM,CAACI,KAAK,EAAEC,QAAQ,CAAC,GAAGT,QAAQ,CAAgB,MAAMM,QAAQ,EAAEE,KAAK,CAAC;EACxE,MAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAe,IAAI,CAAC;;EAEtD;EACAD,SAAS,CAAC,MAAM;IACd,IAAIO,QAAQ,EAAE;MACZG,QAAQ,CAACH,QAAQ,CAACE,KAAK,CAAC;IAC1B;EACF,CAAC,EAAE,CAACF,QAAQ,CAAC,CAAC;;EAEd;EACAP,SAAS,CAAC,MAAM;IACdY,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC,EAAE,CAACP,IAAI,EAAED,iBAAiB,CAAC,CAAC;;EAE7B;EACAJ,SAAS,CAAC,MAAM;IACd,IAAII,iBAAiB,IAAI,CAACG,QAAQ,EAAE;MAClCK,QAAQ,CACN,IAAIC,KAAK,CAAC,aAAaR,IAAI,uCAAuC,CACpE,CAAC;IACH;EACF,CAAC,EAAE,CAACD,iBAAiB,EAAEG,QAAQ,EAAEF,IAAI,CAAC,CAAC;;EAEvC;EACAL,SAAS,CAAC,MAAM;IACd,IAAI,CAACO,QAAQ,EAAE;;IAEf;IACA;IACA,MAAMO,cAAc,GAAGR,OAAO,CAACS,uBAAuB,GAClDR,QAAQ,CAACS,WAAW,CAACV,OAAO,CAACS,uBAAuB,CAAC,GACrDR,QAAQ,CAACS,WAAW,CAAEC,QAAQ,IAAK;MACjCP,QAAQ,CAACO,QAAQ,CAAC;IACpB,CAAC,CAAC;IAEN,OAAO,MAAM;MACXH,cAAc,CAAC,CAAC;MAChBP,QAAQ,CAACW,OAAO,CAAC,CAAC;IACpB,CAAC;EACH,CAAC,EAAE,CAACZ,OAAO,EAAEC,QAAQ,CAAC,CAAC;;EAEvB;EACA,MAAMY,gBAAgB,GAAGpB,WAAW,CACjCqB,cAAqD,IAAK;IACzD,IAAI,CAACb,QAAQ,EAAE;MACbK,QAAQ,CACN,IAAIC,KAAK,CACP,kCAAkCR,IAAI,sGACxC,CACF,CAAC;IACH,CAAC,MAAM;MACL,MAAMY,
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useRiveProperty","viewModelInstance","path","options","property","getProperty","value","setValue","error","setError","Error","removeListener","onPropertyEventOverride","addListener","newValue","dispose","setPropertyValue","valueOrUpdater"],"sourceRoot":"../../../src","sources":["hooks/useRiveProperty.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AAOjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,iBAAuD,EACvDC,IAAY,EACZC,OAKC,EAMD;EACA;EACA,MAAMC,QAAQ,GAAGL,OAAO,CAAC,MAAM;IAC7B,IAAI,CAACE,iBAAiB,EAAE;IACxB,OAAOE,OAAO,CAACE,WAAW,CACxBJ,iBAAiB,EACjBC,IACF,CAAC;EACH,CAAC,EAAE,CAACC,OAAO,EAAEF,iBAAiB,EAAEC,IAAI,CAAC,CAAC;;EAEtC;EACA,MAAM,CAACI,KAAK,EAAEC,QAAQ,CAAC,GAAGT,QAAQ,CAAgB,MAAMM,QAAQ,EAAEE,KAAK,CAAC;EACxE,MAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAe,IAAI,CAAC;;EAEtD;EACAD,SAAS,CAAC,MAAM;IACd,IAAIO,QAAQ,EAAE;MACZG,QAAQ,CAACH,QAAQ,CAACE,KAAK,CAAC;IAC1B;EACF,CAAC,EAAE,CAACF,QAAQ,CAAC,CAAC;;EAEd;EACAP,SAAS,CAAC,MAAM;IACdY,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC,EAAE,CAACP,IAAI,EAAED,iBAAiB,CAAC,CAAC;;EAE7B;EACAJ,SAAS,CAAC,MAAM;IACd,IAAII,iBAAiB,IAAI,CAACG,QAAQ,EAAE;MAClCK,QAAQ,CACN,IAAIC,KAAK,CAAC,aAAaR,IAAI,uCAAuC,CACpE,CAAC;IACH;EACF,CAAC,EAAE,CAACD,iBAAiB,EAAEG,QAAQ,EAAEF,IAAI,CAAC,CAAC;;EAEvC;EACAL,SAAS,CAAC,MAAM;IACd,IAAI,CAACO,QAAQ,EAAE;;IAEf;IACA;IACA,MAAMO,cAAc,GAAGR,OAAO,CAACS,uBAAuB,GAClDR,QAAQ,CAACS,WAAW,CAACV,OAAO,CAACS,uBAAuB,CAAC,GACrDR,QAAQ,CAACS,WAAW,CAAEC,QAAQ,IAAK;MACjCP,QAAQ,CAACO,QAAQ,CAAC;IACpB,CAAC,CAAC;IAEN,OAAO,MAAM;MACXH,cAAc,CAAC,CAAC;MAChBP,QAAQ,CAACW,OAAO,CAAC,CAAC;IACpB,CAAC;EACH,CAAC,EAAE,CAACZ,OAAO,EAAEC,QAAQ,CAAC,CAAC;;EAEvB;EACA,MAAMY,gBAAgB,GAAGpB,WAAW,CACjCqB,cAAqD,IAAK;IACzD,IAAI,CAACb,QAAQ,EAAE;MACbK,QAAQ,CACN,IAAIC,KAAK,CACP,kCAAkCR,IAAI,sGACxC,CACF,CAAC;IACH,CAAC,MAAM;MACL,MAAMY,UAAQ,GACZ,OAAOG,cAAc,KAAK,UAAU,GAC/BA,cAAc,CACbb,QAAQ,CAACE,KACX,CAAC,GACDW,cAAc;MACpBb,QAAQ,CAACE,KAAK,GAAGQ,UAAQ;IAC3B;EACF,CAAC,EACD,CAACV,QAAQ,EAAEF,IAAI,CACjB,CAAC;EAED,OAAO,CAACI,KAAK,EAAEU,gBAAgB,EAAER,KAAK,EAAEJ,QAAQ,CAAiB;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
3
4
|
import { useRiveProperty } from "./useRiveProperty.js";
|
|
4
5
|
const STRING_PROPERTY_OPTIONS = {
|
|
5
6
|
getProperty: (vmi, p) => vmi.stringProperty(p)
|
|
@@ -13,11 +14,22 @@ const STRING_PROPERTY_OPTIONS = {
|
|
|
13
14
|
* @returns An object with the number value, a setter function, and an error if the property is not found
|
|
14
15
|
*/
|
|
15
16
|
export function useRiveString(path, viewModelInstance) {
|
|
17
|
+
const $ = _c(4);
|
|
16
18
|
const [value, setValue, error] = useRiveProperty(viewModelInstance, path, STRING_PROPERTY_OPTIONS);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
let t0;
|
|
20
|
+
if ($[0] !== error || $[1] !== setValue || $[2] !== value) {
|
|
21
|
+
t0 = {
|
|
22
|
+
value,
|
|
23
|
+
setValue,
|
|
24
|
+
error
|
|
25
|
+
};
|
|
26
|
+
$[0] = error;
|
|
27
|
+
$[1] = setValue;
|
|
28
|
+
$[2] = value;
|
|
29
|
+
$[3] = t0;
|
|
30
|
+
} else {
|
|
31
|
+
t0 = $[3];
|
|
32
|
+
}
|
|
33
|
+
return t0;
|
|
22
34
|
}
|
|
23
35
|
//# sourceMappingURL=useRiveString.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRiveProperty","STRING_PROPERTY_OPTIONS","getProperty","vmi","p","stringProperty","useRiveString","path","viewModelInstance","value","setValue","error"],"sourceRoot":"../../../src","sources":["hooks/useRiveString.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["useRiveProperty","STRING_PROPERTY_OPTIONS","getProperty","vmi","p","stringProperty","useRiveString","path","viewModelInstance","$","_c","value","setValue","error","t0"],"sourceRoot":"../../../src","sources":["hooks/useRiveString.ts"],"mappings":";;;AAKA,SAASA,eAAe,QAAQ,sBAAmB;AAEnD,MAAMC,uBAAuB,GAAG;EAC9BC,WAAW,EAAEA,CAACC,GAAsB,EAAEC,CAAS,KAAKD,GAAG,CAACE,cAAc,CAACD,CAAC;AAC1E,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAAE,cAAAC,IAAA,EAAAC,iBAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAIL,OAAAC,KAAA,EAAAC,QAAA,EAAAC,KAAA,IAAiCb,eAAe,CAG9CQ,iBAAiB,EAAED,IAAI,EAAEN,uBAAuB,CAAC;EAAC,IAAAa,EAAA;EAAA,IAAAL,CAAA,QAAAI,KAAA,IAAAJ,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAE,KAAA;IAC7CG,EAAA;MAAAH,KAAA;MAAAC,QAAA;MAAAC;IAAyB,CAAC;IAAAJ,CAAA,MAAAI,KAAA;IAAAJ,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAE,KAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAAA,OAA1BK,EAA0B;AAAA","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
3
4
|
import { useCallback, useMemo } from 'react';
|
|
4
5
|
import { useRiveProperty } from "./useRiveProperty.js";
|
|
5
6
|
const getTriggerProperty = (vmi, p) => vmi.triggerProperty(p);
|
|
@@ -12,22 +13,56 @@ const getTriggerProperty = (vmi, p) => vmi.triggerProperty(p);
|
|
|
12
13
|
* @returns A trigger function that can be called to fire the trigger
|
|
13
14
|
*/
|
|
14
15
|
export function useRiveTrigger(path, viewModelInstance, params) {
|
|
16
|
+
const $ = _c(9);
|
|
17
|
+
let t0;
|
|
18
|
+
if ($[0] !== params) {
|
|
19
|
+
t0 = params ?? {};
|
|
20
|
+
$[0] = params;
|
|
21
|
+
$[1] = t0;
|
|
22
|
+
} else {
|
|
23
|
+
t0 = $[1];
|
|
24
|
+
}
|
|
15
25
|
const {
|
|
16
26
|
onTrigger
|
|
17
|
-
} =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
} = t0;
|
|
28
|
+
let t1;
|
|
29
|
+
if ($[2] !== onTrigger) {
|
|
30
|
+
t1 = {
|
|
31
|
+
getProperty: getTriggerProperty,
|
|
32
|
+
onPropertyEventOverride: onTrigger
|
|
33
|
+
};
|
|
34
|
+
$[2] = onTrigger;
|
|
35
|
+
$[3] = t1;
|
|
36
|
+
} else {
|
|
37
|
+
t1 = $[3];
|
|
38
|
+
}
|
|
39
|
+
const triggerOptions = t1;
|
|
40
|
+
const [,, error, property] = useRiveProperty(viewModelInstance, path, triggerOptions);
|
|
41
|
+
let t2;
|
|
42
|
+
if ($[4] !== property) {
|
|
43
|
+
t2 = () => {
|
|
44
|
+
if (property) {
|
|
45
|
+
property.trigger();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
$[4] = property;
|
|
49
|
+
$[5] = t2;
|
|
50
|
+
} else {
|
|
51
|
+
t2 = $[5];
|
|
52
|
+
}
|
|
53
|
+
const trigger = t2;
|
|
54
|
+
let t3;
|
|
55
|
+
if ($[6] !== error || $[7] !== trigger) {
|
|
56
|
+
t3 = {
|
|
57
|
+
trigger,
|
|
58
|
+
error
|
|
59
|
+
};
|
|
60
|
+
$[6] = error;
|
|
61
|
+
$[7] = trigger;
|
|
62
|
+
$[8] = t3;
|
|
63
|
+
} else {
|
|
64
|
+
t3 = $[8];
|
|
65
|
+
}
|
|
66
|
+
return t3;
|
|
32
67
|
}
|
|
33
68
|
//# sourceMappingURL=useRiveTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useRiveProperty","getTriggerProperty","vmi","p","triggerProperty","useRiveTrigger","path","viewModelInstance","params","onTrigger","
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useRiveProperty","getTriggerProperty","vmi","p","triggerProperty","useRiveTrigger","path","viewModelInstance","params","$","_c","t0","onTrigger","t1","getProperty","onPropertyEventOverride","triggerOptions","error","property","t2","trigger","t3"],"sourceRoot":"../../../src","sources":["hooks/useRiveTrigger.ts"],"mappings":";;;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAS5C,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,MAAMC,kBAAkB,GAAGA,CAACC,GAAsB,EAAEC,CAAS,KAC3DD,GAAG,CAACE,eAAe,CAACD,CAAC,CAAC;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAAE,eAAAC,IAAA,EAAAC,iBAAA,EAAAC,MAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAF,CAAA,QAAAD,MAAA;IAKiBG,EAAA,GAAAH,MAAY,IAAZ,CAAW,CAAC;IAAAC,CAAA,MAAAD,MAAA;IAAAC,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAAlC;IAAAG;EAAA,IAAsBD,EAAY;EAAC,IAAAE,EAAA;EAAA,IAAAJ,CAAA,QAAAG,SAAA;IAG1BC,EAAA;MAAAC,WAAA,EACQb,kBAAkB;MAAAc,uBAAA,EACNH;IAC3B,CAAC;IAAAH,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAJH,MAAAO,cAAA,GACSH,EAGN;EAIH,UAAAI,KAAA,EAAAC,QAAA,IAAiClB,eAAe,CAG9CO,iBAAiB,EAAED,IAAI,EAAEU,cAAc,CAAC;EAAC,IAAAG,EAAA;EAAA,IAAAV,CAAA,QAAAS,QAAA;IAEfC,EAAA,GAAAA,CAAA;MAC1B,IAAID,QAAQ;QACVA,QAAQ,CAAAE,OAAQ,CAAC,CAAC;MAAA;IACnB,CACF;IAAAX,CAAA,MAAAS,QAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAJD,MAAAW,OAAA,GAAgBD,EAIF;EAAC,IAAAE,EAAA;EAAA,IAAAZ,CAAA,QAAAQ,KAAA,IAAAR,CAAA,QAAAW,OAAA;IAERC,EAAA;MAAAD,OAAA;MAAAH;IAAiB,CAAC;IAAAR,CAAA,MAAAQ,KAAA;IAAAR,CAAA,MAAAW,OAAA;IAAAX,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,OAAlBY,EAAkB;AAAA","ignoreList":[]}
|
|
@@ -2,13 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
import { useMemo, useEffect, useRef } from 'react';
|
|
4
4
|
import { callDispose } from "../core/callDispose.js";
|
|
5
|
+
import { ArtboardByName } from "../specs/ArtboardBy.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Use the ViewModel assigned to the default artboard.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Use the ViewModel assigned to a specific artboard.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Use a ViewModel by name (file-wide lookup).
|
|
17
|
+
* ViewModels are defined at the file level, not per-artboard.
|
|
18
|
+
*/
|
|
19
|
+
|
|
5
20
|
function isRiveViewRef(source) {
|
|
6
|
-
return source !== null &&
|
|
21
|
+
return source !== null && 'getViewModelInstance' in source;
|
|
7
22
|
}
|
|
8
23
|
function isRiveFile(source) {
|
|
9
|
-
return source !== null &&
|
|
24
|
+
return source !== null && 'defaultArtboardViewModel' in source;
|
|
10
25
|
}
|
|
11
|
-
function createInstance(source,
|
|
26
|
+
function createInstance(source, instanceName, artboardName, viewModelName, useNew) {
|
|
12
27
|
if (!source) {
|
|
13
28
|
return {
|
|
14
29
|
instance: null,
|
|
@@ -23,8 +38,40 @@ function createInstance(source, name, useNew) {
|
|
|
23
38
|
};
|
|
24
39
|
}
|
|
25
40
|
if (isRiveFile(source)) {
|
|
26
|
-
|
|
27
|
-
|
|
41
|
+
let viewModel;
|
|
42
|
+
if (viewModelName) {
|
|
43
|
+
viewModel = source.viewModelByName(viewModelName);
|
|
44
|
+
if (!viewModel) {
|
|
45
|
+
return {
|
|
46
|
+
instance: null,
|
|
47
|
+
needsDispose: false,
|
|
48
|
+
error: `ViewModel '${viewModelName}' not found`
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
viewModel = source.defaultArtboardViewModel(artboardName ? ArtboardByName(artboardName) : undefined);
|
|
53
|
+
if (!viewModel) {
|
|
54
|
+
if (artboardName) {
|
|
55
|
+
return {
|
|
56
|
+
instance: null,
|
|
57
|
+
needsDispose: false,
|
|
58
|
+
error: `Artboard '${artboardName}' not found or has no ViewModel`
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
instance: null,
|
|
63
|
+
needsDispose: false
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const vmi = instanceName ? viewModel.createInstanceByName(instanceName) : viewModel.createDefaultInstance();
|
|
68
|
+
if (!vmi && instanceName) {
|
|
69
|
+
return {
|
|
70
|
+
instance: null,
|
|
71
|
+
needsDispose: false,
|
|
72
|
+
error: `ViewModel instance '${instanceName}' not found`
|
|
73
|
+
};
|
|
74
|
+
}
|
|
28
75
|
return {
|
|
29
76
|
instance: vmi ?? null,
|
|
30
77
|
needsDispose: true
|
|
@@ -33,8 +80,15 @@ function createInstance(source, name, useNew) {
|
|
|
33
80
|
|
|
34
81
|
// ViewModel source
|
|
35
82
|
let vmi;
|
|
36
|
-
if (
|
|
37
|
-
vmi = source.createInstanceByName(
|
|
83
|
+
if (instanceName) {
|
|
84
|
+
vmi = source.createInstanceByName(instanceName);
|
|
85
|
+
if (!vmi) {
|
|
86
|
+
return {
|
|
87
|
+
instance: null,
|
|
88
|
+
needsDispose: false,
|
|
89
|
+
error: `ViewModel instance '${instanceName}' not found`
|
|
90
|
+
};
|
|
91
|
+
}
|
|
38
92
|
} else if (useNew) {
|
|
39
93
|
vmi = source.createInstance();
|
|
40
94
|
} else {
|
|
@@ -50,7 +104,7 @@ function createInstance(source, name, useNew) {
|
|
|
50
104
|
* Hook for getting a ViewModelInstance from a RiveFile, ViewModel, or RiveViewRef.
|
|
51
105
|
*
|
|
52
106
|
* @param source - The RiveFile, ViewModel, or RiveViewRef to get an instance from
|
|
53
|
-
* @param params - Configuration for which instance to retrieve
|
|
107
|
+
* @param params - Configuration for which instance to retrieve
|
|
54
108
|
* @returns The ViewModelInstance or null if not found
|
|
55
109
|
*
|
|
56
110
|
* @example
|
|
@@ -62,6 +116,27 @@ function createInstance(source, name, useNew) {
|
|
|
62
116
|
*
|
|
63
117
|
* @example
|
|
64
118
|
* ```tsx
|
|
119
|
+
* // From RiveFile with specific instance name
|
|
120
|
+
* const { riveFile } = useRiveFile(require('./animation.riv'));
|
|
121
|
+
* const instance = useViewModelInstance(riveFile, { instanceName: 'PersonInstance' });
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```tsx
|
|
126
|
+
* // From RiveFile with specific ViewModel name
|
|
127
|
+
* const { riveFile } = useRiveFile(require('./animation.riv'));
|
|
128
|
+
* const instance = useViewModelInstance(riveFile, { viewModelName: 'Settings' });
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```tsx
|
|
133
|
+
* // From RiveFile with specific artboard
|
|
134
|
+
* const { riveFile } = useRiveFile(require('./animation.riv'));
|
|
135
|
+
* const instance = useViewModelInstance(riveFile, { artboardName: 'MainArtboard' });
|
|
136
|
+
* ```
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```tsx
|
|
65
140
|
* // From RiveViewRef (get auto-bound instance)
|
|
66
141
|
* const { riveViewRef, setHybridRef } = useRive();
|
|
67
142
|
* const instance = useViewModelInstance(riveViewRef);
|
|
@@ -100,21 +175,31 @@ function createInstance(source, name, useNew) {
|
|
|
100
175
|
* // Values are already set here
|
|
101
176
|
* ```
|
|
102
177
|
*/
|
|
178
|
+
// RiveFile overloads
|
|
179
|
+
|
|
180
|
+
// ViewModel overloads
|
|
181
|
+
|
|
182
|
+
// RiveViewRef overloads
|
|
103
183
|
|
|
184
|
+
// Implementation
|
|
104
185
|
export function useViewModelInstance(source, params) {
|
|
105
|
-
const
|
|
186
|
+
const fileInstanceName = params?.instanceName;
|
|
187
|
+
const viewModelInstanceName = params?.name;
|
|
188
|
+
const instanceName = fileInstanceName ?? viewModelInstanceName;
|
|
189
|
+
const artboardName = params?.artboardName;
|
|
190
|
+
const viewModelName = params?.viewModelName;
|
|
106
191
|
const useNew = params?.useNew ?? false;
|
|
107
192
|
const required = params?.required ?? false;
|
|
108
193
|
const onInit = params?.onInit;
|
|
109
194
|
const prevInstanceRef = useRef(null);
|
|
110
195
|
const result = useMemo(() => {
|
|
111
|
-
const created = createInstance(source,
|
|
196
|
+
const created = createInstance(source, instanceName, artboardName, viewModelName, useNew);
|
|
112
197
|
if (created.instance && onInit) {
|
|
113
198
|
onInit(created.instance);
|
|
114
199
|
}
|
|
115
200
|
return created;
|
|
116
201
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- onInit excluded intentionally
|
|
117
|
-
}, [source,
|
|
202
|
+
}, [source, instanceName, artboardName, viewModelName, useNew]);
|
|
118
203
|
|
|
119
204
|
// Dispose previous instance if it changed and needed disposal
|
|
120
205
|
if (prevInstanceRef.current && prevInstanceRef.current.instance !== result.instance && prevInstanceRef.current.needsDispose && prevInstanceRef.current.instance) {
|
|
@@ -132,7 +217,7 @@ export function useViewModelInstance(source, params) {
|
|
|
132
217
|
};
|
|
133
218
|
}, []);
|
|
134
219
|
if (required && result.instance === null) {
|
|
135
|
-
throw new Error('useViewModelInstance: Failed to get ViewModelInstance. ' + 'Ensure the source has a valid ViewModel and instance available.');
|
|
220
|
+
throw new Error(result.error ? `useViewModelInstance: ${result.error}` : 'useViewModelInstance: Failed to get ViewModelInstance. ' + 'Ensure the source has a valid ViewModel and instance available.');
|
|
136
221
|
}
|
|
137
222
|
return result.instance;
|
|
138
223
|
}
|