@applicaster/zapp-react-native-utils 14.0.0-rc.14 → 14.0.0-rc.16
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/audioPlayerUtils/index.ts +104 -0
- package/package.json +2 -2
- package/utils/index.ts +1 -0
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { get, has } from "@applicaster/zapp-react-native-utils/utils";
|
|
3
|
+
import { useZStore } from "@applicaster/zapp-react-native-utils/reactHooks";
|
|
4
|
+
import { useRoute } from "@applicaster/zapp-react-native-utils/reactHooks/navigation";
|
|
5
|
+
|
|
1
6
|
import { isNotEmptyString } from "@applicaster/zapp-react-native-utils/stringUtils";
|
|
2
7
|
import { getMediaItems } from "@applicaster/zapp-react-native-utils/configurationUtils";
|
|
3
8
|
|
|
@@ -136,3 +141,102 @@ export const getArtworkImage = ({
|
|
|
136
141
|
// default image
|
|
137
142
|
return DEFAULT_IMAGE;
|
|
138
143
|
};
|
|
144
|
+
|
|
145
|
+
const useAdjustedKeyFromScreenData = ({ config, keys }) => {
|
|
146
|
+
const { screenData } = useRoute();
|
|
147
|
+
|
|
148
|
+
const adjustedConfig = { ...config };
|
|
149
|
+
|
|
150
|
+
keys.forEach((key) => {
|
|
151
|
+
const path = ["targetScreen", "styles", key];
|
|
152
|
+
|
|
153
|
+
if (has(screenData, path)) {
|
|
154
|
+
const value = get(screenData, path);
|
|
155
|
+
|
|
156
|
+
adjustedConfig[key] = value;
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
return adjustedConfig;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
const AUDIO_PLAYER_ARTWORK_IMAGE_KEY = "audio_player_artwork_image_key";
|
|
164
|
+
|
|
165
|
+
const audioPlayerArtworkImageKeySelector = (config) =>
|
|
166
|
+
config?.[AUDIO_PLAYER_ARTWORK_IMAGE_KEY];
|
|
167
|
+
|
|
168
|
+
export const useArtworkImage = (entry: ZappEntry): string => {
|
|
169
|
+
const configuration = useZStore("playerConfiguration");
|
|
170
|
+
|
|
171
|
+
const audio_player_artwork_image_key_value = configuration(
|
|
172
|
+
audioPlayerArtworkImageKeySelector
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
const pluginConfiguration = React.useMemo(
|
|
176
|
+
() => ({
|
|
177
|
+
audio_player_artwork_image_key: audio_player_artwork_image_key_value,
|
|
178
|
+
}),
|
|
179
|
+
[audio_player_artwork_image_key_value]
|
|
180
|
+
);
|
|
181
|
+
|
|
182
|
+
// HACK: for override [key] from screenData, because we treat empty string value as missing key and replace it to initial_value from manifest(which is wrong)
|
|
183
|
+
const adjustedPluginConfiguration = useAdjustedKeyFromScreenData({
|
|
184
|
+
keys: [AUDIO_PLAYER_ARTWORK_IMAGE_KEY],
|
|
185
|
+
config: pluginConfiguration,
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
return React.useMemo(
|
|
189
|
+
() =>
|
|
190
|
+
getArtworkImage({
|
|
191
|
+
key: AUDIO_PLAYER_ARTWORK_IMAGE_KEY,
|
|
192
|
+
entry,
|
|
193
|
+
plugin_configuration: adjustedPluginConfiguration,
|
|
194
|
+
}),
|
|
195
|
+
[]
|
|
196
|
+
);
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
const AUDIO_PLAYER_IMAGE_KEY = "audio_player_image_key";
|
|
200
|
+
const AUDIO_PLAYER_BACKGROUND_IMAGE = "audio_player_background_image";
|
|
201
|
+
|
|
202
|
+
const audioPlayerImageKeySelector = (config) =>
|
|
203
|
+
config?.[AUDIO_PLAYER_IMAGE_KEY];
|
|
204
|
+
|
|
205
|
+
const audioPlayerBackgroundImageSelector = (config) =>
|
|
206
|
+
config?.[AUDIO_PLAYER_BACKGROUND_IMAGE];
|
|
207
|
+
|
|
208
|
+
export const useBackgroundImage = (entry: ZappEntry): { uri: string } => {
|
|
209
|
+
const configuration = useZStore("playerConfiguration");
|
|
210
|
+
|
|
211
|
+
const audio_player_image_key_value = configuration(
|
|
212
|
+
audioPlayerImageKeySelector
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
const audio_player_background_image_value = configuration(
|
|
216
|
+
audioPlayerBackgroundImageSelector
|
|
217
|
+
);
|
|
218
|
+
|
|
219
|
+
const pluginConfiguration = React.useMemo(
|
|
220
|
+
() => ({
|
|
221
|
+
audio_player_image_key: audio_player_image_key_value,
|
|
222
|
+
audio_player_background_image: audio_player_background_image_value,
|
|
223
|
+
}),
|
|
224
|
+
[audio_player_image_key_value, audio_player_background_image_value]
|
|
225
|
+
);
|
|
226
|
+
|
|
227
|
+
// HACK: for override [key] from screenData, because we treat empty string value as missing key and replace it to initial_value from manifest(which is wrong)
|
|
228
|
+
const adjustedPluginConfiguration = useAdjustedKeyFromScreenData({
|
|
229
|
+
keys: [AUDIO_PLAYER_IMAGE_KEY, AUDIO_PLAYER_BACKGROUND_IMAGE],
|
|
230
|
+
config: pluginConfiguration,
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
return React.useMemo(
|
|
234
|
+
() => ({
|
|
235
|
+
uri: getBackgroundImage({
|
|
236
|
+
entry,
|
|
237
|
+
plugin_configuration: adjustedPluginConfiguration,
|
|
238
|
+
}),
|
|
239
|
+
}),
|
|
240
|
+
[entry, adjustedPluginConfiguration]
|
|
241
|
+
);
|
|
242
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applicaster/zapp-react-native-utils",
|
|
3
|
-
"version": "14.0.0-rc.
|
|
3
|
+
"version": "14.0.0-rc.16",
|
|
4
4
|
"description": "Applicaster Zapp React Native utilities package",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"homepage": "https://github.com/applicaster/quickbrick#readme",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@applicaster/applicaster-types": "14.0.0-rc.
|
|
30
|
+
"@applicaster/applicaster-types": "14.0.0-rc.16",
|
|
31
31
|
"buffer": "^5.2.1",
|
|
32
32
|
"camelize": "^1.0.0",
|
|
33
33
|
"dayjs": "^1.11.10",
|