@applicaster/quick-brick-core 12.0.0-alpha.6602834797 → 12.0.0-alpha.7539319320
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/App/AssetCache/index.ts +10 -4
- package/App/ThemeManager/index.tsx +21 -18
- package/package.json +8 -8
package/App/AssetCache/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="../../" />
|
|
2
2
|
import * as R from "ramda";
|
|
3
|
-
import { log_debug, log_warning } from "./logger";
|
|
3
|
+
import { log_debug, log_verbose, log_warning } from "./logger";
|
|
4
4
|
import { CacheManager } from "./CacheManager";
|
|
5
5
|
|
|
6
6
|
import {
|
|
@@ -84,6 +84,8 @@ export async function cacheAssets({
|
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
const time = performance.now();
|
|
88
|
+
|
|
87
89
|
try {
|
|
88
90
|
const { assetFiles, cellAssets, pluginAssets, layoutAssets } =
|
|
89
91
|
await getLayoutAssets({
|
|
@@ -141,18 +143,20 @@ export async function cacheAssets({
|
|
|
141
143
|
|
|
142
144
|
newCacheState.forEach(({ file, url }) => (urlFileMap[url] = file));
|
|
143
145
|
|
|
144
|
-
const updatedLayout = remapAssetPath(layoutAssets, layout, urlFileMap);
|
|
146
|
+
const updatedLayout = remapAssetPath(layoutAssets, layout, urlFileMap, "layoutAssets");
|
|
145
147
|
|
|
146
148
|
const updatedPluginConfigurations = remapAssetPath(
|
|
147
149
|
pluginAssets,
|
|
148
150
|
pluginConfigurations,
|
|
149
|
-
urlFileMap
|
|
151
|
+
urlFileMap,
|
|
152
|
+
"pluginAssets"
|
|
150
153
|
);
|
|
151
154
|
|
|
152
155
|
const updatedCellStyles = remapAssetPath(
|
|
153
156
|
cellAssets,
|
|
154
157
|
cellStyles,
|
|
155
|
-
urlFileMap
|
|
158
|
+
urlFileMap,
|
|
159
|
+
"cellStyles"
|
|
156
160
|
);
|
|
157
161
|
|
|
158
162
|
return {
|
|
@@ -164,5 +168,7 @@ export async function cacheAssets({
|
|
|
164
168
|
log_warning(`cacheAssets: Error caching assets, message: ${error.message}`);
|
|
165
169
|
|
|
166
170
|
return { layout, pluginConfigurations, cellStyles };
|
|
171
|
+
} finally {
|
|
172
|
+
log_verbose(`cacheAssets: caching assets took ${performance.now() - time} ms`);
|
|
167
173
|
}
|
|
168
174
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as R from "ramda";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
|
|
4
|
+
import { isEqual } from "@applicaster/zapp-react-native-utils/equalUtils";
|
|
4
5
|
import { ThemeContext } from "@applicaster/zapp-react-native-utils/theme";
|
|
5
|
-
import {
|
|
6
|
+
import { useIsTablet } from "@applicaster/zapp-react-native-utils/reactHooks";
|
|
6
7
|
import {
|
|
7
8
|
mapKeys,
|
|
8
9
|
partitionByKeys,
|
|
@@ -35,7 +36,7 @@ function populateTheme(plugin) {
|
|
|
35
36
|
|
|
36
37
|
const TABLET_PREFIX = "tablet_";
|
|
37
38
|
|
|
38
|
-
const prepareForTablet = (
|
|
39
|
+
const prepareForTablet = (isTablet) => (themeProps) => {
|
|
39
40
|
const [tabletThemeProps, mobileTheme] = partitionByKeys(
|
|
40
41
|
R.compose(R.startsWith(TABLET_PREFIX), R.head),
|
|
41
42
|
themeProps
|
|
@@ -62,12 +63,12 @@ const prepareForTablet = (dimensions) => (themeProps) => {
|
|
|
62
63
|
R.omit(["tablet_theme"])
|
|
63
64
|
)(tabletThemeProps);
|
|
64
65
|
|
|
65
|
-
return
|
|
66
|
+
return isTablet ? tabletTheme : mobileTheme;
|
|
66
67
|
};
|
|
67
68
|
|
|
68
|
-
const selectThemes = (
|
|
69
|
+
const selectThemes = (isTablet, plugins) =>
|
|
69
70
|
R.compose(
|
|
70
|
-
R.map(prepareForTablet(
|
|
71
|
+
R.map(prepareForTablet(isTablet)),
|
|
71
72
|
R.fromPairs,
|
|
72
73
|
R.reject(R.isNil),
|
|
73
74
|
R.map(populateTheme),
|
|
@@ -80,36 +81,38 @@ const ThemeContextProvider = ({
|
|
|
80
81
|
setSelectedThemeId,
|
|
81
82
|
children,
|
|
82
83
|
}: any) => {
|
|
83
|
-
const value =
|
|
84
|
-
() => ({ themes, selectedThemeId, setSelectedThemeId }),
|
|
85
|
-
[themes, selectedThemeId, setSelectedThemeId]
|
|
86
|
-
);
|
|
84
|
+
const value = { themes, selectedThemeId, setSelectedThemeId };
|
|
87
85
|
|
|
88
86
|
return (
|
|
89
87
|
<ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>
|
|
90
88
|
);
|
|
91
89
|
};
|
|
92
90
|
|
|
91
|
+
const MemoizedThemeContextProvider = React.memo(
|
|
92
|
+
ThemeContextProvider,
|
|
93
|
+
isEqual({
|
|
94
|
+
byValue: ["selectedThemeId", "setSelectedThemeId"],
|
|
95
|
+
byReference: ["children", "themes"],
|
|
96
|
+
})
|
|
97
|
+
);
|
|
98
|
+
|
|
93
99
|
function ThemeManagerComponent({ children, plugins }: Props) {
|
|
94
|
-
const
|
|
95
|
-
|
|
100
|
+
const isTablet = useIsTablet();
|
|
101
|
+
|
|
102
|
+
const themes = selectThemes(isTablet, plugins);
|
|
96
103
|
|
|
97
104
|
const [selectedThemeId, setSelectedThemeId] =
|
|
98
105
|
React.useState(DEFAULT_THEME_ID);
|
|
99
106
|
|
|
100
|
-
React.useEffect(() => {
|
|
101
|
-
setThemes(selectThemes(dimensions, plugins));
|
|
102
|
-
}, [plugins, dimensions]);
|
|
103
|
-
|
|
104
107
|
return (
|
|
105
|
-
<
|
|
108
|
+
<MemoizedThemeContextProvider
|
|
106
109
|
themes={themes}
|
|
107
110
|
selectedThemeId={selectedThemeId}
|
|
108
111
|
setSelectedThemeId={setSelectedThemeId}
|
|
109
112
|
>
|
|
110
113
|
{children}
|
|
111
|
-
</
|
|
114
|
+
</MemoizedThemeContextProvider>
|
|
112
115
|
);
|
|
113
116
|
}
|
|
114
117
|
|
|
115
|
-
export const ThemeManager =
|
|
118
|
+
export const ThemeManager = ThemeManagerComponent;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applicaster/quick-brick-core",
|
|
3
|
-
"version": "12.0.0-alpha.
|
|
3
|
+
"version": "12.0.0-alpha.7539319320",
|
|
4
4
|
"description": "Core package for Applicaster's Quick Brick App",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
},
|
|
31
31
|
"homepage": "https://github.com/applicaster/quickbrick#readme",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@applicaster/applicaster-types": "12.0.0-alpha.
|
|
34
|
-
"@applicaster/quick-brick-core-plugins": "12.0.0-alpha.
|
|
35
|
-
"@applicaster/zapp-pipes-v2-client": "12.0.0-alpha.
|
|
36
|
-
"@applicaster/zapp-react-native-bridge": "12.0.0-alpha.
|
|
37
|
-
"@applicaster/zapp-react-native-redux": "12.0.0-alpha.
|
|
38
|
-
"@applicaster/zapp-react-native-ui-components": "12.0.0-alpha.
|
|
39
|
-
"@applicaster/zapp-react-native-utils": "12.0.0-alpha.
|
|
33
|
+
"@applicaster/applicaster-types": "12.0.0-alpha.7539319320",
|
|
34
|
+
"@applicaster/quick-brick-core-plugins": "12.0.0-alpha.7539319320",
|
|
35
|
+
"@applicaster/zapp-pipes-v2-client": "12.0.0-alpha.7539319320",
|
|
36
|
+
"@applicaster/zapp-react-native-bridge": "12.0.0-alpha.7539319320",
|
|
37
|
+
"@applicaster/zapp-react-native-redux": "12.0.0-alpha.7539319320",
|
|
38
|
+
"@applicaster/zapp-react-native-ui-components": "12.0.0-alpha.7539319320",
|
|
39
|
+
"@applicaster/zapp-react-native-utils": "12.0.0-alpha.7539319320",
|
|
40
40
|
"atob": "^2.1.2",
|
|
41
41
|
"axios": "^0.21.2",
|
|
42
42
|
"btoa": "^1.2.1",
|