@multiplatform.one/core 7.83.0 → 7.83.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/dist/cjs/app/CreateApp.cjs +233 -0
- package/dist/cjs/app/CreateApp.native.js +253 -0
- package/dist/cjs/app/CreateApp.native.js.map +1 -0
- package/dist/cjs/app/CreateRootLayout.cjs +181 -0
- package/dist/cjs/app/CreateRootLayout.native.js +115 -0
- package/dist/cjs/app/CreateRootLayout.native.js.map +1 -0
- package/dist/cjs/app/RuntimePublicConfigScript.cjs +40 -0
- package/dist/cjs/app/RuntimePublicConfigScript.native.js +48 -0
- package/dist/cjs/app/RuntimePublicConfigScript.native.js.map +1 -0
- package/dist/cjs/app/TanstackDevtools.cjs +145 -0
- package/dist/cjs/app/TanstackDevtools.native.js +163 -0
- package/dist/cjs/app/TanstackDevtools.native.js.map +1 -0
- package/dist/cjs/app/TanstackProvider.cjs +81 -0
- package/dist/cjs/app/TanstackProvider.native.js +56 -0
- package/dist/cjs/app/TanstackProvider.native.js.map +1 -0
- package/dist/cjs/app/deepLinkPath.cjs +41 -0
- package/dist/cjs/app/deepLinkPath.native.js +46 -0
- package/dist/cjs/app/deepLinkPath.native.js.map +1 -0
- package/dist/cjs/app/devtoolsTrigger.cjs +281 -0
- package/dist/cjs/app/devtoolsTrigger.native.js +338 -0
- package/dist/cjs/app/devtoolsTrigger.native.js.map +1 -0
- package/dist/cjs/app/frappeSocketPort.cjs +40 -0
- package/dist/cjs/app/frappeSocketPort.native.js +45 -0
- package/dist/cjs/app/frappeSocketPort.native.js.map +1 -0
- package/dist/cjs/app/frappeSyncOptions.cjs +43 -0
- package/dist/cjs/app/frappeSyncOptions.native.js +46 -0
- package/dist/cjs/app/frappeSyncOptions.native.js.map +1 -0
- package/dist/cjs/app/index.cjs +22 -0
- package/dist/cjs/app/index.native.js +25 -0
- package/dist/cjs/app/index.native.js.map +1 -0
- package/dist/cjs/app/loadWalletProvider.cjs +32 -0
- package/dist/cjs/app/loadWalletProvider.native.js +44 -0
- package/dist/cjs/app/loadWalletProvider.native.js.map +1 -0
- package/dist/cjs/app/oneFrappeNavigation.cjs +45 -0
- package/dist/cjs/app/oneFrappeNavigation.native.js +52 -0
- package/dist/cjs/app/oneFrappeNavigation.native.js.map +1 -0
- package/dist/cjs/app/rootLayoutShared.cjs +18 -0
- package/dist/cjs/app/rootLayoutShared.native.js +21 -0
- package/dist/cjs/app/rootLayoutShared.native.js.map +1 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.cjs +50 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.native.js +55 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.native.js.map +1 -0
- package/dist/cjs/app/useNativeDeepLinks.cjs +28 -0
- package/dist/cjs/app/useNativeDeepLinks.native.js +56 -0
- package/dist/cjs/app/useNativeDeepLinks.native.js.map +1 -0
- package/dist/cjs/healthz.cjs +32 -0
- package/dist/cjs/healthz.native.js +35 -0
- package/dist/cjs/healthz.native.js.map +1 -0
- package/dist/cjs/index.cjs +21 -0
- package/dist/cjs/index.native.js +24 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/layouts/CreateDefaultLayout.cjs +99 -0
- package/dist/cjs/layouts/CreateDefaultLayout.native.js +105 -0
- package/dist/cjs/layouts/CreateDefaultLayout.native.js.map +1 -0
- package/dist/cjs/layouts/index.cjs +28 -0
- package/dist/cjs/layouts/index.native.js +31 -0
- package/dist/cjs/layouts/index.native.js.map +1 -0
- package/dist/esm/app/CreateApp.mjs +196 -0
- package/dist/esm/app/CreateApp.mjs.map +1 -0
- package/dist/esm/app/CreateApp.native.js +213 -0
- package/dist/esm/app/CreateApp.native.js.map +1 -0
- package/dist/esm/app/CreateRootLayout.mjs +145 -0
- package/dist/esm/app/CreateRootLayout.mjs.map +1 -0
- package/dist/esm/app/CreateRootLayout.native.js +76 -0
- package/dist/esm/app/CreateRootLayout.native.js.map +1 -0
- package/dist/esm/app/RuntimePublicConfigScript.mjs +15 -0
- package/dist/esm/app/RuntimePublicConfigScript.mjs.map +1 -0
- package/dist/esm/app/RuntimePublicConfigScript.native.js +20 -0
- package/dist/esm/app/RuntimePublicConfigScript.native.js.map +1 -0
- package/dist/esm/app/TanstackDevtools.mjs +109 -0
- package/dist/esm/app/TanstackDevtools.mjs.map +1 -0
- package/dist/esm/app/TanstackDevtools.native.js +124 -0
- package/dist/esm/app/TanstackDevtools.native.js.map +1 -0
- package/dist/esm/app/TanstackProvider.mjs +45 -0
- package/dist/esm/app/TanstackProvider.mjs.map +1 -0
- package/dist/esm/app/TanstackProvider.native.js +28 -0
- package/dist/esm/app/TanstackProvider.native.js.map +1 -0
- package/dist/esm/app/deepLinkPath.mjs +16 -0
- package/dist/esm/app/deepLinkPath.mjs.map +1 -0
- package/dist/esm/app/deepLinkPath.native.js +18 -0
- package/dist/esm/app/deepLinkPath.native.js.map +1 -0
- package/dist/esm/app/devtoolsTrigger.mjs +238 -0
- package/dist/esm/app/devtoolsTrigger.mjs.map +1 -0
- package/dist/esm/app/devtoolsTrigger.native.js +292 -0
- package/dist/esm/app/devtoolsTrigger.native.js.map +1 -0
- package/dist/esm/app/frappeSocketPort.mjs +15 -0
- package/dist/esm/app/frappeSocketPort.mjs.map +1 -0
- package/dist/esm/app/frappeSocketPort.native.js +17 -0
- package/dist/esm/app/frappeSocketPort.native.js.map +1 -0
- package/dist/esm/app/frappeSyncOptions.mjs +18 -0
- package/dist/esm/app/frappeSyncOptions.mjs.map +1 -0
- package/dist/esm/app/frappeSyncOptions.native.js +18 -0
- package/dist/esm/app/frappeSyncOptions.native.js.map +1 -0
- package/dist/esm/app/index.mjs +4 -0
- package/dist/esm/app/index.mjs.map +1 -0
- package/dist/esm/app/index.native.js +4 -0
- package/dist/esm/app/index.native.js.map +1 -0
- package/dist/esm/app/loadWalletProvider.mjs +7 -0
- package/dist/esm/app/loadWalletProvider.mjs.map +1 -0
- package/dist/esm/app/loadWalletProvider.native.js +16 -0
- package/dist/esm/app/loadWalletProvider.native.js.map +1 -0
- package/dist/esm/app/oneFrappeNavigation.mjs +20 -0
- package/dist/esm/app/oneFrappeNavigation.mjs.map +1 -0
- package/dist/esm/app/oneFrappeNavigation.native.js +24 -0
- package/dist/esm/app/oneFrappeNavigation.native.js.map +1 -0
- package/dist/esm/app/rootLayoutShared.mjs +2 -0
- package/dist/esm/app/rootLayoutShared.mjs.map +1 -0
- package/dist/esm/app/rootLayoutShared.native.js +2 -0
- package/dist/esm/app/rootLayoutShared.native.js.map +1 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.mjs +25 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.mjs.map +1 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.native.js +27 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.native.js.map +1 -0
- package/dist/esm/app/useNativeDeepLinks.mjs +3 -0
- package/dist/esm/app/useNativeDeepLinks.mjs.map +1 -0
- package/dist/esm/app/useNativeDeepLinks.native.js +28 -0
- package/dist/esm/app/useNativeDeepLinks.native.js.map +1 -0
- package/dist/esm/healthz.mjs +7 -0
- package/dist/esm/healthz.mjs.map +1 -0
- package/dist/esm/healthz.native.js +7 -0
- package/dist/esm/healthz.native.js.map +1 -0
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +3 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/layouts/CreateDefaultLayout.mjs +74 -0
- package/dist/esm/layouts/CreateDefaultLayout.mjs.map +1 -0
- package/dist/esm/layouts/CreateDefaultLayout.native.js +77 -0
- package/dist/esm/layouts/CreateDefaultLayout.native.js.map +1 -0
- package/dist/esm/layouts/index.mjs +3 -0
- package/dist/esm/layouts/index.mjs.map +1 -0
- package/dist/esm/layouts/index.native.js +3 -0
- package/dist/esm/layouts/index.native.js.map +1 -0
- package/package.json +32 -16
- package/src/app/CreateApp.frappeAuth.spec.tsx +73 -0
- package/src/app/CreateApp.tsx +23 -23
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React, { Suspense, createContext, lazy, useContext, useMemo } from "react";
|
|
3
|
+
import { config, isDev, isWeb } from "@multiplatform.one/platform";
|
|
4
|
+
import { ThemeProvider } from "@multiplatform.one/theme";
|
|
5
|
+
import { FrappeProvider } from "@multiplatform.one/frappe-ui";
|
|
6
|
+
import { frappeSocketPort } from "./frappeSocketPort.native.js";
|
|
7
|
+
import { frappeSyncOptions } from "./frappeSyncOptions.native.js";
|
|
8
|
+
import { oneFrappeNavigation } from "./oneFrappeNavigation.native.js";
|
|
9
|
+
import { createTanstackProvider } from "./TanstackProvider.native.js";
|
|
10
|
+
import LazyWalletProvider from "./loadWalletProvider.native.js";
|
|
11
|
+
var LOOPBACK_HOSTS = /* @__PURE__ */new Set(["localhost", "127.0.0.1", "[::1]"]);
|
|
12
|
+
function currentPageLocation() {
|
|
13
|
+
var _window_location;
|
|
14
|
+
if (typeof window === "undefined" || !((_window_location = window.location) === null || _window_location === void 0 ? void 0 : _window_location.hostname)) return void 0;
|
|
15
|
+
return window.location;
|
|
16
|
+
}
|
|
17
|
+
function followPageOriginForLoopback(configured) {
|
|
18
|
+
var page = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : currentPageLocation(),
|
|
19
|
+
dev = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : isDev;
|
|
20
|
+
if (!(page === null || page === void 0 ? void 0 : page.hostname)) return configured;
|
|
21
|
+
try {
|
|
22
|
+
var url = new URL(configured);
|
|
23
|
+
if (!LOOPBACK_HOSTS.has(url.hostname) || LOOPBACK_HOSTS.has(page.hostname)) return configured;
|
|
24
|
+
url.hostname = page.hostname;
|
|
25
|
+
if (!dev && (page.protocol === "https:" || page.protocol === "http:")) {
|
|
26
|
+
url.protocol = page.protocol;
|
|
27
|
+
url.port = page.port;
|
|
28
|
+
}
|
|
29
|
+
return url.toString().replace(/\/$/, "");
|
|
30
|
+
} catch (unused) {
|
|
31
|
+
return configured;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
var AppConfigContext = /* @__PURE__ */createContext({});
|
|
35
|
+
function createApp(appConfig) {
|
|
36
|
+
var builtinProviders = [];
|
|
37
|
+
if (appConfig.tanstack) {
|
|
38
|
+
var _appConfig_theme;
|
|
39
|
+
var cfg = appConfig.tanstack === true ? {} : {
|
|
40
|
+
...appConfig.tanstack
|
|
41
|
+
};
|
|
42
|
+
if (((_appConfig_theme = appConfig.theme) === null || _appConfig_theme === void 0 ? void 0 : _appConfig_theme.tamagui) && !cfg.tamaguiConfig) {
|
|
43
|
+
cfg.tamaguiConfig = appConfig.theme.tamagui;
|
|
44
|
+
}
|
|
45
|
+
builtinProviders.push(createTanstackProvider(cfg));
|
|
46
|
+
}
|
|
47
|
+
if (appConfig.web3) {
|
|
48
|
+
let Web3Provider2 = function (param) {
|
|
49
|
+
var {
|
|
50
|
+
children
|
|
51
|
+
} = param;
|
|
52
|
+
var _cfg_enabled, _cfg_enableTestnets, _cfg_localnet, _cfg_mockWallet;
|
|
53
|
+
var enabled = (_cfg_enabled = cfg1.enabled) !== null && _cfg_enabled !== void 0 ? _cfg_enabled : config.get("WEB3_ENABLED") === "1";
|
|
54
|
+
if (!enabled) return children;
|
|
55
|
+
if (isWeb) return children;
|
|
56
|
+
var testnetsEnabled = (_cfg_enableTestnets = cfg1.enableTestnets) !== null && _cfg_enableTestnets !== void 0 ? _cfg_enableTestnets : config.get("WEB3_TESTNETS_ENABLED") === "1";
|
|
57
|
+
var WalletWithChildren = LazyWalletProvider;
|
|
58
|
+
return (
|
|
59
|
+
// fallback must NOT be `children`: rendering web3-consuming screens before
|
|
60
|
+
// the lazy WagmiProvider loads throws "useConfig must be used within WagmiProvider".
|
|
61
|
+
/* @__PURE__ */
|
|
62
|
+
_jsx(Suspense, {
|
|
63
|
+
fallback: null,
|
|
64
|
+
children: /* @__PURE__ */_jsx(WalletWithChildren, {
|
|
65
|
+
config: {
|
|
66
|
+
appName: cfg1.appName || "Multiplatform.one",
|
|
67
|
+
appDescription: cfg1.appDescription || "Connect your wallet",
|
|
68
|
+
appUrl: cfg1.appUrl || (isWeb && typeof window !== "undefined" ? window.location.origin : ""),
|
|
69
|
+
appIcon: cfg1.appIcon,
|
|
70
|
+
enableTestnets: testnetsEnabled,
|
|
71
|
+
localnet: (_cfg_localnet = cfg1.localnet) !== null && _cfg_localnet !== void 0 ? _cfg_localnet : config.get("WEB3_LOCALNET_ENABLED") === "1",
|
|
72
|
+
localnetRpcUrl: cfg1.localnetRpcUrl || config.get("WEB3_EVM_RPC") || void 0,
|
|
73
|
+
solanaRpcUrl: cfg1.solanaRpcUrl || config.get("WEB3_SOLANA_RPC") || void 0,
|
|
74
|
+
suiRpcUrl: cfg1.suiRpcUrl || config.get("WEB3_SUI_RPC") || void 0,
|
|
75
|
+
webViewUrl: cfg1.webViewUrl || config.get("WEB3_WEBVIEW_URL") || void 0,
|
|
76
|
+
mockWallet: (_cfg_mockWallet = cfg1.mockWallet) !== null && _cfg_mockWallet !== void 0 ? _cfg_mockWallet : config.get("WEB3_MOCK_WALLET") === "1"
|
|
77
|
+
},
|
|
78
|
+
children
|
|
79
|
+
})
|
|
80
|
+
})
|
|
81
|
+
);
|
|
82
|
+
};
|
|
83
|
+
var Web3Provider = Web3Provider2;
|
|
84
|
+
var cfg1 = appConfig.web3 === true ? {} : appConfig.web3;
|
|
85
|
+
Web3Provider2.displayName = "Web3Provider";
|
|
86
|
+
builtinProviders.push(Web3Provider2);
|
|
87
|
+
}
|
|
88
|
+
if (appConfig.keycloak) {
|
|
89
|
+
let KeycloakProviderWrapper2 = function (param) {
|
|
90
|
+
var {
|
|
91
|
+
children
|
|
92
|
+
} = param;
|
|
93
|
+
var _cfg_enabled, _cfg_debug;
|
|
94
|
+
var enabled = (_cfg_enabled = cfg2.enabled) !== null && _cfg_enabled !== void 0 ? _cfg_enabled : config.get("KEYCLOAK_ENABLED") === "1";
|
|
95
|
+
if (!enabled) return children;
|
|
96
|
+
return /* @__PURE__ */_jsx(Suspense, {
|
|
97
|
+
fallback: children,
|
|
98
|
+
children: /* @__PURE__ */_jsx(LazyKeycloakProvider, {
|
|
99
|
+
disabled: false,
|
|
100
|
+
debug: (_cfg_debug = cfg2.debug) !== null && _cfg_debug !== void 0 ? _cfg_debug : config.get("DEBUG") === "1",
|
|
101
|
+
baseUrl: cfg2.baseUrl || config.get("KEYCLOAK_BASE_URL") || `${config.get("BASE_URL") || ""}/auth`,
|
|
102
|
+
clientId: cfg2.clientId || config.get("KEYCLOAK_CLIENT_ID"),
|
|
103
|
+
publicClientId: cfg2.publicClientId || config.get("KEYCLOAK_PUBLIC_CLIENT_ID"),
|
|
104
|
+
realm: cfg2.realm || config.get("KEYCLOAK_REALM") || "",
|
|
105
|
+
iframeSso: cfg2.iframeSso,
|
|
106
|
+
loginRedirectUri: cfg2.loginRedirectUri,
|
|
107
|
+
messageHandlerKeys: cfg2.messageHandlerKeys || [],
|
|
108
|
+
betterAuthBaseUrl: cfg2.betterAuthBaseUrl || config.get("BETTER_AUTH_BASE_URL") || config.get("BASE_URL") || void 0,
|
|
109
|
+
expoScheme: cfg2.expoScheme,
|
|
110
|
+
loadingComponent: cfg2.loadingComponent,
|
|
111
|
+
children
|
|
112
|
+
})
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
var KeycloakProviderWrapper = KeycloakProviderWrapper2;
|
|
116
|
+
var cfg2 = appConfig.keycloak === true ? {} : appConfig.keycloak;
|
|
117
|
+
var LazyKeycloakProvider = /* @__PURE__ */lazy(async function () {
|
|
118
|
+
var mod = await import("@multiplatform.one/keycloak");
|
|
119
|
+
return {
|
|
120
|
+
default: mod.KeycloakProvider
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
KeycloakProviderWrapper2.displayName = "KeycloakProvider";
|
|
124
|
+
builtinProviders.push(KeycloakProviderWrapper2);
|
|
125
|
+
}
|
|
126
|
+
if (appConfig.frappe) {
|
|
127
|
+
let FrappeProviderWrapper2 = function (param) {
|
|
128
|
+
var {
|
|
129
|
+
children
|
|
130
|
+
} = param;
|
|
131
|
+
var _cfg_enabled, _cfg_socketPort;
|
|
132
|
+
var configuredCatchUp = config.get("FRAPPE_CATCH_UP_STRATEGY");
|
|
133
|
+
var configuredWrite = config.get("FRAPPE_WRITE_STRATEGY");
|
|
134
|
+
var syncOptions = useMemo(function () {
|
|
135
|
+
return frappeSyncOptions(cfg3.syncOptions, configuredCatchUp, configuredWrite);
|
|
136
|
+
}, [configuredCatchUp, configuredWrite]);
|
|
137
|
+
var enabled = (_cfg_enabled = cfg3.enabled) !== null && _cfg_enabled !== void 0 ? _cfg_enabled : !!cfg3.fixtures || config.get("FRAPPE_ENABLED") === "1";
|
|
138
|
+
if (!enabled) return children;
|
|
139
|
+
var configured = cfg3.fixtures ? cfg3.baseURL : cfg3.baseURL || config.get("BASE_URL") || "http://localhost:8000";
|
|
140
|
+
var baseURL = configured ? followPageOriginForLoopback(configured) : void 0;
|
|
141
|
+
var socketPort = (_cfg_socketPort = cfg3.socketPort) !== null && _cfg_socketPort !== void 0 ? _cfg_socketPort : frappeSocketPort(config.get("FRAPPE_SOCKETIO_PORT"), baseURL);
|
|
142
|
+
return /* @__PURE__ */_jsx(FrappeProvider, {
|
|
143
|
+
baseURL,
|
|
144
|
+
realtime: cfg3.realtime,
|
|
145
|
+
socketPort,
|
|
146
|
+
auth,
|
|
147
|
+
syncOptions,
|
|
148
|
+
fixtures: cfg3.fixtures,
|
|
149
|
+
navigation: oneFrappeNavigation,
|
|
150
|
+
children
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
var FrappeProviderWrapper = FrappeProviderWrapper2;
|
|
154
|
+
var _cfg_auth;
|
|
155
|
+
var cfg3 = appConfig.frappe === true ? {} : appConfig.frappe;
|
|
156
|
+
var auth = (_cfg_auth = cfg3.auth) !== null && _cfg_auth !== void 0 ? _cfg_auth : appConfig.keycloak ? {
|
|
157
|
+
useToken: true,
|
|
158
|
+
type: "Bearer",
|
|
159
|
+
token: async function token() {
|
|
160
|
+
var mod = await import("@multiplatform.one/keycloak");
|
|
161
|
+
return (await mod.getKeycloakBearerToken()) || "";
|
|
162
|
+
}
|
|
163
|
+
} : void 0;
|
|
164
|
+
FrappeProviderWrapper2.displayName = "FrappeProvider";
|
|
165
|
+
builtinProviders.push(FrappeProviderWrapper2);
|
|
166
|
+
}
|
|
167
|
+
var allProviders = [...builtinProviders, ...(appConfig.providers || [])];
|
|
168
|
+
function AppProvider(param) {
|
|
169
|
+
var {
|
|
170
|
+
children,
|
|
171
|
+
systemTheme,
|
|
172
|
+
themeConfig
|
|
173
|
+
} = param;
|
|
174
|
+
var theme = themeConfig || appConfig.theme;
|
|
175
|
+
var content = theme ? /* @__PURE__ */_jsx(ThemeProvider, {
|
|
176
|
+
config: theme,
|
|
177
|
+
systemTheme,
|
|
178
|
+
children
|
|
179
|
+
}) : children;
|
|
180
|
+
for (var i = allProviders.length - 1; i >= 0; i--) {
|
|
181
|
+
var Provider = allProviders[i];
|
|
182
|
+
content = /* @__PURE__ */_jsx(Provider, {
|
|
183
|
+
children: content
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
return /* @__PURE__ */_jsx(AppConfigContext.Provider, {
|
|
187
|
+
value: appConfig,
|
|
188
|
+
children: content
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
AppProvider.displayName = "AppProvider";
|
|
192
|
+
function withApp(Screen) {
|
|
193
|
+
function WrappedScreen(props) {
|
|
194
|
+
return /* @__PURE__ */_jsx(AppProvider, {
|
|
195
|
+
children: /* @__PURE__ */_jsx(Screen, {
|
|
196
|
+
...props
|
|
197
|
+
})
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
WrappedScreen.displayName = `withApp(${Screen.displayName || Screen.name || "Component"})`;
|
|
201
|
+
return WrappedScreen;
|
|
202
|
+
}
|
|
203
|
+
function useAppConfig() {
|
|
204
|
+
return useContext(AppConfigContext);
|
|
205
|
+
}
|
|
206
|
+
return {
|
|
207
|
+
AppProvider,
|
|
208
|
+
withApp,
|
|
209
|
+
useAppConfig
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export { createApp, followPageOriginForLoopback };
|
|
213
|
+
//# sourceMappingURL=CreateApp.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","React","Suspense","createContext","lazy","useContext","useMemo","config","isDev","isWeb","ThemeProvider","FrappeProvider","frappeSocketPort","frappeSyncOptions","oneFrappeNavigation","createTanstackProvider","LazyWalletProvider","LOOPBACK_HOSTS","Set","currentPageLocation","_window_location","window","location","hostname","followPageOriginForLoopback","configured","page","arguments","length","dev","url","URL","has","protocol","port","toString","replace","unused","AppConfigContext","createApp","appConfig","builtinProviders","tanstack","_appConfig_theme","cfg","theme","tamagui","tamaguiConfig","push","web3","Web3Provider2","param","children","_cfg_enabled","_cfg_enableTestnets","_cfg_localnet","_cfg_mockWallet","enabled","cfg1","get","testnetsEnabled","enableTestnets","WalletWithChildren","fallback","appName","appDescription","appUrl","origin","appIcon","localnet","localnetRpcUrl","solanaRpcUrl","suiRpcUrl","webViewUrl","mockWallet","Web3Provider","displayName","keycloak","KeycloakProviderWrapper2","_cfg_debug","cfg2","LazyKeycloakProvider","disabled","debug","baseUrl","clientId","publicClientId","realm","iframeSso","loginRedirectUri","messageHandlerKeys","betterAuthBaseUrl","expoScheme","loadingComponent","KeycloakProviderWrapper","mod","default","KeycloakProvider","frappe","FrappeProviderWrapper2","_cfg_socketPort","configuredCatchUp","configuredWrite","syncOptions","cfg3","fixtures","baseURL","socketPort","realtime","auth","navigation","FrappeProviderWrapper","_cfg_auth","useToken","type","token","getKeycloakBearerToken","allProviders","providers","AppProvider","systemTheme","themeConfig","content"],"sources":["../../../src/app/CreateApp.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import i18n from "i18next";
|
|
2
|
+
import { useDidFinishSSR } from "tamagui";
|
|
3
|
+
import { LoadProgressBar, SchemeProvider, Slot, setUserScheme, useMatches, useUserScheme } from "one";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
import { CookiesProvider, Cookies } from "react-cookie";
|
|
6
|
+
import { initReactI18next } from "react-i18next";
|
|
7
|
+
import { config, isDev, platform } from "@multiplatform.one/platform";
|
|
8
|
+
import { createI18nConfig } from "@multiplatform.one/i18n";
|
|
9
|
+
import { logger } from "@multiplatform.one/logger";
|
|
10
|
+
import { storage } from "@multiplatform.one/store";
|
|
11
|
+
import { cookiePreset, scaleAttributeFromCookie, scaleAttributeScript } from "@multiplatform.one/theme/scale-attribute";
|
|
12
|
+
import { RuntimePublicConfigScript } from "./RuntimePublicConfigScript.mjs";
|
|
13
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
function createRootLayout(cfg) {
|
|
15
|
+
if (typeof window !== "undefined") {
|
|
16
|
+
try {
|
|
17
|
+
const storedValue = storage.getItem("vxrn-scheme");
|
|
18
|
+
const stored = typeof storedValue === "string" || storedValue === null ? storedValue : null;
|
|
19
|
+
if (stored === "light" || stored === "dark" || stored === "system") {
|
|
20
|
+
setUserScheme(stored);
|
|
21
|
+
} else {
|
|
22
|
+
setUserScheme("system");
|
|
23
|
+
}
|
|
24
|
+
} catch {}
|
|
25
|
+
}
|
|
26
|
+
i18n.use(initReactI18next).init(createI18nConfig(cfg.i18n)).catch(logger.error);
|
|
27
|
+
i18n.changeLanguage(config.get("I18N_DEFAULT_LANGUAGE", cfg.i18n.defaultLanguage));
|
|
28
|
+
const sentryDsn = cfg.sentry?.dsn || config.get("SENTRY_DSN");
|
|
29
|
+
if (sentryDsn && !platform.isServer) {
|
|
30
|
+
import("@sentry/react").then(Sentry => {
|
|
31
|
+
Sentry.init({
|
|
32
|
+
dsn: sentryDsn,
|
|
33
|
+
enabled: !isDev
|
|
34
|
+
});
|
|
35
|
+
}).catch(() => {});
|
|
36
|
+
}
|
|
37
|
+
const {
|
|
38
|
+
AppProvider,
|
|
39
|
+
RootLayout
|
|
40
|
+
} = cfg;
|
|
41
|
+
function WebRootProvider({
|
|
42
|
+
children
|
|
43
|
+
}) {
|
|
44
|
+
const {
|
|
45
|
+
value: scheme
|
|
46
|
+
} = useUserScheme();
|
|
47
|
+
const hydrated = useDidFinishSSR();
|
|
48
|
+
return /* @__PURE__ */jsx(AppProvider, {
|
|
49
|
+
systemTheme: hydrated ? scheme : "light",
|
|
50
|
+
children
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
WebRootProvider.displayName = "WebRootProvider";
|
|
54
|
+
function Layout() {
|
|
55
|
+
const matches = useMatches();
|
|
56
|
+
const rootLoaderData = matches?.[0]?.loaderData;
|
|
57
|
+
const ssrCookies = platform.isServer && rootLoaderData?.cookieHeader ? new Cookies(rootLoaderData.cookieHeader) : void 0;
|
|
58
|
+
const [clientScale] = useState(() => platform.isServer ? void 0 : scaleAttributeFromCookie(new Cookies().get(cookiePreset)));
|
|
59
|
+
const presetScale = ssrCookies ? scaleAttributeFromCookie(ssrCookies.get(cookiePreset)) : clientScale;
|
|
60
|
+
const htmlLang = rootLoaderData?.detectedLanguage || i18n.language || cfg.i18n.defaultLanguage || "en";
|
|
61
|
+
if (platform.isServer && rootLoaderData?.detectedLanguage && i18n.language !== rootLoaderData.detectedLanguage) {
|
|
62
|
+
i18n.changeLanguage(rootLoaderData.detectedLanguage);
|
|
63
|
+
}
|
|
64
|
+
const interFonts = cfg.head?.interFonts !== false;
|
|
65
|
+
const interFontCss = ['@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:optional;src:url("/fonts/inter-400.woff2") format("woff2")}', '@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:optional;src:url("/fonts/inter-500.woff2") format("woff2")}', '@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:optional;src:url("/fonts/inter-600.woff2") format("woff2")}', '@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:optional;src:url("/fonts/inter-700.woff2") format("woff2")}', '@font-face{font-family:"Inter";font-style:normal;font-weight:800;font-display:optional;src:url("/fonts/inter-800.woff2") format("woff2")}'].join("");
|
|
66
|
+
return /* @__PURE__ */jsxs("html", {
|
|
67
|
+
lang: htmlLang,
|
|
68
|
+
"data-mp-scale": presetScale,
|
|
69
|
+
suppressHydrationWarning: true,
|
|
70
|
+
children: [/* @__PURE__ */jsxs("head", {
|
|
71
|
+
children: [/* @__PURE__ */jsx("meta", {
|
|
72
|
+
charSet: "utf-8"
|
|
73
|
+
}), /* @__PURE__ */jsx("script", {
|
|
74
|
+
dangerouslySetInnerHTML: {
|
|
75
|
+
__html: scaleAttributeScript
|
|
76
|
+
},
|
|
77
|
+
suppressHydrationWarning: true
|
|
78
|
+
}), /* @__PURE__ */jsx(RuntimePublicConfigScript, {}), interFonts && /* @__PURE__ */jsxs(Fragment, {
|
|
79
|
+
children: [/* @__PURE__ */jsx("link", {
|
|
80
|
+
rel: "preload",
|
|
81
|
+
href: "/fonts/inter-400.woff2",
|
|
82
|
+
as: "font",
|
|
83
|
+
type: "font/woff2",
|
|
84
|
+
crossOrigin: ""
|
|
85
|
+
}), /* @__PURE__ */jsx("link", {
|
|
86
|
+
rel: "preload",
|
|
87
|
+
href: "/fonts/inter-600.woff2",
|
|
88
|
+
as: "font",
|
|
89
|
+
type: "font/woff2",
|
|
90
|
+
crossOrigin: ""
|
|
91
|
+
}), /* @__PURE__ */jsx("link", {
|
|
92
|
+
rel: "preload",
|
|
93
|
+
href: "/fonts/inter-700.woff2",
|
|
94
|
+
as: "font",
|
|
95
|
+
type: "font/woff2",
|
|
96
|
+
crossOrigin: ""
|
|
97
|
+
}), /* @__PURE__ */jsx("link", {
|
|
98
|
+
rel: "preload",
|
|
99
|
+
href: "/fonts/inter-800.woff2",
|
|
100
|
+
as: "font",
|
|
101
|
+
type: "font/woff2",
|
|
102
|
+
crossOrigin: ""
|
|
103
|
+
}), /* @__PURE__ */jsx("style", {
|
|
104
|
+
precedence: "reset",
|
|
105
|
+
href: "__font_inter",
|
|
106
|
+
children: interFontCss
|
|
107
|
+
})]
|
|
108
|
+
}), /* @__PURE__ */jsx("style", {
|
|
109
|
+
precedence: "reset",
|
|
110
|
+
href: "__critical_reset",
|
|
111
|
+
children: ["html{max-width:100vw;color-scheme:light dark}", "body{overflow-x:hidden;margin:0;display:flex;flex-direction:column;min-width:100%;min-height:100vh}", "#root,#__next{display:flex;flex-direction:column;min-width:100%;min-height:100vh}", "*{box-sizing:border-box}", "a{color:inherit;text-decoration:none}", "h1,h2,h3,h4,h5,h6{margin:0;padding:0}", "p,input,textarea,button,ul,ol,li,pre,dialog{all:unset;box-sizing:border-box}"].join("")
|
|
112
|
+
}), /* @__PURE__ */jsx("meta", {
|
|
113
|
+
name: "viewport",
|
|
114
|
+
content: "width=device-width, initial-scale=1, maximum-scale=5"
|
|
115
|
+
}), cfg.head && /* @__PURE__ */jsxs(Fragment, {
|
|
116
|
+
children: [/* @__PURE__ */jsx("meta", {
|
|
117
|
+
httpEquiv: "X-UA-Compatible",
|
|
118
|
+
content: "IE=edge"
|
|
119
|
+
}), cfg.head.title && /* @__PURE__ */jsx("title", {
|
|
120
|
+
children: cfg.head.title
|
|
121
|
+
}), cfg.head.favicon && /* @__PURE__ */jsx("link", {
|
|
122
|
+
rel: "icon",
|
|
123
|
+
href: cfg.head.favicon
|
|
124
|
+
})]
|
|
125
|
+
})]
|
|
126
|
+
}), /* @__PURE__ */jsxs("body", {
|
|
127
|
+
children: [/* @__PURE__ */jsx(LoadProgressBar, {}), /* @__PURE__ */jsx(SchemeProvider, {
|
|
128
|
+
children: /* @__PURE__ */jsx(CookiesProvider, {
|
|
129
|
+
cookies: ssrCookies,
|
|
130
|
+
children: /* @__PURE__ */jsx(WebRootProvider, {
|
|
131
|
+
children: /* @__PURE__ */jsx(RootLayout, {
|
|
132
|
+
ssrSession: rootLoaderData?.session,
|
|
133
|
+
children: /* @__PURE__ */jsx(Slot, {})
|
|
134
|
+
})
|
|
135
|
+
})
|
|
136
|
+
})
|
|
137
|
+
})]
|
|
138
|
+
})]
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
Layout.displayName = "RootLayout";
|
|
142
|
+
return Layout;
|
|
143
|
+
}
|
|
144
|
+
export { createRootLayout };
|
|
145
|
+
//# sourceMappingURL=CreateRootLayout.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["i18n","useDidFinishSSR","LoadProgressBar","SchemeProvider","Slot","setUserScheme","useMatches","useUserScheme","useState","CookiesProvider","Cookies","initReactI18next","config","isDev","platform","createI18nConfig","logger","storage","cookiePreset","scaleAttributeFromCookie","scaleAttributeScript","RuntimePublicConfigScript","Fragment","jsx","jsxs","createRootLayout","cfg","window","storedValue","getItem","stored","use","init","catch","error","changeLanguage","get","defaultLanguage","sentryDsn","sentry","dsn","isServer","then","Sentry","enabled","AppProvider","RootLayout","WebRootProvider","children","value","scheme","hydrated","systemTheme","displayName","Layout","matches","rootLoaderData","loaderData","ssrCookies","cookieHeader","clientScale","presetScale","htmlLang","detectedLanguage","language","interFonts","head","interFontCss","join","lang","suppressHydrationWarning","charSet","dangerouslySetInnerHTML","__html","rel","href","as","type","crossOrigin","precedence","name","content","httpEquiv","title","favicon","cookies","ssrSession","session"],"sources":["CreateRootLayout.mjs"],"sourcesContent":["import i18n from \"i18next\";\nimport { useDidFinishSSR } from \"tamagui\";\nimport {\n LoadProgressBar,\n SchemeProvider,\n Slot,\n setUserScheme,\n useMatches,\n useUserScheme\n} from \"one\";\nimport { useState } from \"react\";\nimport { CookiesProvider, Cookies } from \"react-cookie\";\nimport { initReactI18next } from \"react-i18next\";\nimport { config, isDev, platform } from \"@multiplatform.one/platform\";\nimport { createI18nConfig } from \"@multiplatform.one/i18n\";\nimport { logger } from \"@multiplatform.one/logger\";\nimport { storage } from \"@multiplatform.one/store\";\nimport {\n cookiePreset,\n scaleAttributeFromCookie,\n scaleAttributeScript\n} from \"@multiplatform.one/theme/scale-attribute\";\nimport { RuntimePublicConfigScript } from \"./RuntimePublicConfigScript\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nfunction createRootLayout(cfg) {\n if (typeof window !== \"undefined\") {\n try {\n const storedValue = storage.getItem(\"vxrn-scheme\");\n const stored = typeof storedValue === \"string\" || storedValue === null ? storedValue : null;\n if (stored === \"light\" || stored === \"dark\" || stored === \"system\") {\n setUserScheme(stored);\n } else {\n setUserScheme(\"system\");\n }\n } catch {\n }\n }\n i18n.use(initReactI18next).init(createI18nConfig(cfg.i18n)).catch(logger.error);\n i18n.changeLanguage(config.get(\"I18N_DEFAULT_LANGUAGE\", cfg.i18n.defaultLanguage));\n const sentryDsn = cfg.sentry?.dsn || config.get(\"SENTRY_DSN\");\n if (sentryDsn && !platform.isServer) {\n import(\"@sentry/react\").then((Sentry) => {\n Sentry.init({\n dsn: sentryDsn,\n enabled: !isDev\n });\n }).catch(() => {\n });\n }\n const { AppProvider, RootLayout } = cfg;\n function WebRootProvider({ children }) {\n const { value: scheme } = useUserScheme();\n const hydrated = useDidFinishSSR();\n return /* @__PURE__ */ jsx(AppProvider, { systemTheme: hydrated ? scheme : \"light\", children });\n }\n WebRootProvider.displayName = \"WebRootProvider\";\n function Layout() {\n const matches = useMatches();\n const rootLoaderData = matches?.[0]?.loaderData;\n const ssrCookies = platform.isServer && rootLoaderData?.cookieHeader ? new Cookies(rootLoaderData.cookieHeader) : void 0;\n const [clientScale] = useState(\n () => platform.isServer ? void 0 : scaleAttributeFromCookie(new Cookies().get(cookiePreset))\n );\n const presetScale = ssrCookies ? scaleAttributeFromCookie(ssrCookies.get(cookiePreset)) : clientScale;\n const htmlLang = rootLoaderData?.detectedLanguage || i18n.language || cfg.i18n.defaultLanguage || \"en\";\n if (platform.isServer && rootLoaderData?.detectedLanguage && i18n.language !== rootLoaderData.detectedLanguage) {\n i18n.changeLanguage(rootLoaderData.detectedLanguage);\n }\n const interFonts = cfg.head?.interFonts !== false;\n const interFontCss = [\n '@font-face{font-family:\"Inter\";font-style:normal;font-weight:400;font-display:optional;src:url(\"/fonts/inter-400.woff2\") format(\"woff2\")}',\n '@font-face{font-family:\"Inter\";font-style:normal;font-weight:500;font-display:optional;src:url(\"/fonts/inter-500.woff2\") format(\"woff2\")}',\n '@font-face{font-family:\"Inter\";font-style:normal;font-weight:600;font-display:optional;src:url(\"/fonts/inter-600.woff2\") format(\"woff2\")}',\n '@font-face{font-family:\"Inter\";font-style:normal;font-weight:700;font-display:optional;src:url(\"/fonts/inter-700.woff2\") format(\"woff2\")}',\n '@font-face{font-family:\"Inter\";font-style:normal;font-weight:800;font-display:optional;src:url(\"/fonts/inter-800.woff2\") format(\"woff2\")}'\n ].join(\"\");\n return /* @__PURE__ */ jsxs(\"html\", { lang: htmlLang, \"data-mp-scale\": presetScale, suppressHydrationWarning: true, children: [\n /* @__PURE__ */ jsxs(\"head\", { children: [\n /* @__PURE__ */ jsx(\"meta\", { charSet: \"utf-8\" }),\n /* @__PURE__ */ jsx(\n \"script\",\n {\n dangerouslySetInnerHTML: { __html: scaleAttributeScript },\n suppressHydrationWarning: true\n }\n ),\n /* @__PURE__ */ jsx(RuntimePublicConfigScript, {}),\n interFonts && /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"link\",\n {\n rel: \"preload\",\n href: \"/fonts/inter-400.woff2\",\n as: \"font\",\n type: \"font/woff2\",\n crossOrigin: \"\"\n }\n ),\n /* @__PURE__ */ jsx(\n \"link\",\n {\n rel: \"preload\",\n href: \"/fonts/inter-600.woff2\",\n as: \"font\",\n type: \"font/woff2\",\n crossOrigin: \"\"\n }\n ),\n /* @__PURE__ */ jsx(\n \"link\",\n {\n rel: \"preload\",\n href: \"/fonts/inter-700.woff2\",\n as: \"font\",\n type: \"font/woff2\",\n crossOrigin: \"\"\n }\n ),\n /* @__PURE__ */ jsx(\n \"link\",\n {\n rel: \"preload\",\n href: \"/fonts/inter-800.woff2\",\n as: \"font\",\n type: \"font/woff2\",\n crossOrigin: \"\"\n }\n ),\n /* @__PURE__ */ jsx(\"style\", { precedence: \"reset\", href: \"__font_inter\", children: interFontCss })\n ] }),\n /* @__PURE__ */ jsx(\"style\", { precedence: \"reset\", href: \"__critical_reset\", children: [\n \"html{max-width:100vw;color-scheme:light dark}\",\n \"body{overflow-x:hidden;margin:0;display:flex;flex-direction:column;min-width:100%;min-height:100vh}\",\n \"#root,#__next{display:flex;flex-direction:column;min-width:100%;min-height:100vh}\",\n \"*{box-sizing:border-box}\",\n \"a{color:inherit;text-decoration:none}\",\n \"h1,h2,h3,h4,h5,h6{margin:0;padding:0}\",\n \"p,input,textarea,button,ul,ol,li,pre,dialog{all:unset;box-sizing:border-box}\"\n ].join(\"\") }),\n /* @__PURE__ */ jsx(\"meta\", { name: \"viewport\", content: \"width=device-width, initial-scale=1, maximum-scale=5\" }),\n cfg.head && /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\"meta\", { httpEquiv: \"X-UA-Compatible\", content: \"IE=edge\" }),\n cfg.head.title && /* @__PURE__ */ jsx(\"title\", { children: cfg.head.title }),\n cfg.head.favicon && /* @__PURE__ */ jsx(\"link\", { rel: \"icon\", href: cfg.head.favicon })\n ] })\n ] }),\n /* @__PURE__ */ jsxs(\"body\", { children: [\n /* @__PURE__ */ jsx(LoadProgressBar, {}),\n /* @__PURE__ */ jsx(SchemeProvider, { children: /* @__PURE__ */ jsx(CookiesProvider, { cookies: ssrCookies, children: /* @__PURE__ */ jsx(WebRootProvider, { children: /* @__PURE__ */ jsx(RootLayout, { ssrSession: rootLoaderData?.session, children: /* @__PURE__ */ jsx(Slot, {}) }) }) }) })\n ] })\n ] });\n }\n Layout.displayName = \"RootLayout\";\n return Layout;\n}\nexport {\n createRootLayout\n};\n//# sourceMappingURL=CreateRootLayout.web.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useFonts } from "expo-font";
|
|
3
|
+
import i18n from "i18next";
|
|
4
|
+
import { SchemeProvider, Slot, routerStore, useUserScheme } from "one";
|
|
5
|
+
import { StyleSheet } from "react-native";
|
|
6
|
+
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
7
|
+
import { SafeAreaProvider } from "react-native-safe-area-context";
|
|
8
|
+
import { initReactI18next } from "react-i18next";
|
|
9
|
+
import { config } from "@multiplatform.one/platform";
|
|
10
|
+
import { createI18nConfig } from "@multiplatform.one/i18n";
|
|
11
|
+
import { logger } from "@multiplatform.one/logger";
|
|
12
|
+
import { useNativeDeepLinks } from "./useNativeDeepLinks.native.js";
|
|
13
|
+
var styles = StyleSheet.create({
|
|
14
|
+
container: {
|
|
15
|
+
flex: 1
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
function createRootLayout(cfg) {
|
|
19
|
+
var _cfg_fonts;
|
|
20
|
+
i18n.use(initReactI18next).init(createI18nConfig(cfg.i18n)).catch(logger.error);
|
|
21
|
+
i18n.changeLanguage(config.get("I18N_DEFAULT_LANGUAGE", cfg.i18n.defaultLanguage));
|
|
22
|
+
var {
|
|
23
|
+
AppProvider,
|
|
24
|
+
RootLayout
|
|
25
|
+
} = cfg;
|
|
26
|
+
function NativeRootProvider(param) {
|
|
27
|
+
var {
|
|
28
|
+
children
|
|
29
|
+
} = param;
|
|
30
|
+
var {
|
|
31
|
+
value: systemScheme
|
|
32
|
+
} = useUserScheme();
|
|
33
|
+
return /* @__PURE__ */_jsx(AppProvider, {
|
|
34
|
+
systemTheme: systemScheme,
|
|
35
|
+
children
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
NativeRootProvider.displayName = "NativeRootProvider";
|
|
39
|
+
var fontsMap = (_cfg_fonts = cfg.fonts) !== null && _cfg_fonts !== void 0 ? _cfg_fonts : {};
|
|
40
|
+
function DeepLinkBridge() {
|
|
41
|
+
useNativeDeepLinks();
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
DeepLinkBridge.displayName = "DeepLinkBridge";
|
|
45
|
+
function NativeRootLayout(param) {
|
|
46
|
+
var {
|
|
47
|
+
children
|
|
48
|
+
} = param;
|
|
49
|
+
var snap = routerStore.useOneRouter();
|
|
50
|
+
if (!(snap === null || snap === void 0 ? void 0 : snap.routeInfo)) return children;
|
|
51
|
+
return /* @__PURE__ */_jsx(RootLayout, {
|
|
52
|
+
children
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
NativeRootLayout.displayName = "NativeRootLayout";
|
|
56
|
+
function Layout() {
|
|
57
|
+
var [fontsLoaded, fontError] = useFonts(fontsMap);
|
|
58
|
+
if (!fontsLoaded && !fontError) return null;
|
|
59
|
+
return /* @__PURE__ */_jsx(GestureHandlerRootView, {
|
|
60
|
+
style: styles.container,
|
|
61
|
+
children: /* @__PURE__ */_jsx(SafeAreaProvider, {
|
|
62
|
+
children: /* @__PURE__ */_jsx(SchemeProvider, {
|
|
63
|
+
children: /* @__PURE__ */_jsxs(NativeRootProvider, {
|
|
64
|
+
children: [cfg.deepLinks !== false && /* @__PURE__ */_jsx(DeepLinkBridge, {}), /* @__PURE__ */_jsx(NativeRootLayout, {
|
|
65
|
+
children: /* @__PURE__ */_jsx(Slot, {})
|
|
66
|
+
})]
|
|
67
|
+
})
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
Layout.displayName = "RootLayout";
|
|
73
|
+
return Layout;
|
|
74
|
+
}
|
|
75
|
+
export { createRootLayout };
|
|
76
|
+
//# sourceMappingURL=CreateRootLayout.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useFonts","i18n","SchemeProvider","Slot","routerStore","useUserScheme","StyleSheet","GestureHandlerRootView","SafeAreaProvider","initReactI18next","config","createI18nConfig","logger","useNativeDeepLinks","styles","create","container","flex","createRootLayout","cfg","_cfg_fonts","use","init","catch","error","changeLanguage","get","defaultLanguage","AppProvider","RootLayout","NativeRootProvider","param","children","value","systemScheme","systemTheme","displayName","fontsMap","fonts","DeepLinkBridge","NativeRootLayout","snap","useOneRouter","routeInfo","Layout","fontsLoaded","fontError","style","deepLinks"],"sources":["../../../src/app/CreateRootLayout.native.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { platform, runtimePublicConfigKey, serializeRuntimePublicConfig } from "@multiplatform.one/platform";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
function RuntimePublicConfigScript() {
|
|
4
|
+
return /* @__PURE__ */jsx("script", {
|
|
5
|
+
async: true,
|
|
6
|
+
href: runtimePublicConfigKey,
|
|
7
|
+
suppressHydrationWarning: true,
|
|
8
|
+
dangerouslySetInnerHTML: {
|
|
9
|
+
__html: platform.isServer ? serializeRuntimePublicConfig() : ""
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
RuntimePublicConfigScript.displayName = "RuntimePublicConfigScript";
|
|
14
|
+
export { RuntimePublicConfigScript };
|
|
15
|
+
//# sourceMappingURL=RuntimePublicConfigScript.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["platform","runtimePublicConfigKey","serializeRuntimePublicConfig","jsx","RuntimePublicConfigScript","async","href","suppressHydrationWarning","dangerouslySetInnerHTML","__html","isServer","displayName"],"sources":["../../../src/app/RuntimePublicConfigScript.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,QAAA,EACAC,sBAAA,EACAC,4BAAA,QACK;AAkCH,SAAAC,GAAA;AAFG,SAASC,0BAAA,EAA4B;EAC1C,OACE,eAAAD,GAAA,CAAC;IACCE,KAAA,EAAK;IAMLC,IAAA,EAAML,sBAAA;IACNM,wBAAA,EAAwB;IACxBC,uBAAA,EAAyB;MACvBC,MAAA,EAAQT,QAAA,CAASU,QAAA,GAAWR,4BAAA,CAA6B,IAAI;IAC/D;EAAA,CACF;AAEJ;AACAE,yBAAA,CAA0BO,WAAA,GAAc","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { platform, runtimePublicConfigKey, serializeRuntimePublicConfig } from "@multiplatform.one/platform";
|
|
3
|
+
function RuntimePublicConfigScript() {
|
|
4
|
+
return /* @__PURE__ */_jsx("script", {
|
|
5
|
+
async: true,
|
|
6
|
+
// @ts-expect-error `href` is not on React's ScriptHTMLAttributes — React 19
|
|
7
|
+
// keys hoisted scripts by it anyway, and `one`'s ServerContextScript (the
|
|
8
|
+
// sibling payload this deliberately mirrors) carries the identical
|
|
9
|
+
// suppression on the identical line. Copying the transport means copying
|
|
10
|
+
// this, not inventing a differently-keyed script.
|
|
11
|
+
href: runtimePublicConfigKey,
|
|
12
|
+
suppressHydrationWarning: true,
|
|
13
|
+
dangerouslySetInnerHTML: {
|
|
14
|
+
__html: platform.isServer ? serializeRuntimePublicConfig() : ""
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
RuntimePublicConfigScript.displayName = "RuntimePublicConfigScript";
|
|
19
|
+
export { RuntimePublicConfigScript };
|
|
20
|
+
//# sourceMappingURL=RuntimePublicConfigScript.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","platform","runtimePublicConfigKey","serializeRuntimePublicConfig","RuntimePublicConfigScript","async","href","suppressHydrationWarning","dangerouslySetInnerHTML","__html","isServer","displayName"],"sources":["../../../src/app/RuntimePublicConfigScript.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,GAAA,IAAAC,IAAA;AAAA,SACEC,QAAA,EAAAC,sBAAA,EAAAC,4BAAA;AAAA,SACAC,0BAAA;EACA,sBAAAJ,IAAA;IAAAK,KACK;IAkCH;IAFG;IACL;IACG;IAAA;IAAAC,IACC,EAAAJ,sBAAK;IAAAK,wBAMC;IAAAC,uBACN;MACAC,MAAA,EAAAR,QAAA,CAAAS,QAAyB,GAAAP,4BAAA;IAAA;EACsC;AAC/D;AAAAC,yBACF,CAAAO,WAAA;AAEJ,SACAP,yBAA0B","ignoreList":[]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { ReactQueryDevtools } from "@tanstack/react-query-devtools/production";
|
|
2
|
+
import { TanStackDevtools } from "@tanstack/react-devtools";
|
|
3
|
+
import { formDevtoolsPlugin } from "@tanstack/react-form-devtools/production";
|
|
4
|
+
import { createReactPanel, createReactPlugin } from "@tanstack/devtools-utils/react";
|
|
5
|
+
import { PacerDevtoolsCore } from "@tanstack/pacer-devtools/production";
|
|
6
|
+
import { ThemeDevtoolsPanel } from "@multiplatform.one/theme";
|
|
7
|
+
import { storage } from "@multiplatform.one/store";
|
|
8
|
+
import { useEffect, useState } from "react";
|
|
9
|
+
import { devtoolsOpenHotkey, useDevtoolsKeyboardTrigger, useDevtoolsOpenRequests, useShakeToOpen } from "./devtoolsTrigger.mjs";
|
|
10
|
+
import { jsx } from "react/jsx-runtime";
|
|
11
|
+
const devtoolsSettingsKey = "tanstack_devtools_settings";
|
|
12
|
+
const [PacerDevtoolsPanel] = createReactPanel(PacerDevtoolsCore);
|
|
13
|
+
const [pacerDevtoolsPlugin] = createReactPlugin({
|
|
14
|
+
name: "TanStack Pacer",
|
|
15
|
+
Component: PacerDevtoolsPanel
|
|
16
|
+
});
|
|
17
|
+
async function syncDevtoolsTheme(resolvedScheme) {
|
|
18
|
+
try {
|
|
19
|
+
const raw = await Promise.resolve(storage.getItem(devtoolsSettingsKey));
|
|
20
|
+
const settings = raw ? JSON.parse(raw) : {};
|
|
21
|
+
if (settings.theme !== resolvedScheme) {
|
|
22
|
+
settings.theme = resolvedScheme;
|
|
23
|
+
await Promise.resolve(storage.setItem(devtoolsSettingsKey, JSON.stringify(settings)));
|
|
24
|
+
}
|
|
25
|
+
} catch {}
|
|
26
|
+
}
|
|
27
|
+
function useFrappePlugin() {
|
|
28
|
+
const [plugin, setPlugin] = useState(null);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
let cancelled = false;
|
|
31
|
+
async function tryResolve() {
|
|
32
|
+
try {
|
|
33
|
+
const [{
|
|
34
|
+
frappeDevtoolsPlugin
|
|
35
|
+
}, {
|
|
36
|
+
__getActiveSyncModule
|
|
37
|
+
}] = await Promise.all([import("@multiplatform.one/frappe/devtools"), import("@multiplatform.one/frappe")]);
|
|
38
|
+
const sync = __getActiveSyncModule();
|
|
39
|
+
if (sync && !cancelled) {
|
|
40
|
+
setPlugin(frappeDevtoolsPlugin(sync));
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
} catch {}
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
void tryResolve().then(found => {
|
|
47
|
+
if (found || cancelled) return;
|
|
48
|
+
let attempts = 0;
|
|
49
|
+
const interval = setInterval(async () => {
|
|
50
|
+
attempts++;
|
|
51
|
+
const found2 = await tryResolve();
|
|
52
|
+
if (found2 || cancelled || attempts >= 10) clearInterval(interval);
|
|
53
|
+
}, 2e3);
|
|
54
|
+
return () => clearInterval(interval);
|
|
55
|
+
});
|
|
56
|
+
return () => {
|
|
57
|
+
cancelled = true;
|
|
58
|
+
};
|
|
59
|
+
}, []);
|
|
60
|
+
return plugin;
|
|
61
|
+
}
|
|
62
|
+
function TanstackDevtoolsWrapper({
|
|
63
|
+
resolvedScheme,
|
|
64
|
+
tanstackConfig
|
|
65
|
+
}) {
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (typeof window === "undefined") return;
|
|
68
|
+
void syncDevtoolsTheme(resolvedScheme);
|
|
69
|
+
}, [resolvedScheme]);
|
|
70
|
+
const frappePlugin = useFrappePlugin();
|
|
71
|
+
useShakeToOpen(tanstackConfig.shakeToOpen !== false);
|
|
72
|
+
useDevtoolsKeyboardTrigger(true);
|
|
73
|
+
const openRequests = useDevtoolsOpenRequests();
|
|
74
|
+
const plugins = [{
|
|
75
|
+
id: "react-query",
|
|
76
|
+
name: "React Query",
|
|
77
|
+
render: /* @__PURE__ */jsx(ReactQueryDevtools, {
|
|
78
|
+
initialIsOpen: false
|
|
79
|
+
})
|
|
80
|
+
}, formDevtoolsPlugin(), pacerDevtoolsPlugin(), {
|
|
81
|
+
id: "theme",
|
|
82
|
+
name: "Theme",
|
|
83
|
+
// The panel opens focused on Theme, so a shake (or the hotkey) lands
|
|
84
|
+
// straight on the theme flipper — the whole point of the trigger is
|
|
85
|
+
// to check that everything is themable. `defaultOpen` seeds the tab
|
|
86
|
+
// only on first open, when no layout is persisted yet; once the user
|
|
87
|
+
// moves to another tab their choice is restored on later opens.
|
|
88
|
+
defaultOpen: true,
|
|
89
|
+
render: (_el, props) => /* @__PURE__ */jsx(ThemeDevtoolsPanel, {
|
|
90
|
+
useUserScheme: tanstackConfig.useUserScheme,
|
|
91
|
+
devtoolsTheme: props.theme,
|
|
92
|
+
tamaguiConfig: tanstackConfig.tamaguiConfig,
|
|
93
|
+
themeColors: tanstackConfig.themeColors,
|
|
94
|
+
currentThemeColor: tanstackConfig.currentThemeColor,
|
|
95
|
+
onThemeColorChange: tanstackConfig.onThemeColorChange
|
|
96
|
+
})
|
|
97
|
+
}, ...(frappePlugin ? [frappePlugin] : [])];
|
|
98
|
+
return /* @__PURE__ */jsx(TanStackDevtools, {
|
|
99
|
+
config: {
|
|
100
|
+
defaultOpen: false,
|
|
101
|
+
triggerHidden: true,
|
|
102
|
+
openHotkey: [...devtoolsOpenHotkey],
|
|
103
|
+
theme: resolvedScheme
|
|
104
|
+
},
|
|
105
|
+
plugins
|
|
106
|
+
}, `${resolvedScheme}:${openRequests}`);
|
|
107
|
+
}
|
|
108
|
+
export { TanstackDevtoolsWrapper as default };
|
|
109
|
+
//# sourceMappingURL=TanstackDevtools.mjs.map
|