@use-voltra/android 1.3.0 → 1.4.0-rc.0
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/build/cjs/dynamic-colors.js +33 -0
- package/build/cjs/dynamic-colors.js.map +1 -0
- package/build/cjs/index.js +14 -1
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/internal.js +8 -0
- package/build/cjs/internal.js.map +1 -0
- package/build/cjs/jsx/AreaMark.js.map +1 -1
- package/build/cjs/jsx/BarMark.js.map +1 -1
- package/build/cjs/jsx/LineMark.js.map +1 -1
- package/build/cjs/jsx/PointMark.js.map +1 -1
- package/build/cjs/jsx/RuleMark.js.map +1 -1
- package/build/cjs/jsx/SectorMark.js.map +1 -1
- package/build/cjs/live-update/renderer.js +0 -15
- package/build/cjs/live-update/renderer.js.map +1 -1
- package/build/cjs/ongoing-notification/components.js +19 -0
- package/build/cjs/ongoing-notification/components.js.map +1 -0
- package/build/cjs/ongoing-notification/renderer.js +262 -0
- package/build/cjs/ongoing-notification/renderer.js.map +1 -0
- package/build/cjs/ongoing-notification/types.js +3 -0
- package/build/cjs/ongoing-notification/types.js.map +1 -0
- package/build/cjs/payload/component-ids.js +1 -0
- package/build/cjs/payload/component-ids.js.map +1 -1
- package/build/cjs/server.js +6 -3
- package/build/cjs/server.js.map +1 -1
- package/build/cjs/utils/index.js +0 -16
- package/build/cjs/utils/index.js.map +1 -1
- package/build/cjs/widgets/renderer.js +19 -5
- package/build/cjs/widgets/renderer.js.map +1 -1
- package/build/esm/dynamic-colors.js +30 -0
- package/build/esm/dynamic-colors.js.map +1 -0
- package/build/esm/index.js +5 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/internal.js +2 -0
- package/build/esm/internal.js.map +1 -0
- package/build/esm/jsx/AreaMark.js.map +1 -1
- package/build/esm/jsx/BarMark.js.map +1 -1
- package/build/esm/jsx/LineMark.js.map +1 -1
- package/build/esm/jsx/PointMark.js.map +1 -1
- package/build/esm/jsx/RuleMark.js.map +1 -1
- package/build/esm/jsx/SectorMark.js.map +1 -1
- package/build/esm/live-update/renderer.js +0 -15
- package/build/esm/live-update/renderer.js.map +1 -1
- package/build/esm/ongoing-notification/components.js +16 -0
- package/build/esm/ongoing-notification/components.js.map +1 -0
- package/build/esm/ongoing-notification/renderer.js +256 -0
- package/build/esm/ongoing-notification/renderer.js.map +1 -0
- package/build/esm/ongoing-notification/types.js +2 -0
- package/build/esm/ongoing-notification/types.js.map +1 -0
- package/build/esm/payload/component-ids.js +1 -0
- package/build/esm/payload/component-ids.js.map +1 -1
- package/build/esm/server.js +2 -1
- package/build/esm/server.js.map +1 -1
- package/build/esm/utils/index.js +1 -1
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/widgets/renderer.js +17 -4
- package/build/esm/widgets/renderer.js.map +1 -1
- package/build/types/dynamic-colors.d.ts +33 -0
- package/build/types/dynamic-colors.d.ts.map +1 -0
- package/build/types/index.d.ts +10 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/internal.d.ts +3 -0
- package/build/types/internal.d.ts.map +1 -0
- package/build/types/jsx/AreaMark.d.ts +2 -1
- package/build/types/jsx/AreaMark.d.ts.map +1 -1
- package/build/types/jsx/BarMark.d.ts +2 -1
- package/build/types/jsx/BarMark.d.ts.map +1 -1
- package/build/types/jsx/LineMark.d.ts +2 -1
- package/build/types/jsx/LineMark.d.ts.map +1 -1
- package/build/types/jsx/PointMark.d.ts +2 -1
- package/build/types/jsx/PointMark.d.ts.map +1 -1
- package/build/types/jsx/RuleMark.d.ts +2 -1
- package/build/types/jsx/RuleMark.d.ts.map +1 -1
- package/build/types/jsx/SectorMark.d.ts +2 -1
- package/build/types/jsx/SectorMark.d.ts.map +1 -1
- package/build/types/jsx/props/CheckBox.d.ts +3 -2
- package/build/types/jsx/props/CheckBox.d.ts.map +1 -1
- package/build/types/jsx/props/CircleIconButton.d.ts +3 -2
- package/build/types/jsx/props/CircleIconButton.d.ts.map +1 -1
- package/build/types/jsx/props/CircularProgressIndicator.d.ts +2 -1
- package/build/types/jsx/props/CircularProgressIndicator.d.ts.map +1 -1
- package/build/types/jsx/props/FilledButton.d.ts +3 -2
- package/build/types/jsx/props/FilledButton.d.ts.map +1 -1
- package/build/types/jsx/props/Image.d.ts +3 -2
- package/build/types/jsx/props/Image.d.ts.map +1 -1
- package/build/types/jsx/props/LinearProgressIndicator.d.ts +3 -2
- package/build/types/jsx/props/LinearProgressIndicator.d.ts.map +1 -1
- package/build/types/jsx/props/OutlineButton.d.ts +2 -1
- package/build/types/jsx/props/OutlineButton.d.ts.map +1 -1
- package/build/types/jsx/props/RadioButton.d.ts +3 -2
- package/build/types/jsx/props/RadioButton.d.ts.map +1 -1
- package/build/types/jsx/props/Scaffold.d.ts +2 -1
- package/build/types/jsx/props/Scaffold.d.ts.map +1 -1
- package/build/types/jsx/props/SquareIconButton.d.ts +3 -2
- package/build/types/jsx/props/SquareIconButton.d.ts.map +1 -1
- package/build/types/jsx/props/Switch.d.ts +5 -4
- package/build/types/jsx/props/Switch.d.ts.map +1 -1
- package/build/types/jsx/props/TitleBar.d.ts +3 -2
- package/build/types/jsx/props/TitleBar.d.ts.map +1 -1
- package/build/types/live-update/renderer.d.ts +0 -7
- package/build/types/live-update/renderer.d.ts.map +1 -1
- package/build/types/live-update/types.d.ts +0 -65
- package/build/types/live-update/types.d.ts.map +1 -1
- package/build/types/ongoing-notification/components.d.ts +18 -0
- package/build/types/ongoing-notification/components.d.ts.map +1 -0
- package/build/types/ongoing-notification/renderer.d.ts +6 -0
- package/build/types/ongoing-notification/renderer.d.ts.map +1 -0
- package/build/types/ongoing-notification/types.d.ts +160 -0
- package/build/types/ongoing-notification/types.d.ts.map +1 -0
- package/build/types/payload/component-ids.d.ts.map +1 -1
- package/build/types/server.d.ts +4 -1
- package/build/types/server.d.ts.map +1 -1
- package/build/types/styles/types.d.ts +5 -4
- package/build/types/styles/types.d.ts.map +1 -1
- package/build/types/types.d.ts +22 -1
- package/build/types/types.d.ts.map +1 -1
- package/build/types/utils/index.d.ts +0 -1
- package/build/types/utils/index.d.ts.map +1 -1
- package/build/types/widgets/renderer.d.ts +8 -2
- package/build/types/widgets/renderer.d.ts.map +1 -1
- package/package.json +9 -11
- package/build/cjs/VoltraModule.js +0 -6
- package/build/cjs/VoltraModule.js.map +0 -1
- package/build/cjs/client.js +0 -34
- package/build/cjs/client.js.map +0 -1
- package/build/cjs/components/VoltraView.js +0 -48
- package/build/cjs/components/VoltraView.js.map +0 -1
- package/build/cjs/components/VoltraWidgetPreview.js +0 -28
- package/build/cjs/components/VoltraWidgetPreview.js.map +0 -1
- package/build/cjs/events.js +0 -35
- package/build/cjs/events.js.map +0 -1
- package/build/cjs/live-update/api.js +0 -215
- package/build/cjs/live-update/api.js.map +0 -1
- package/build/cjs/preload.js +0 -80
- package/build/cjs/preload.js.map +0 -1
- package/build/cjs/utils/useUpdateOnHMR.js +0 -27
- package/build/cjs/utils/useUpdateOnHMR.js.map +0 -1
- package/build/cjs/widgets/api.js +0 -155
- package/build/cjs/widgets/api.js.map +0 -1
- package/build/cjs/widgets/index.js +0 -12
- package/build/cjs/widgets/index.js.map +0 -1
- package/build/cjs/widgets/server-credentials.js +0 -31
- package/build/cjs/widgets/server-credentials.js.map +0 -1
- package/build/esm/VoltraModule.js +0 -4
- package/build/esm/VoltraModule.js.map +0 -1
- package/build/esm/client.js +0 -12
- package/build/esm/client.js.map +0 -1
- package/build/esm/components/VoltraView.js +0 -45
- package/build/esm/components/VoltraView.js.map +0 -1
- package/build/esm/components/VoltraWidgetPreview.js +0 -25
- package/build/esm/components/VoltraWidgetPreview.js.map +0 -1
- package/build/esm/events.js +0 -29
- package/build/esm/events.js.map +0 -1
- package/build/esm/live-update/api.js +0 -203
- package/build/esm/live-update/api.js.map +0 -1
- package/build/esm/preload.js +0 -72
- package/build/esm/preload.js.map +0 -1
- package/build/esm/utils/useUpdateOnHMR.js +0 -23
- package/build/esm/utils/useUpdateOnHMR.js.map +0 -1
- package/build/esm/widgets/api.js +0 -143
- package/build/esm/widgets/api.js.map +0 -1
- package/build/esm/widgets/index.js +0 -3
- package/build/esm/widgets/index.js.map +0 -1
- package/build/esm/widgets/server-credentials.js +0 -24
- package/build/esm/widgets/server-credentials.js.map +0 -1
- package/build/types/VoltraModule.d.ts +0 -30
- package/build/types/VoltraModule.d.ts.map +0 -1
- package/build/types/client.d.ts +0 -9
- package/build/types/client.d.ts.map +0 -1
- package/build/types/components/VoltraView.d.ts +0 -29
- package/build/types/components/VoltraView.d.ts.map +0 -1
- package/build/types/components/VoltraWidgetPreview.d.ts +0 -21
- package/build/types/components/VoltraWidgetPreview.d.ts.map +0 -1
- package/build/types/events.d.ts +0 -49
- package/build/types/events.d.ts.map +0 -1
- package/build/types/live-update/api.d.ts +0 -126
- package/build/types/live-update/api.d.ts.map +0 -1
- package/build/types/preload.d.ts +0 -45
- package/build/types/preload.d.ts.map +0 -1
- package/build/types/utils/useUpdateOnHMR.d.ts +0 -9
- package/build/types/utils/useUpdateOnHMR.d.ts.map +0 -1
- package/build/types/widgets/api.d.ts +0 -131
- package/build/types/widgets/api.d.ts.map +0 -1
- package/build/types/widgets/index.d.ts +0 -3
- package/build/types/widgets/index.d.ts.map +0 -1
- package/build/types/widgets/server-credentials.d.ts +0 -18
- package/build/types/widgets/server-credentials.d.ts.map +0 -1
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isAndroidLiveUpdateActive = exports.stopAndroidLiveUpdate = exports.updateAndroidLiveUpdate = exports.startAndroidLiveUpdate = exports.useAndroidLiveUpdate = void 0;
|
|
7
|
-
exports.endAllAndroidLiveUpdates = endAllAndroidLiveUpdates;
|
|
8
|
-
const react_1 = require("react");
|
|
9
|
-
const index_js_1 = require("../utils/index.js");
|
|
10
|
-
const VoltraModule_js_1 = __importDefault(require("../VoltraModule.js"));
|
|
11
|
-
const renderer_js_1 = require("./renderer.js");
|
|
12
|
-
/**
|
|
13
|
-
* @unstable This API is experimental and may change in future versions.
|
|
14
|
-
*
|
|
15
|
-
* React hook for managing Android Live Updates with automatic lifecycle handling.
|
|
16
|
-
*
|
|
17
|
-
* @param variants - The Android Live Update content variants to display
|
|
18
|
-
* @param options - Configuration options for the hook
|
|
19
|
-
* @returns Object with start, update, end methods and isActive state
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```tsx
|
|
23
|
-
* import { VoltraAndroid, useAndroidLiveUpdate } from 'voltra'
|
|
24
|
-
*
|
|
25
|
-
* const MyLiveUpdate = () => {
|
|
26
|
-
* const { start, update, end, isActive } = useAndroidLiveUpdate({
|
|
27
|
-
* collapsed: <VoltraAndroid.Text>Delivery arriving</VoltraAndroid.Text>,
|
|
28
|
-
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
29
|
-
* channelId: 'delivery_updates',
|
|
30
|
-
* }, {
|
|
31
|
-
* updateName: 'my-live-update',
|
|
32
|
-
* autoStart: true,
|
|
33
|
-
* autoUpdate: true
|
|
34
|
-
* })
|
|
35
|
-
*
|
|
36
|
-
* return (
|
|
37
|
-
* <View>
|
|
38
|
-
* <Button title={isActive ? "Stop" : "Start"} onPress={isActive ? end : start} />
|
|
39
|
-
* </View>
|
|
40
|
-
* )
|
|
41
|
-
* }
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
const useAndroidLiveUpdate = (variants, options) => {
|
|
45
|
-
const [targetId, setTargetId] = (0, react_1.useState)(() => {
|
|
46
|
-
if (options?.updateName) {
|
|
47
|
-
return (0, exports.isAndroidLiveUpdateActive)(options.updateName) ? options.updateName : null;
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
});
|
|
51
|
-
const isActive = targetId !== null;
|
|
52
|
-
const optionsRef = (0, react_1.useRef)(options);
|
|
53
|
-
const variantsRef = (0, react_1.useRef)(variants);
|
|
54
|
-
const lastUpdateOptionsRef = (0, react_1.useRef)(undefined);
|
|
55
|
-
// Update refs when values change
|
|
56
|
-
(0, react_1.useEffect)(() => {
|
|
57
|
-
optionsRef.current = options;
|
|
58
|
-
}, [options]);
|
|
59
|
-
(0, react_1.useEffect)(() => {
|
|
60
|
-
variantsRef.current = variants;
|
|
61
|
-
}, [variants]);
|
|
62
|
-
(0, index_js_1.useUpdateOnHMR)();
|
|
63
|
-
const start = (0, react_1.useCallback)(async (options) => {
|
|
64
|
-
const id = await (0, exports.startAndroidLiveUpdate)(variantsRef.current, {
|
|
65
|
-
...optionsRef.current,
|
|
66
|
-
...options,
|
|
67
|
-
});
|
|
68
|
-
setTargetId(id);
|
|
69
|
-
}, []);
|
|
70
|
-
const update = (0, react_1.useCallback)(async (options) => {
|
|
71
|
-
if (!targetId) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
const updateOptions = { ...optionsRef.current, ...options };
|
|
75
|
-
lastUpdateOptionsRef.current = updateOptions;
|
|
76
|
-
await (0, exports.updateAndroidLiveUpdate)(targetId, variantsRef.current, updateOptions);
|
|
77
|
-
}, [targetId]);
|
|
78
|
-
const end = (0, react_1.useCallback)(async () => {
|
|
79
|
-
if (!targetId) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
await (0, exports.stopAndroidLiveUpdate)(targetId);
|
|
83
|
-
setTargetId(null);
|
|
84
|
-
}, [targetId]);
|
|
85
|
-
(0, react_1.useEffect)(() => {
|
|
86
|
-
if (!options?.autoStart) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
start();
|
|
90
|
-
}, [options?.autoStart, start]);
|
|
91
|
-
(0, react_1.useEffect)(() => {
|
|
92
|
-
if (!options?.autoUpdate)
|
|
93
|
-
return;
|
|
94
|
-
update(lastUpdateOptionsRef.current);
|
|
95
|
-
}, [options?.autoUpdate, update, variants]);
|
|
96
|
-
return {
|
|
97
|
-
start,
|
|
98
|
-
update,
|
|
99
|
-
end,
|
|
100
|
-
isActive,
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
exports.useAndroidLiveUpdate = useAndroidLiveUpdate;
|
|
104
|
-
/**
|
|
105
|
-
* @unstable This API is experimental and may change in future versions.
|
|
106
|
-
*
|
|
107
|
-
* Start a new Android Live Update with the provided content variants.
|
|
108
|
-
*
|
|
109
|
-
* @param variants - The Android Live Update content variants to display
|
|
110
|
-
* @param options - Configuration options for the Live Update
|
|
111
|
-
* @returns Promise resolving to the notification ID
|
|
112
|
-
*
|
|
113
|
-
* @example
|
|
114
|
-
* ```tsx
|
|
115
|
-
* import { VoltraAndroid, startAndroidLiveUpdate } from 'voltra'
|
|
116
|
-
*
|
|
117
|
-
* const notificationId = await startAndroidLiveUpdate({
|
|
118
|
-
* collapsed: <VoltraAndroid.Text>Delivery arriving</VoltraAndroid.Text>,
|
|
119
|
-
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
120
|
-
* channelId: 'delivery_updates',
|
|
121
|
-
* }, {
|
|
122
|
-
* updateName: 'my-live-update',
|
|
123
|
-
* })
|
|
124
|
-
* ```
|
|
125
|
-
*/
|
|
126
|
-
const startAndroidLiveUpdate = async (variants, options) => {
|
|
127
|
-
const payload = (0, renderer_js_1.renderAndroidLiveUpdateToString)(variants);
|
|
128
|
-
const notificationId = await VoltraModule_js_1.default.startAndroidLiveUpdate(payload, {
|
|
129
|
-
updateName: options?.updateName,
|
|
130
|
-
channelId: options?.channelId || variants.channelId || 'voltra_live_updates',
|
|
131
|
-
});
|
|
132
|
-
return notificationId;
|
|
133
|
-
};
|
|
134
|
-
exports.startAndroidLiveUpdate = startAndroidLiveUpdate;
|
|
135
|
-
/**
|
|
136
|
-
* @unstable This API is experimental and may change in future versions.
|
|
137
|
-
*
|
|
138
|
-
* Update an existing Android Live Update with new content.
|
|
139
|
-
*
|
|
140
|
-
* @param notificationId - The ID of the notification to update
|
|
141
|
-
* @param variants - The new Android Live Update content variants
|
|
142
|
-
* @param options - Update options
|
|
143
|
-
*
|
|
144
|
-
* @example
|
|
145
|
-
* ```tsx
|
|
146
|
-
* import { VoltraAndroid, updateAndroidLiveUpdate } from 'voltra'
|
|
147
|
-
*
|
|
148
|
-
* await updateAndroidLiveUpdate('notification-123', {
|
|
149
|
-
* collapsed: <VoltraAndroid.Text>Updated: Delivery arriving</VoltraAndroid.Text>,
|
|
150
|
-
* expanded: <VoltraAndroid.Column>...</VoltraAndroid.Column>,
|
|
151
|
-
* })
|
|
152
|
-
* ```
|
|
153
|
-
*/
|
|
154
|
-
const updateAndroidLiveUpdate = async (notificationId, variants, options) => {
|
|
155
|
-
const payload = (0, renderer_js_1.renderAndroidLiveUpdateToString)(variants);
|
|
156
|
-
return VoltraModule_js_1.default.updateAndroidLiveUpdate(notificationId, payload);
|
|
157
|
-
};
|
|
158
|
-
exports.updateAndroidLiveUpdate = updateAndroidLiveUpdate;
|
|
159
|
-
/**
|
|
160
|
-
* @unstable This API is experimental and may change in future versions.
|
|
161
|
-
*
|
|
162
|
-
* Stop an Android Live Update and dismiss the notification.
|
|
163
|
-
*
|
|
164
|
-
* @param notificationId - The ID of the notification to stop
|
|
165
|
-
*
|
|
166
|
-
* @example
|
|
167
|
-
* ```tsx
|
|
168
|
-
* import { stopAndroidLiveUpdate } from 'voltra'
|
|
169
|
-
*
|
|
170
|
-
* await stopAndroidLiveUpdate('notification-123')
|
|
171
|
-
* ```
|
|
172
|
-
*/
|
|
173
|
-
const stopAndroidLiveUpdate = async (notificationId) => {
|
|
174
|
-
return VoltraModule_js_1.default.stopAndroidLiveUpdate(notificationId);
|
|
175
|
-
};
|
|
176
|
-
exports.stopAndroidLiveUpdate = stopAndroidLiveUpdate;
|
|
177
|
-
/**
|
|
178
|
-
* @unstable This API is experimental and may change in future versions.
|
|
179
|
-
*
|
|
180
|
-
* Check if an Android Live Update with the given name is currently active.
|
|
181
|
-
*
|
|
182
|
-
* @param updateName - The name of the Live Update to check
|
|
183
|
-
* @returns true if the update is active, false otherwise
|
|
184
|
-
*
|
|
185
|
-
* @example
|
|
186
|
-
* ```tsx
|
|
187
|
-
* import { isAndroidLiveUpdateActive } from 'voltra'
|
|
188
|
-
*
|
|
189
|
-
* if (isAndroidLiveUpdateActive('my-live-update')) {
|
|
190
|
-
* console.log('Update is running')
|
|
191
|
-
* }
|
|
192
|
-
* ```
|
|
193
|
-
*/
|
|
194
|
-
const isAndroidLiveUpdateActive = (updateName) => {
|
|
195
|
-
return VoltraModule_js_1.default.isAndroidLiveUpdateActive(updateName);
|
|
196
|
-
};
|
|
197
|
-
exports.isAndroidLiveUpdateActive = isAndroidLiveUpdateActive;
|
|
198
|
-
/**
|
|
199
|
-
* @unstable This API is experimental and may change in future versions.
|
|
200
|
-
*
|
|
201
|
-
* End all active Android Live Updates.
|
|
202
|
-
*
|
|
203
|
-
* This function stops and dismisses all currently running Live Updates in the app.
|
|
204
|
-
*
|
|
205
|
-
* @example
|
|
206
|
-
* ```tsx
|
|
207
|
-
* import { endAllAndroidLiveUpdates } from 'voltra'
|
|
208
|
-
*
|
|
209
|
-
* await endAllAndroidLiveUpdates()
|
|
210
|
-
* ```
|
|
211
|
-
*/
|
|
212
|
-
async function endAllAndroidLiveUpdates() {
|
|
213
|
-
return VoltraModule_js_1.default.endAllAndroidLiveUpdates();
|
|
214
|
-
}
|
|
215
|
-
//# sourceMappingURL=api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/live-update/api.ts"],"names":[],"mappings":"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"}
|
package/build/cjs/preload.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.preloadImages = preloadImages;
|
|
7
|
-
exports.clearPreloadedImages = clearPreloadedImages;
|
|
8
|
-
exports.reloadWidgets = reloadWidgets;
|
|
9
|
-
const VoltraModule_js_1 = __importDefault(require("./VoltraModule.js"));
|
|
10
|
-
/**
|
|
11
|
-
* Preload images to Android cache for use in Widgets.
|
|
12
|
-
*
|
|
13
|
-
* Downloaded images are stored in the app's cache directory and exposed via FileProvider.
|
|
14
|
-
* Images can then be referenced using the `assetName` property in the Image component.
|
|
15
|
-
*
|
|
16
|
-
* @param images - Array of images to preload
|
|
17
|
-
* @returns Result indicating which images succeeded or failed
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* const result = await preloadImages([
|
|
22
|
-
* {
|
|
23
|
-
* url: 'https://example.com/album-art.jpg',
|
|
24
|
-
* key: 'current-album',
|
|
25
|
-
* headers: { 'Authorization': 'Bearer token' }
|
|
26
|
-
* }
|
|
27
|
-
* ])
|
|
28
|
-
*
|
|
29
|
-
* // Use in Android Widget
|
|
30
|
-
* <VoltraAndroid.Image source={{ assetName: 'current-album' }} />
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
async function preloadImages(images) {
|
|
34
|
-
try {
|
|
35
|
-
return await VoltraModule_js_1.default.preloadImages(images);
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
return {
|
|
39
|
-
succeeded: [],
|
|
40
|
-
failed: images.map((img) => ({
|
|
41
|
-
key: img.key,
|
|
42
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
43
|
-
})),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Clear preloaded images from Android cache.
|
|
49
|
-
*
|
|
50
|
-
* @param keys - Optional array of image keys to clear. If omitted, clears all preloaded images.
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```typescript
|
|
54
|
-
* // Clear specific images
|
|
55
|
-
* await clearPreloadedImages(['album-art', 'profile-pic'])
|
|
56
|
-
*
|
|
57
|
-
* // Clear all preloaded images
|
|
58
|
-
* await clearPreloadedImages()
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
async function clearPreloadedImages(keys) {
|
|
62
|
-
try {
|
|
63
|
-
await VoltraModule_js_1.default.clearPreloadedImages(keys ?? null);
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
console.error('Failed to clear preloaded images:', error);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Reload Android Widgets. (Alias for reloadAndroidWidgets)
|
|
71
|
-
*/
|
|
72
|
-
async function reloadWidgets(widgetIds) {
|
|
73
|
-
try {
|
|
74
|
-
await VoltraModule_js_1.default.reloadAndroidWidgets(widgetIds ?? null);
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
console.error('Failed to reload Android widgets:', error);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=preload.js.map
|
package/build/cjs/preload.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/preload.ts"],"names":[],"mappings":";;;;;AA0BA,sCAYC;AAgBD,oDAMC;AAKD,sCAMC;AAtED,wEAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACI,KAAK,UAAU,aAAa,CAAC,MAA6B;IAC/D,IAAI,CAAC;QACH,OAAO,MAAM,yBAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,oBAAoB,CAAC,IAAe;IACxD,IAAI,CAAC;QACH,MAAM,yBAAY,CAAC,oBAAoB,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,SAAoB;IACtD,IAAI,CAAC;QACH,MAAM,yBAAY,CAAC,oBAAoB,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useUpdateOnHMR = void 0;
|
|
4
|
-
const react_1 = require("react");
|
|
5
|
-
/**
|
|
6
|
-
* Taps into the HMR accept function to forcefully re-render the component when any module is updated.
|
|
7
|
-
* Is only available in development mode.
|
|
8
|
-
*/
|
|
9
|
-
const useUpdateOnHMR = () => {
|
|
10
|
-
const [, forceUpdate] = (0, react_1.useState)(0);
|
|
11
|
-
(0, react_1.useEffect)(() => {
|
|
12
|
-
if (!__DEV__) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
// Override the accept function to forcefully re-render when any module is updated
|
|
16
|
-
const oldAccept = global['__accept'];
|
|
17
|
-
global['__accept'] = (...args) => {
|
|
18
|
-
forceUpdate((prev) => prev + 1);
|
|
19
|
-
oldAccept?.(...args);
|
|
20
|
-
};
|
|
21
|
-
return () => {
|
|
22
|
-
global['__accept'] = oldAccept;
|
|
23
|
-
};
|
|
24
|
-
}, []);
|
|
25
|
-
};
|
|
26
|
-
exports.useUpdateOnHMR = useUpdateOnHMR;
|
|
27
|
-
//# sourceMappingURL=useUpdateOnHMR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateOnHMR.js","sourceRoot":"","sources":["../../../src/utils/useUpdateOnHMR.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAO3C;;;GAGG;AACI,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAA;IAEnC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QAED,kFAAkF;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;YAC/B,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YAC/B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;QACtB,CAAC,CAAA;QAED,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;QAChC,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA;AAnBY,QAAA,cAAc,kBAmB1B"}
|
package/build/cjs/widgets/api.js
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getActiveWidgets = exports.requestPinAndroidWidget = exports.clearAllAndroidWidgets = exports.clearAndroidWidget = exports.reloadAndroidWidgets = exports.updateAndroidWidget = void 0;
|
|
7
|
-
const VoltraModule_js_1 = __importDefault(require("../VoltraModule.js"));
|
|
8
|
-
const renderer_js_1 = require("./renderer.js");
|
|
9
|
-
/**
|
|
10
|
-
* Update an Android home screen widget with new content.
|
|
11
|
-
*
|
|
12
|
-
* The content will be stored in SharedPreferences and the widget
|
|
13
|
-
* will be updated to display the new content.
|
|
14
|
-
*
|
|
15
|
-
* @param widgetId - The widget identifier
|
|
16
|
-
* @param variants - An array of size variants with their breakpoints and content.
|
|
17
|
-
* Android will automatically select the best matching variant based on the
|
|
18
|
-
* actual widget dimensions.
|
|
19
|
-
* @param options - Optional settings like deep link URL
|
|
20
|
-
*
|
|
21
|
-
* @example Different content per size
|
|
22
|
-
* ```tsx
|
|
23
|
-
* import { VoltraAndroid, updateAndroidWidget } from 'voltra'
|
|
24
|
-
*
|
|
25
|
-
* await updateAndroidWidget('weather', [
|
|
26
|
-
* {
|
|
27
|
-
* size: { width: 150, height: 100 },
|
|
28
|
-
* content: <VoltraAndroid.Text fontSize={32}>72°F</VoltraAndroid.Text>
|
|
29
|
-
* },
|
|
30
|
-
* {
|
|
31
|
-
* size: { width: 250, height: 150 },
|
|
32
|
-
* content: (
|
|
33
|
-
* <VoltraAndroid.Row>
|
|
34
|
-
* <VoltraAndroid.Text fontSize={32}>72°F</VoltraAndroid.Text>
|
|
35
|
-
* <VoltraAndroid.Column>
|
|
36
|
-
* <VoltraAndroid.Text>Sunny</VoltraAndroid.Text>
|
|
37
|
-
* <VoltraAndroid.Text>High: 78° Low: 65°</VoltraAndroid.Text>
|
|
38
|
-
* </VoltraAndroid.Column>
|
|
39
|
-
* </VoltraAndroid.Row>
|
|
40
|
-
* )
|
|
41
|
-
* }
|
|
42
|
-
* ], { deepLinkUrl: '/weather' })
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
45
|
-
const updateAndroidWidget = async (widgetId, variants, options) => {
|
|
46
|
-
const payload = (0, renderer_js_1.renderAndroidWidgetToString)(variants);
|
|
47
|
-
return VoltraModule_js_1.default.updateAndroidWidget(widgetId, payload, {
|
|
48
|
-
deepLinkUrl: options?.deepLinkUrl,
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
exports.updateAndroidWidget = updateAndroidWidget;
|
|
52
|
-
/**
|
|
53
|
-
* Reload widget timelines to refresh their content.
|
|
54
|
-
*
|
|
55
|
-
* Use this after updating data that widgets depend on (e.g., after preloading
|
|
56
|
-
* new images) to force them to re-render.
|
|
57
|
-
*
|
|
58
|
-
* @param widgetIds - Optional array of widget IDs to reload. If omitted, reloads all widgets.
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```typescript
|
|
62
|
-
* // Reload specific widgets
|
|
63
|
-
* await reloadAndroidWidgets(['weather', 'calendar'])
|
|
64
|
-
*
|
|
65
|
-
* // Reload all widgets
|
|
66
|
-
* await reloadAndroidWidgets()
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
const reloadAndroidWidgets = async (widgetIds) => {
|
|
70
|
-
return VoltraModule_js_1.default.reloadAndroidWidgets(widgetIds ?? null);
|
|
71
|
-
};
|
|
72
|
-
exports.reloadAndroidWidgets = reloadAndroidWidgets;
|
|
73
|
-
/**
|
|
74
|
-
* Clear a widget's stored data.
|
|
75
|
-
*
|
|
76
|
-
* This removes the JSON content and deep link URL for the specified widget,
|
|
77
|
-
* causing it to show its placeholder state.
|
|
78
|
-
*
|
|
79
|
-
* @param widgetId - The widget identifier to clear
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```typescript
|
|
83
|
-
* await clearAndroidWidget('weather')
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
const clearAndroidWidget = async (widgetId) => {
|
|
87
|
-
return VoltraModule_js_1.default.clearAndroidWidget(widgetId);
|
|
88
|
-
};
|
|
89
|
-
exports.clearAndroidWidget = clearAndroidWidget;
|
|
90
|
-
/**
|
|
91
|
-
* Clear all widgets' stored data.
|
|
92
|
-
*
|
|
93
|
-
* This removes the JSON content and deep link URLs for all configured widgets,
|
|
94
|
-
* causing them to show their placeholder states.
|
|
95
|
-
*
|
|
96
|
-
* @example
|
|
97
|
-
* ```typescript
|
|
98
|
-
* await clearAllAndroidWidgets()
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
const clearAllAndroidWidgets = async () => {
|
|
102
|
-
return VoltraModule_js_1.default.clearAllAndroidWidgets();
|
|
103
|
-
};
|
|
104
|
-
exports.clearAllAndroidWidgets = clearAllAndroidWidgets;
|
|
105
|
-
/**
|
|
106
|
-
* Request to pin a widget to the home screen.
|
|
107
|
-
*
|
|
108
|
-
* This will show the Android system pin widget dialog, allowing the user
|
|
109
|
-
* to add the widget to their home screen. Optionally, you can provide
|
|
110
|
-
* preview dimensions to show a preview of the widget in the pin dialog.
|
|
111
|
-
*
|
|
112
|
-
* See: https://developer.android.com/develop/ui/compose/glance/pin-in-app
|
|
113
|
-
*
|
|
114
|
-
* @param widgetId - The widget identifier to pin
|
|
115
|
-
* @param options - Optional settings for the pin request
|
|
116
|
-
* @param options.previewWidth - Optional preview width in dp (default: 245)
|
|
117
|
-
* @param options.previewHeight - Optional preview height in dp (default: 115)
|
|
118
|
-
* @returns Promise that resolves to true if the pin request was successful
|
|
119
|
-
*
|
|
120
|
-
* @example Basic usage
|
|
121
|
-
* ```typescript
|
|
122
|
-
* const success = await requestPinAndroidWidget('weather')
|
|
123
|
-
* if (success) {
|
|
124
|
-
* console.log('Widget pin request sent')
|
|
125
|
-
* }
|
|
126
|
-
* ```
|
|
127
|
-
*
|
|
128
|
-
* @example With preview dimensions
|
|
129
|
-
* ```typescript
|
|
130
|
-
* const success = await requestPinAndroidWidget('weather', {
|
|
131
|
-
* previewWidth: 245,
|
|
132
|
-
* previewHeight: 115
|
|
133
|
-
* })
|
|
134
|
-
* ```
|
|
135
|
-
*/
|
|
136
|
-
const requestPinAndroidWidget = async (widgetId, options) => {
|
|
137
|
-
return VoltraModule_js_1.default.requestPinGlanceAppWidget(widgetId, options);
|
|
138
|
-
};
|
|
139
|
-
exports.requestPinAndroidWidget = requestPinAndroidWidget;
|
|
140
|
-
/**
|
|
141
|
-
* Fetches all active widget instances for the containing app on Android.
|
|
142
|
-
*
|
|
143
|
-
* @returns A promise that resolves to an array of active widget instances.
|
|
144
|
-
*
|
|
145
|
-
* @example
|
|
146
|
-
* ```typescript
|
|
147
|
-
* const widgets = await getActiveWidgets()
|
|
148
|
-
* console.log('Active widgets:', widgets)
|
|
149
|
-
* ```
|
|
150
|
-
*/
|
|
151
|
-
const getActiveWidgets = async () => {
|
|
152
|
-
return VoltraModule_js_1.default.getActiveWidgets();
|
|
153
|
-
};
|
|
154
|
-
exports.getActiveWidgets = getActiveWidgets;
|
|
155
|
-
//# sourceMappingURL=api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/widgets/api.ts"],"names":[],"mappings":";;;;;;AAAA,yEAA6C;AAC7C,+CAA2D;AAY3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,QAAgB,EAChB,QAA+B,EAC/B,OAAoC,EACrB,EAAE;IACjB,MAAM,OAAO,GAAG,IAAA,yCAA2B,EAAC,QAAQ,CAAC,CAAA;IAErD,OAAO,yBAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE;QACzD,WAAW,EAAE,OAAO,EAAE,WAAW;KAClC,CAAC,CAAA;AACJ,CAAC,CAAA;AAVY,QAAA,mBAAmB,uBAU/B;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAoB,EAAiB,EAAE;IAChF,OAAO,yBAAY,CAAC,oBAAoB,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;AAC7D,CAAC,CAAA;AAFY,QAAA,oBAAoB,wBAEhC;AAED;;;;;;;;;;;;GAYG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAC1E,OAAO,yBAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC,CAAA;AAFY,QAAA,kBAAkB,sBAE9B;AAED;;;;;;;;;;GAUG;AACI,MAAM,sBAAsB,GAAG,KAAK,IAAmB,EAAE;IAC9D,OAAO,yBAAY,CAAC,sBAAsB,EAAE,CAAA;AAC9C,CAAC,CAAA;AAFY,QAAA,sBAAsB,0BAElC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAC1C,QAAgB,EAChB,OAA2D,EACzC,EAAE;IACpB,OAAO,yBAAY,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC,CAAA;AALY,QAAA,uBAAuB,2BAKnC;AAED;;;;;;;;;;GAUG;AACI,MAAM,gBAAgB,GAAG,KAAK,IAA2B,EAAE;IAChE,OAAO,yBAAY,CAAC,gBAAgB,EAAE,CAAA;AACxC,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateAndroidWidget = exports.requestPinAndroidWidget = exports.reloadAndroidWidgets = exports.getActiveWidgets = exports.clearAndroidWidget = exports.clearAllAndroidWidgets = void 0;
|
|
4
|
-
// Android Widget API
|
|
5
|
-
var api_js_1 = require("./api.js");
|
|
6
|
-
Object.defineProperty(exports, "clearAllAndroidWidgets", { enumerable: true, get: function () { return api_js_1.clearAllAndroidWidgets; } });
|
|
7
|
-
Object.defineProperty(exports, "clearAndroidWidget", { enumerable: true, get: function () { return api_js_1.clearAndroidWidget; } });
|
|
8
|
-
Object.defineProperty(exports, "getActiveWidgets", { enumerable: true, get: function () { return api_js_1.getActiveWidgets; } });
|
|
9
|
-
Object.defineProperty(exports, "reloadAndroidWidgets", { enumerable: true, get: function () { return api_js_1.reloadAndroidWidgets; } });
|
|
10
|
-
Object.defineProperty(exports, "requestPinAndroidWidget", { enumerable: true, get: function () { return api_js_1.requestPinAndroidWidget; } });
|
|
11
|
-
Object.defineProperty(exports, "updateAndroidWidget", { enumerable: true, get: function () { return api_js_1.updateAndroidWidget; } });
|
|
12
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/index.ts"],"names":[],"mappings":";;;AAAA,qBAAqB;AACrB,mCAOiB;AANf,gHAAA,sBAAsB,OAAA;AACtB,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAChB,8GAAA,oBAAoB,OAAA;AACpB,iHAAA,uBAAuB,OAAA;AACvB,6GAAA,mBAAmB,OAAA"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.setWidgetServerCredentials = setWidgetServerCredentials;
|
|
7
|
-
exports.clearWidgetServerCredentials = clearWidgetServerCredentials;
|
|
8
|
-
const VoltraModule_js_1 = __importDefault(require("../VoltraModule.js"));
|
|
9
|
-
/**
|
|
10
|
-
* Store server credentials for Android widget server-driven updates.
|
|
11
|
-
*
|
|
12
|
-
* Credentials are stored in DataStore, which is
|
|
13
|
-
* automatically accessible by the widget's WorkManager background worker.
|
|
14
|
-
*
|
|
15
|
-
* @param credentials - The server credentials to store
|
|
16
|
-
*/
|
|
17
|
-
async function setWidgetServerCredentials(credentials) {
|
|
18
|
-
if (!credentials.token) {
|
|
19
|
-
throw new Error('[Voltra] [Android] setWidgetServerCredentials: token is required');
|
|
20
|
-
}
|
|
21
|
-
return VoltraModule_js_1.default.setWidgetServerCredentials(credentials);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Clear stored server credentials for Android widget updates.
|
|
25
|
-
* All widgets are automatically reloaded after clearing credentials so they
|
|
26
|
-
* revert to their default/unauthenticated state.
|
|
27
|
-
*/
|
|
28
|
-
async function clearWidgetServerCredentials() {
|
|
29
|
-
return VoltraModule_js_1.default.clearWidgetServerCredentials();
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=server-credentials.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-credentials.js","sourceRoot":"","sources":["../../../src/widgets/server-credentials.ts"],"names":[],"mappings":";;;;;AAcA,gEAKC;AAOD,oEAEC;AA3BD,yEAA6C;AAK7C;;;;;;;GAOG;AACI,KAAK,UAAU,0BAA0B,CAAC,WAAoC;IACnF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,yBAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAA;AAC7D,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,4BAA4B;IAChD,OAAO,yBAAY,CAAC,4BAA4B,EAAE,CAAA;AACpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraModule.js","sourceRoot":"","sources":["../../src/VoltraModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AA0B1C,MAAM,YAAY,GAAG,mBAAmB,CAA0B,cAAc,CAAC,CAAA;AAEjF,eAAe,YAAY,CAAA"}
|
package/build/esm/client.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// Android Live Update API and types
|
|
2
|
-
export { endAllAndroidLiveUpdates, isAndroidLiveUpdateActive, startAndroidLiveUpdate, stopAndroidLiveUpdate, updateAndroidLiveUpdate, useAndroidLiveUpdate, } from './live-update/api.js';
|
|
3
|
-
// Android Widget API and types
|
|
4
|
-
export { clearAllAndroidWidgets, clearAndroidWidget, getActiveWidgets, reloadAndroidWidgets, requestPinAndroidWidget, updateAndroidWidget, } from './widgets/api.js';
|
|
5
|
-
// Android Widget Server Credentials API
|
|
6
|
-
export { clearWidgetServerCredentials, setWidgetServerCredentials, } from './widgets/server-credentials.js';
|
|
7
|
-
// Preload API
|
|
8
|
-
export { clearPreloadedImages, preloadImages, reloadWidgets } from './preload.js';
|
|
9
|
-
// Android Preview Components
|
|
10
|
-
export { VoltraView } from './components/VoltraView.js';
|
|
11
|
-
export { VoltraWidgetPreview, } from './components/VoltraWidgetPreview.js';
|
|
12
|
-
//# sourceMappingURL=client.js.map
|
package/build/esm/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAW7B,+BAA+B;AAC/B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AASzB,wCAAwC;AACxC,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAE3B,MAAM,iCAAiC,CAAA;AAExC,cAAc;AACd,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjF,6BAA6B;AAC7B,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAEL,mBAAmB,GAEpB,MAAM,qCAAqC,CAAA"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { requireNativeView } from 'expo';
|
|
3
|
-
import { useEffect, useMemo } from 'react';
|
|
4
|
-
import { addVoltraListener } from '../events.js';
|
|
5
|
-
import { androidComponentRegistry, createVoltraRenderer } from '../renderer/renderer.js';
|
|
6
|
-
const NativeVoltraView = requireNativeView('VoltraModule');
|
|
7
|
-
// Generate a unique ID for views that don't have one
|
|
8
|
-
const generateViewId = () => `voltra-view-android-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
9
|
-
/**
|
|
10
|
-
* A React Native component that renders Voltra UI for Android using Jetpack Compose.
|
|
11
|
-
*/
|
|
12
|
-
export function VoltraView({ id, children, style, onInteraction }) {
|
|
13
|
-
// Generate a stable ID if not provided
|
|
14
|
-
const viewId = useMemo(() => id || generateViewId(), [id]);
|
|
15
|
-
const payload = useMemo(() => {
|
|
16
|
-
const renderer = createVoltraRenderer(androidComponentRegistry);
|
|
17
|
-
renderer.addRootNode('content', children);
|
|
18
|
-
const rendered = renderer.render();
|
|
19
|
-
// Move 'content' into 'variants' to match VoltraPayload structure
|
|
20
|
-
const node = rendered.content;
|
|
21
|
-
delete rendered.content;
|
|
22
|
-
rendered.variants = { content: node };
|
|
23
|
-
return JSON.stringify(rendered);
|
|
24
|
-
}, [children]);
|
|
25
|
-
// Subscribe to interaction events and filter by this view's ID
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
if (!onInteraction)
|
|
28
|
-
return;
|
|
29
|
-
const subscription = addVoltraListener('interaction', (event) => {
|
|
30
|
-
// Only forward events from this view
|
|
31
|
-
if (event.source === viewId) {
|
|
32
|
-
onInteraction({
|
|
33
|
-
type: 'interaction',
|
|
34
|
-
source: event.source,
|
|
35
|
-
timestamp: event.timestamp,
|
|
36
|
-
identifier: event.identifier,
|
|
37
|
-
payload: event.payload,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
return () => subscription.remove();
|
|
42
|
-
}, [viewId, onInteraction]);
|
|
43
|
-
return _jsx(NativeVoltraView, { payload: payload, viewId: viewId, style: style });
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=VoltraView.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraView.js","sourceRoot":"","sources":["../../../src/components/VoltraView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AACxC,OAAc,EAAa,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAG5D,OAAO,EAAE,iBAAiB,EAA0B,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAExF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAE1D,qDAAqD;AACrD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,uBAAuB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AAwB9G;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAmB;IAChF,uCAAuC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAE1D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAA;QAC/D,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAA;QAElC,kEAAkE;QAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC7B,OAAO,QAAQ,CAAC,OAAO,CAAA;QACvB,QAAQ,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAErC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAM;QAE1B,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9D,qCAAqC;YACrC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5B,aAAa,CAAC;oBACZ,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IACpC,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IAE3B,OAAO,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAI,CAAA;AAC7E,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { VoltraView } from './VoltraView.js';
|
|
3
|
-
const WIDGET_DIMENSIONS = {
|
|
4
|
-
small: { width: 150, height: 100 },
|
|
5
|
-
mediumSquare: { width: 200, height: 200 },
|
|
6
|
-
mediumWide: { width: 250, height: 150 },
|
|
7
|
-
mediumTall: { width: 150, height: 250 },
|
|
8
|
-
large: { width: 300, height: 200 },
|
|
9
|
-
extraLarge: { width: 350, height: 300 },
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* A preview component that renders Voltra Android JSX content at specific dimensions.
|
|
13
|
-
*/
|
|
14
|
-
export function VoltraWidgetPreview({ family, style, children, ...voltraViewProps }) {
|
|
15
|
-
const dimensions = WIDGET_DIMENSIONS[family];
|
|
16
|
-
const previewStyle = [
|
|
17
|
-
{
|
|
18
|
-
width: dimensions.width,
|
|
19
|
-
height: dimensions.height,
|
|
20
|
-
},
|
|
21
|
-
style,
|
|
22
|
-
];
|
|
23
|
-
return (_jsx(VoltraView, { ...voltraViewProps, style: previewStyle, children: children }));
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=VoltraWidgetPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VoltraWidgetPreview.js","sourceRoot":"","sources":["../../../src/components/VoltraWidgetPreview.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAO7D,MAAM,iBAAiB,GAAmE;IACxF,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAClC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACzC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACvC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACvC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAClC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CACxC,CAAA;AAaD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,eAAe,EAA4B;IAC3G,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAyB;QACzC;YACE,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B;QACD,KAAK;KACN,CAAA;IAED,OAAO,CACL,KAAC,UAAU,OAAK,eAAe,EAAE,KAAK,EAAE,YAAY,YACjD,QAAQ,GACE,CACd,CAAA;AACH,CAAC"}
|