@apps-in-toss/framework 2.7.1 → 2.9.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/dist/index.cjs +562 -367
- package/dist/index.d.cts +17 -15
- package/dist/index.d.ts +17 -15
- package/dist/index.js +440 -245
- package/package.json +7 -7
package/dist/index.cjs
CHANGED
|
@@ -35,7 +35,7 @@ __export(src_exports, {
|
|
|
35
35
|
AppsInToss: () => AppsInToss,
|
|
36
36
|
INTERNAL__onVisibilityChangedByTransparentServiceWeb: () => INTERNAL__onVisibilityChangedByTransparentServiceWeb,
|
|
37
37
|
InlineAd: () => InlineAd,
|
|
38
|
-
OverlayProvider: () =>
|
|
38
|
+
OverlayProvider: () => import_private5.OverlayProvider,
|
|
39
39
|
StartUpdateLocationPermissionError: () => import_types.StartUpdateLocationPermissionError,
|
|
40
40
|
WebView: () => WebView,
|
|
41
41
|
env: () => env,
|
|
@@ -45,7 +45,7 @@ __export(src_exports, {
|
|
|
45
45
|
showFullScreenAd: () => showFullScreenAd,
|
|
46
46
|
useCreateUserAgent: () => useCreateUserAgent,
|
|
47
47
|
useGeolocation: () => useGeolocation,
|
|
48
|
-
useOverlay: () =>
|
|
48
|
+
useOverlay: () => import_private5.useOverlay,
|
|
49
49
|
useTopNavigation: () => useTopNavigation,
|
|
50
50
|
useWaitForReturnNavigator: () => useWaitForReturnNavigator
|
|
51
51
|
});
|
|
@@ -55,9 +55,9 @@ var import_analytics2 = require("@apps-in-toss/analytics");
|
|
|
55
55
|
// src/core/registerApp.tsx
|
|
56
56
|
var import_analytics = require("@apps-in-toss/analytics");
|
|
57
57
|
var import_native_modules10 = require("@apps-in-toss/native-modules");
|
|
58
|
-
var
|
|
59
|
-
var
|
|
60
|
-
var
|
|
58
|
+
var import_react_native27 = require("@granite-js/react-native");
|
|
59
|
+
var import_tds_react_native11 = require("@toss/tds-react-native");
|
|
60
|
+
var import_react_native28 = require("react-native");
|
|
61
61
|
|
|
62
62
|
// src/core/components/AppEvent.tsx
|
|
63
63
|
var import_react_native2 = require("@granite-js/react-native");
|
|
@@ -185,8 +185,8 @@ function useNavigationBarContext() {
|
|
|
185
185
|
|
|
186
186
|
// src/components/RNAppContainer.tsx
|
|
187
187
|
var import_native_modules9 = require("@apps-in-toss/native-modules");
|
|
188
|
-
var
|
|
189
|
-
var
|
|
188
|
+
var import_react16 = require("react");
|
|
189
|
+
var import_react_native26 = require("react-native");
|
|
190
190
|
|
|
191
191
|
// src/components/GameInitializer.tsx
|
|
192
192
|
var import_native_modules4 = require("@apps-in-toss/native-modules");
|
|
@@ -641,9 +641,6 @@ var overlayStyle = {
|
|
|
641
641
|
zIndex: Z_INDEX.PROFILE_OVERLAY
|
|
642
642
|
};
|
|
643
643
|
|
|
644
|
-
// src/components/NavigationBar/RNNavigationBar/Default.tsx
|
|
645
|
-
var import_private5 = require("@toss/tds-react-native/private");
|
|
646
|
-
|
|
647
644
|
// src/components/NavigationBar/RNNavigationBar/hooks/useHardwareBackPress.ts
|
|
648
645
|
var import_react11 = require("react");
|
|
649
646
|
var import_react_native11 = require("react-native");
|
|
@@ -778,7 +775,7 @@ function useNavigationEvent() {
|
|
|
778
775
|
if (homeEvent.hasSubscriptions()) {
|
|
779
776
|
homeEvent.emit({});
|
|
780
777
|
} else {
|
|
781
|
-
navigation.navigate("/");
|
|
778
|
+
navigation.navigate("/", {}, { pop: true });
|
|
782
779
|
}
|
|
783
780
|
},
|
|
784
781
|
handleCloseButtonClick: () => {
|
|
@@ -1148,100 +1145,325 @@ function BottomSheetImpressionArea({ children }) {
|
|
|
1148
1145
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children });
|
|
1149
1146
|
}
|
|
1150
1147
|
|
|
1151
|
-
// src/
|
|
1152
|
-
|
|
1153
|
-
|
|
1148
|
+
// src/components/NavigationBar/TopNavigation/TopNavigation.tsx
|
|
1149
|
+
var import_react_native_safe_area_context = require("@granite-js/native/react-native-safe-area-context");
|
|
1150
|
+
var import_react_native19 = require("@granite-js/react-native");
|
|
1151
|
+
var import_tds_react_native8 = require("@toss/tds-react-native");
|
|
1152
|
+
var import_react14 = require("react");
|
|
1153
|
+
var import_react_native20 = require("react-native");
|
|
1154
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1155
|
+
function TopNavigation({ left, center, right }) {
|
|
1156
|
+
const insets = (0, import_react_native_safe_area_context.useSafeAreaInsets)();
|
|
1157
|
+
const navigation = (0, import_react_native19.useNavigation)();
|
|
1158
|
+
(0, import_react14.useEffect)(() => {
|
|
1159
|
+
const { navigationBar } = getAppsInTossGlobals();
|
|
1160
|
+
const parsedNavigationBar = navigationBar ? safeParseNavigationBar(navigationBar) : null;
|
|
1161
|
+
const transparent = parsedNavigationBar?.transparentBackground ?? false;
|
|
1162
|
+
const theme = parsedNavigationBar?.theme ?? "light";
|
|
1163
|
+
navigation.setOptions({
|
|
1164
|
+
headerTransparent: transparent,
|
|
1165
|
+
header: () => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1166
|
+
import_react_native20.View,
|
|
1167
|
+
{
|
|
1168
|
+
style: {
|
|
1169
|
+
width: "100%",
|
|
1170
|
+
backgroundColor: transparent ? void 0 : theme === "light" ? import_tds_react_native8.colors.lightThemeBackground : import_tds_react_native8.colors.darkThemeBackground
|
|
1171
|
+
},
|
|
1172
|
+
pointerEvents: "box-none",
|
|
1173
|
+
children: [
|
|
1174
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native20.View, { style: { width: "100%", height: insets.top } }),
|
|
1175
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1176
|
+
import_react_native20.View,
|
|
1177
|
+
{
|
|
1178
|
+
style: {
|
|
1179
|
+
width: "100%",
|
|
1180
|
+
height: 44,
|
|
1181
|
+
display: "flex",
|
|
1182
|
+
flexDirection: "row",
|
|
1183
|
+
alignItems: "center",
|
|
1184
|
+
paddingLeft: insets.left,
|
|
1185
|
+
paddingRight: insets.right
|
|
1186
|
+
},
|
|
1187
|
+
children: [
|
|
1188
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native20.View, { children: left }),
|
|
1189
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1190
|
+
import_react_native20.View,
|
|
1191
|
+
{
|
|
1192
|
+
style: {
|
|
1193
|
+
flex: 1,
|
|
1194
|
+
display: "flex",
|
|
1195
|
+
flexDirection: "row",
|
|
1196
|
+
alignItems: "center"
|
|
1197
|
+
},
|
|
1198
|
+
children: center
|
|
1199
|
+
}
|
|
1200
|
+
),
|
|
1201
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1202
|
+
import_react_native20.View,
|
|
1203
|
+
{
|
|
1204
|
+
style: {
|
|
1205
|
+
flexDirection: "row",
|
|
1206
|
+
alignItems: "center"
|
|
1207
|
+
},
|
|
1208
|
+
children: right
|
|
1209
|
+
}
|
|
1210
|
+
)
|
|
1211
|
+
]
|
|
1212
|
+
}
|
|
1213
|
+
)
|
|
1214
|
+
]
|
|
1215
|
+
}
|
|
1216
|
+
)
|
|
1217
|
+
});
|
|
1218
|
+
}, [navigation, insets, left, center, right]);
|
|
1219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, {});
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1222
|
+
// src/components/NavigationBar/TopNavigation/BackButton.tsx
|
|
1223
|
+
var import_react_native_svg = require("@granite-js/native/react-native-svg");
|
|
1224
|
+
var import_react_native21 = require("react-native");
|
|
1225
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1226
|
+
function BackButton({ theme = "light", onPress, ...restProps }) {
|
|
1227
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1228
|
+
import_react_native21.TouchableOpacity,
|
|
1229
|
+
{
|
|
1230
|
+
hitSlop: { top: 10, right: 10, bottom: 10, left: 10 },
|
|
1231
|
+
style: {
|
|
1232
|
+
width: 24,
|
|
1233
|
+
height: 24,
|
|
1234
|
+
marginRight: 14
|
|
1235
|
+
},
|
|
1236
|
+
onPress,
|
|
1237
|
+
accessibilityRole: "button",
|
|
1238
|
+
accessibilityLabel: "\uB4A4\uB85C\uAC00\uAE30",
|
|
1239
|
+
...restProps,
|
|
1240
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native21.View, { style: { width: 24, height: 24 }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1241
|
+
import_react_native_svg.SvgXml,
|
|
1242
|
+
{
|
|
1243
|
+
width: 24,
|
|
1244
|
+
height: 24,
|
|
1245
|
+
xml: BACK_BUTTON_XML.replace(/__COLOR__/g, theme === "light" ? "#191F28" : "#FFFFFF")
|
|
1246
|
+
}
|
|
1247
|
+
) })
|
|
1248
|
+
}
|
|
1249
|
+
);
|
|
1250
|
+
}
|
|
1251
|
+
var BACK_BUTTON_XML = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" viewBox="0 0 24 24"><path d="m20.8 20.7c-.3 0-.6-.1-.8-.4l-7.5-7.5c-.5-.5-.5-1.2 0-1.7l7.5-7.5c.5-.5 1.2-.5 1.7 0s.5 1.2 0 1.7l-6.8 6.7 6.7 6.7c.5.5.5 1.2 0 1.7-.2.2-.5.3-.8.3z" fill="__COLOR__"/></svg>`;
|
|
1252
|
+
|
|
1253
|
+
// src/components/NavigationBar/TopNavigation/HomeButton.tsx
|
|
1254
|
+
var import_tds_react_native9 = require("@toss/tds-react-native");
|
|
1255
|
+
var import_react_native22 = require("react-native");
|
|
1256
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1257
|
+
function HomeButton({ theme = "light", onPress, children }) {
|
|
1258
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1259
|
+
import_react_native22.TouchableOpacity,
|
|
1260
|
+
{
|
|
1261
|
+
onPress,
|
|
1262
|
+
style: {
|
|
1263
|
+
flexDirection: "row",
|
|
1264
|
+
alignItems: "center",
|
|
1265
|
+
gap: 6,
|
|
1266
|
+
height: 34,
|
|
1267
|
+
paddingLeft: 10,
|
|
1268
|
+
paddingRight: 10,
|
|
1269
|
+
backgroundColor: theme === "light" ? import_tds_react_native9.colors.greyOpacity50 : "rgba(0, 0, 1, 0.58)",
|
|
1270
|
+
borderRadius: 99
|
|
1271
|
+
},
|
|
1272
|
+
children: [
|
|
1273
|
+
children,
|
|
1274
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_tds_react_native9.Icon, { name: "icon-home-mono", size: 18 })
|
|
1275
|
+
]
|
|
1276
|
+
}
|
|
1277
|
+
);
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
// src/components/NavigationBar/TopNavigation/AppTitle.tsx
|
|
1281
|
+
var import_react_native23 = require("@granite-js/react-native");
|
|
1282
|
+
var import_react_native24 = require("react-native");
|
|
1283
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1284
|
+
function AppTitle({ title, iconUrl, theme = "light" }) {
|
|
1285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
1286
|
+
import_react_native24.View,
|
|
1287
|
+
{
|
|
1288
|
+
style: {
|
|
1289
|
+
flexDirection: "row",
|
|
1290
|
+
alignItems: "center",
|
|
1291
|
+
gap: 6
|
|
1292
|
+
},
|
|
1293
|
+
children: [
|
|
1294
|
+
iconUrl != null && iconUrl !== "" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1295
|
+
import_react_native23.Image,
|
|
1296
|
+
{
|
|
1297
|
+
source: { uri: iconUrl },
|
|
1298
|
+
style: {
|
|
1299
|
+
width: 18,
|
|
1300
|
+
height: 18,
|
|
1301
|
+
borderRadius: 6,
|
|
1302
|
+
overflow: "hidden"
|
|
1303
|
+
}
|
|
1304
|
+
}
|
|
1305
|
+
),
|
|
1306
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1307
|
+
import_react_native24.Text,
|
|
1308
|
+
{
|
|
1309
|
+
numberOfLines: 1,
|
|
1310
|
+
ellipsizeMode: "tail",
|
|
1311
|
+
style: {
|
|
1312
|
+
color: theme === "light" ? "#191F28" : "#FFFFFF",
|
|
1313
|
+
fontSize: 16,
|
|
1314
|
+
fontWeight: "600"
|
|
1315
|
+
},
|
|
1316
|
+
children: title
|
|
1317
|
+
}
|
|
1318
|
+
)
|
|
1319
|
+
]
|
|
1320
|
+
}
|
|
1321
|
+
);
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
// src/components/NavigationBar/TopNavigation/Menu.tsx
|
|
1325
|
+
var import_tds_react_native10 = require("@toss/tds-react-native");
|
|
1326
|
+
var import_react_native25 = require("react-native");
|
|
1327
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1328
|
+
function Menu2({ theme = "light", accessoryButton, onPressDots, onLongPressDots, onPressClose }) {
|
|
1329
|
+
const backgroundColor = theme === "light" ? import_tds_react_native10.colors.greyOpacity50 : "rgba(0, 0, 1, 0.58)";
|
|
1330
|
+
const iconColor = theme === "light" ? import_tds_react_native10.colors.greyOpacity600 : "rgba(253, 253, 255, 0.75)";
|
|
1331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native25.View, { style: { flexDirection: "row", alignItems: "center", gap: 4 }, children: [
|
|
1332
|
+
accessoryButton && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1333
|
+
import_react_native25.View,
|
|
1334
|
+
{
|
|
1335
|
+
style: {
|
|
1336
|
+
borderRadius: 99,
|
|
1337
|
+
overflow: "hidden"
|
|
1338
|
+
},
|
|
1339
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1340
|
+
import_react_native25.TouchableOpacity,
|
|
1341
|
+
{
|
|
1342
|
+
style: {
|
|
1343
|
+
paddingVertical: 7,
|
|
1344
|
+
paddingHorizontal: 12,
|
|
1345
|
+
backgroundColor
|
|
1346
|
+
},
|
|
1347
|
+
onPress: () => {
|
|
1348
|
+
import_tds_react_native10.tdsEvent.emit("navigationAccessoryEvent", { id: accessoryButton.id });
|
|
1349
|
+
accessoryButton.onPress?.();
|
|
1350
|
+
},
|
|
1351
|
+
disabled: accessoryButton.disabled,
|
|
1352
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1353
|
+
import_tds_react_native10.Icon,
|
|
1354
|
+
{
|
|
1355
|
+
name: accessoryButton.icon.name ?? "",
|
|
1356
|
+
accessibilityLabel: accessoryButton.title,
|
|
1357
|
+
color: iconColor,
|
|
1358
|
+
size: 20
|
|
1359
|
+
}
|
|
1360
|
+
)
|
|
1361
|
+
}
|
|
1362
|
+
)
|
|
1363
|
+
}
|
|
1364
|
+
),
|
|
1365
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native25.View, { style: { borderRadius: 99, overflow: "hidden", marginRight: 12 }, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
1366
|
+
import_react_native25.View,
|
|
1367
|
+
{
|
|
1368
|
+
style: {
|
|
1369
|
+
flexDirection: "row",
|
|
1370
|
+
justifyContent: "center",
|
|
1371
|
+
alignItems: "center",
|
|
1372
|
+
gap: 12,
|
|
1373
|
+
height: 34,
|
|
1374
|
+
paddingHorizontal: 12,
|
|
1375
|
+
backgroundColor
|
|
1376
|
+
},
|
|
1377
|
+
children: [
|
|
1378
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native25.TouchableOpacity, { onPress: onPressDots, onLongPress: onLongPressDots, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_tds_react_native10.Icon, { name: "icon-dots-mono", accessibilityLabel: "\uB354\uBCF4\uAE30", color: iconColor, size: 20 }) }),
|
|
1379
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1380
|
+
import_react_native25.View,
|
|
1381
|
+
{
|
|
1382
|
+
style: {
|
|
1383
|
+
width: 1,
|
|
1384
|
+
height: 16,
|
|
1385
|
+
backgroundColor: theme === "light" ? import_tds_react_native10.colors.greyOpacity200 : "rgba(222, 222, 255, 0.19)"
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
),
|
|
1389
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native25.TouchableOpacity, { onPress: onPressClose, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_tds_react_native10.Icon, { name: "icon-appsintoss-close-mono", accessibilityLabel: "\uB2EB\uAE30", color: iconColor, size: 20 }) })
|
|
1390
|
+
]
|
|
1391
|
+
}
|
|
1392
|
+
) })
|
|
1393
|
+
] });
|
|
1154
1394
|
}
|
|
1155
1395
|
|
|
1156
1396
|
// src/components/NavigationBar/common/NavigationBarImpressionArea.tsx
|
|
1157
|
-
var
|
|
1158
|
-
var
|
|
1397
|
+
var import_react15 = require("react");
|
|
1398
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1159
1399
|
function NavigationBarImpressionArea({
|
|
1160
1400
|
children,
|
|
1161
1401
|
withHomeButton
|
|
1162
1402
|
}) {
|
|
1163
|
-
const hasLogged = (0,
|
|
1403
|
+
const hasLogged = (0, import_react15.useRef)(false);
|
|
1164
1404
|
const logging = useNavigationBarLogging();
|
|
1165
|
-
(0,
|
|
1405
|
+
(0, import_react15.useEffect)(() => {
|
|
1166
1406
|
if (hasLogged.current === false) {
|
|
1167
1407
|
logging.navBarImpression({ home_icon_yn: withHomeButton ? "Y" : "N" });
|
|
1168
1408
|
hasLogged.current = true;
|
|
1169
1409
|
}
|
|
1170
1410
|
}, [logging, withHomeButton]);
|
|
1171
|
-
return /* @__PURE__ */ (0,
|
|
1411
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children });
|
|
1172
1412
|
}
|
|
1173
1413
|
|
|
1174
1414
|
// src/components/NavigationBar/RNNavigationBar/Default.tsx
|
|
1175
|
-
var
|
|
1415
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1176
1416
|
function DefaultNavigationBar() {
|
|
1177
1417
|
const globals = getAppsInTossGlobals();
|
|
1178
1418
|
const { open: openMoreButtonBottomSheet } = useMoreButtonBottomSheet();
|
|
1179
1419
|
const parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
|
|
1180
1420
|
const withHomeButton = parsedNavigationBar?.withHomeButton ?? false;
|
|
1181
1421
|
const withBackButton = parsedNavigationBar?.withBackButton ?? true;
|
|
1422
|
+
const theme = parsedNavigationBar?.theme ?? "light";
|
|
1182
1423
|
const { navigationRightButton } = useNavigationBarContext();
|
|
1183
1424
|
const navigationEvent = useNavigationEvent();
|
|
1184
1425
|
useHardwareBackPress(navigationEvent.handleBack);
|
|
1185
|
-
return /* @__PURE__ */ (0,
|
|
1186
|
-
|
|
1426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(NavigationBarImpressionArea, { withHomeButton, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1427
|
+
TopNavigation,
|
|
1187
1428
|
{
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1429
|
+
left: withBackButton ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(BackButton, { theme, onPress: navigationEvent.handleBack }) : null,
|
|
1430
|
+
center: withHomeButton ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(HomeButton, { theme, onPress: navigationEvent.handleHomeButtonClick, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AppTitle, { theme, title: globals.brandDisplayName, iconUrl: globals.brandIcon }) }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AppTitle, { theme, title: globals.brandDisplayName, iconUrl: globals.brandIcon }),
|
|
1431
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1432
|
+
Menu2,
|
|
1433
|
+
{
|
|
1434
|
+
theme,
|
|
1435
|
+
accessoryButton: navigationRightButton,
|
|
1436
|
+
onPressDots: openMoreButtonBottomSheet,
|
|
1437
|
+
onPressClose: navigationEvent.handleCloseButtonClick
|
|
1438
|
+
}
|
|
1439
|
+
)
|
|
1198
1440
|
}
|
|
1199
1441
|
) });
|
|
1200
1442
|
}
|
|
1201
1443
|
|
|
1202
1444
|
// src/components/NavigationBar/RNNavigationBar/Game.tsx
|
|
1203
|
-
var
|
|
1204
|
-
var import_tds_react_native8 = require("@toss/tds-react-native");
|
|
1205
|
-
var import_private6 = require("@toss/tds-react-native/private");
|
|
1206
|
-
var import_react_native19 = require("react-native");
|
|
1207
|
-
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1445
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1208
1446
|
function GameNavigationBar() {
|
|
1209
|
-
const safeAreaTop = (0, import_private6.useSafeAreaTop)();
|
|
1210
1447
|
const { open: openMoreButtonBottomSheet } = useMoreButtonBottomSheet();
|
|
1211
1448
|
const navigationEvent = useNavigationEvent();
|
|
1212
1449
|
const { navigationRightButton } = useNavigationBarContext();
|
|
1213
|
-
const {
|
|
1450
|
+
const { navigationBar } = getAppsInTossGlobals();
|
|
1451
|
+
const parsedNavigationBar = navigationBar ? safeParseNavigationBar(navigationBar) : null;
|
|
1214
1452
|
useHardwareBackPress(navigationEvent.handleBack);
|
|
1215
|
-
return /* @__PURE__ */ (0,
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
marginTop: safeAreaTop,
|
|
1230
|
-
paddingRight: safeAreaRight + 10
|
|
1231
|
-
},
|
|
1232
|
-
pointerEvents: "box-none",
|
|
1233
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1234
|
-
import_private6.NavigationRightContent,
|
|
1235
|
-
{
|
|
1236
|
-
fixedRightButton: navigationRightButton,
|
|
1237
|
-
onPressDots: openMoreButtonBottomSheet,
|
|
1238
|
-
onPressClose: navigationEvent.handleCloseButtonClick,
|
|
1239
|
-
theme: "dark"
|
|
1240
|
-
}
|
|
1241
|
-
)
|
|
1242
|
-
}
|
|
1243
|
-
)
|
|
1244
|
-
] });
|
|
1453
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1454
|
+
TopNavigation,
|
|
1455
|
+
{
|
|
1456
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1457
|
+
Menu2,
|
|
1458
|
+
{
|
|
1459
|
+
theme: parsedNavigationBar?.theme ?? "dark",
|
|
1460
|
+
accessoryButton: navigationRightButton,
|
|
1461
|
+
onPressDots: openMoreButtonBottomSheet,
|
|
1462
|
+
onPressClose: navigationEvent.handleCloseButtonClick
|
|
1463
|
+
}
|
|
1464
|
+
)
|
|
1465
|
+
}
|
|
1466
|
+
);
|
|
1245
1467
|
}
|
|
1246
1468
|
|
|
1247
1469
|
// src/components/NavigationBar/RNNavigationBar/index.tsx
|
|
@@ -1257,20 +1479,20 @@ __reExport(bridge_entry_exports, require("@apps-in-toss/native-modules/constant-
|
|
|
1257
1479
|
__reExport(bridge_entry_exports, require("@apps-in-toss/native-modules/event-bridges"));
|
|
1258
1480
|
|
|
1259
1481
|
// src/components/RNAppContainer.tsx
|
|
1260
|
-
var
|
|
1482
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1261
1483
|
function RNAppContainer({ children }) {
|
|
1262
1484
|
const global2 = getAppsInTossGlobals();
|
|
1263
1485
|
switch (global2.appType) {
|
|
1264
1486
|
case "game":
|
|
1265
|
-
return /* @__PURE__ */ (0,
|
|
1487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GameAppContainer, { children });
|
|
1266
1488
|
case "general":
|
|
1267
1489
|
default:
|
|
1268
|
-
return /* @__PURE__ */ (0,
|
|
1490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GeneralAppContainer, { children });
|
|
1269
1491
|
}
|
|
1270
1492
|
}
|
|
1271
1493
|
function GameAppContainer({ children }) {
|
|
1272
|
-
(0,
|
|
1273
|
-
if (
|
|
1494
|
+
(0, import_react16.useEffect)(() => {
|
|
1495
|
+
if (import_react_native26.Platform.OS === "ios") {
|
|
1274
1496
|
(0, import_native_modules9.setIosSwipeGestureEnabled)({ isEnabled: false });
|
|
1275
1497
|
return () => {
|
|
1276
1498
|
(0, import_native_modules9.setIosSwipeGestureEnabled)({ isEnabled: true });
|
|
@@ -1278,44 +1500,44 @@ function GameAppContainer({ children }) {
|
|
|
1278
1500
|
}
|
|
1279
1501
|
return;
|
|
1280
1502
|
}, []);
|
|
1281
|
-
return /* @__PURE__ */ (0,
|
|
1282
|
-
/* @__PURE__ */ (0,
|
|
1283
|
-
(0, bridge_entry_exports.getOperationalEnvironment)() === "toss" ? /* @__PURE__ */ (0,
|
|
1503
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
|
1504
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RNNavigationBar.Game, {}),
|
|
1505
|
+
(0, bridge_entry_exports.getOperationalEnvironment)() === "toss" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GameInitializer, { children }) : children
|
|
1284
1506
|
] });
|
|
1285
1507
|
}
|
|
1286
1508
|
function GeneralAppContainer({ children }) {
|
|
1287
|
-
return /* @__PURE__ */ (0,
|
|
1288
|
-
/* @__PURE__ */ (0,
|
|
1509
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
|
1510
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RNNavigationBar.Default, {}),
|
|
1289
1511
|
children
|
|
1290
1512
|
] });
|
|
1291
1513
|
}
|
|
1292
1514
|
|
|
1293
1515
|
// src/core/registerApp.tsx
|
|
1294
|
-
var
|
|
1516
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1295
1517
|
function AppsInTossContainer(Container, { children, ...initialProps }) {
|
|
1296
1518
|
if (!(0, import_native_modules10.isMinVersionSupported)({
|
|
1297
1519
|
android: "5.220.0",
|
|
1298
1520
|
ios: "5.221.0"
|
|
1299
1521
|
})) {
|
|
1300
|
-
return /* @__PURE__ */ (0,
|
|
1301
|
-
/* @__PURE__ */ (0,
|
|
1302
|
-
/* @__PURE__ */ (0,
|
|
1522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
|
|
1523
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AppEvent.System, { ...initialProps }),
|
|
1524
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AppUpdate, {})
|
|
1303
1525
|
] });
|
|
1304
1526
|
}
|
|
1305
|
-
return /* @__PURE__ */ (0,
|
|
1306
|
-
/* @__PURE__ */ (0,
|
|
1307
|
-
/* @__PURE__ */ (0,
|
|
1527
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
|
|
1528
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AppEvent.System, { ...initialProps }),
|
|
1529
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Container, { ...initialProps, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_tds_react_native11.TDSProvider, { colorPreference: "light", token: { color: { primary: getAppsInTossGlobals().brandPrimaryColor } }, children }) })
|
|
1308
1530
|
] });
|
|
1309
1531
|
}
|
|
1310
1532
|
function registerApp(container, { context, analytics }) {
|
|
1311
1533
|
const appName = getAppName();
|
|
1312
|
-
const isRegistered =
|
|
1534
|
+
const isRegistered = import_react_native28.AppRegistry.getAppKeys().includes(appName);
|
|
1313
1535
|
if (!isRegistered) {
|
|
1314
1536
|
import_analytics.Analytics.init({
|
|
1315
1537
|
logger: (params) => void (0, import_native_modules10.eventLog)(params),
|
|
1316
1538
|
debug: analytics?.debug ?? __DEV__
|
|
1317
1539
|
});
|
|
1318
|
-
const App =
|
|
1540
|
+
const App = import_react_native27.Granite.registerApp(AppsInTossContainer.bind(null, container), {
|
|
1319
1541
|
appName,
|
|
1320
1542
|
context,
|
|
1321
1543
|
initialScheme: (0, import_native_modules10.getSchemeUri)(),
|
|
@@ -1323,7 +1545,8 @@ function registerApp(container, { context, analytics }) {
|
|
|
1323
1545
|
router: {
|
|
1324
1546
|
screenContainer: AppsInTossScreenContainer,
|
|
1325
1547
|
defaultScreenOption: {
|
|
1326
|
-
statusBarStyle: "dark"
|
|
1548
|
+
statusBarStyle: "dark",
|
|
1549
|
+
header: () => null
|
|
1327
1550
|
}
|
|
1328
1551
|
}
|
|
1329
1552
|
});
|
|
@@ -1333,7 +1556,7 @@ function registerApp(container, { context, analytics }) {
|
|
|
1333
1556
|
}
|
|
1334
1557
|
function AppsInTossScreenContainer({ children }) {
|
|
1335
1558
|
const isRNApp = getAppsInTossGlobals().webViewType == null;
|
|
1336
|
-
return /* @__PURE__ */ (0,
|
|
1559
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(NavigationBarContextProvider, { children: isRNApp ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1337
1560
|
import_analytics.Analytics.Screen,
|
|
1338
1561
|
{
|
|
1339
1562
|
onLog: (params) => sendLog(
|
|
@@ -1343,13 +1566,13 @@ function AppsInTossScreenContainer({ children }) {
|
|
|
1343
1566
|
params: {
|
|
1344
1567
|
...params.params,
|
|
1345
1568
|
schema_id: 5175906,
|
|
1346
|
-
app_name:
|
|
1569
|
+
app_name: import_react_native27.Granite.appName,
|
|
1347
1570
|
log_name: params.log_name
|
|
1348
1571
|
}
|
|
1349
1572
|
},
|
|
1350
1573
|
{ pipelines: ["core"] }
|
|
1351
1574
|
),
|
|
1352
|
-
children: /* @__PURE__ */ (0,
|
|
1575
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RNAppContainer, { children })
|
|
1353
1576
|
}
|
|
1354
1577
|
) : children });
|
|
1355
1578
|
}
|
|
@@ -1373,77 +1596,55 @@ var appsInTossAsyncBridges = __toESM(require("@apps-in-toss/native-modules/async
|
|
|
1373
1596
|
var appsInTossConstantBridges = __toESM(require("@apps-in-toss/native-modules/constant-bridges"), 1);
|
|
1374
1597
|
var appsInTossEventBridges = __toESM(require("@apps-in-toss/native-modules/event-bridges"), 1);
|
|
1375
1598
|
var import_user_scripts = require("@apps-in-toss/user-scripts");
|
|
1376
|
-
var
|
|
1377
|
-
var
|
|
1378
|
-
var
|
|
1379
|
-
var
|
|
1380
|
-
var
|
|
1381
|
-
var import_react_native37 = require("react-native");
|
|
1599
|
+
var import_react_native_safe_area_context3 = require("@granite-js/native/react-native-safe-area-context");
|
|
1600
|
+
var import_react_native41 = require("@granite-js/react-native");
|
|
1601
|
+
var import_tds_react_native14 = require("@toss/tds-react-native");
|
|
1602
|
+
var import_react27 = require("react");
|
|
1603
|
+
var import_react_native42 = require("react-native");
|
|
1382
1604
|
|
|
1383
1605
|
// src/components/GameWebView.tsx
|
|
1384
1606
|
var import_native_modules11 = require("@apps-in-toss/native-modules");
|
|
1385
1607
|
var import_react_native_webview = require("@granite-js/native/react-native-webview");
|
|
1386
|
-
var
|
|
1387
|
-
var
|
|
1608
|
+
var import_react18 = require("react");
|
|
1609
|
+
var import_react_native30 = require("react-native");
|
|
1388
1610
|
|
|
1389
1611
|
// src/components/NavigationBar/GameWebviewNavigationBar.tsx
|
|
1390
|
-
var
|
|
1391
|
-
var
|
|
1392
|
-
var
|
|
1393
|
-
var
|
|
1394
|
-
var import_react16 = require("react");
|
|
1395
|
-
var import_react_native24 = require("react-native");
|
|
1396
|
-
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1612
|
+
var import_react_native29 = require("@granite-js/react-native");
|
|
1613
|
+
var import_tds_react_native12 = require("@toss/tds-react-native");
|
|
1614
|
+
var import_react17 = require("react");
|
|
1615
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1397
1616
|
function GameWebviewNavigationBar() {
|
|
1398
|
-
const
|
|
1399
|
-
const { openConfirm } = (0, import_tds_react_native10.useDialog)();
|
|
1617
|
+
const { openConfirm } = (0, import_tds_react_native12.useDialog)();
|
|
1400
1618
|
const logging = useNavigationBarLogging();
|
|
1401
1619
|
const { open: openMoreButtonBottomSheet } = useMoreButtonBottomSheet();
|
|
1402
1620
|
const { navigationRightButton } = useNavigationBarContext();
|
|
1403
|
-
const {
|
|
1404
|
-
const
|
|
1621
|
+
const { navigationBar } = getAppsInTossGlobals();
|
|
1622
|
+
const parsedNavigationBar = navigationBar ? safeParseNavigationBar(navigationBar) : null;
|
|
1623
|
+
const handleGameWebviewClose = (0, import_react17.useCallback)(async () => {
|
|
1405
1624
|
logging.closeButtonClick();
|
|
1406
|
-
(0,
|
|
1625
|
+
(0, import_react_native29.closeView)();
|
|
1407
1626
|
}, [logging, openConfirm]);
|
|
1408
|
-
return /* @__PURE__ */ (0,
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
marginTop: safeAreaTop,
|
|
1423
|
-
paddingRight: safeAreaRight + 10
|
|
1424
|
-
},
|
|
1425
|
-
pointerEvents: "box-none",
|
|
1426
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1427
|
-
import_private7.NavigationRightContent,
|
|
1428
|
-
{
|
|
1429
|
-
fixedRightButton: navigationRightButton,
|
|
1430
|
-
onPressDots: openMoreButtonBottomSheet,
|
|
1431
|
-
onPressClose: () => {
|
|
1432
|
-
handleGameWebviewClose();
|
|
1433
|
-
},
|
|
1434
|
-
theme: "dark"
|
|
1435
|
-
}
|
|
1436
|
-
)
|
|
1437
|
-
}
|
|
1438
|
-
)
|
|
1439
|
-
] });
|
|
1627
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1628
|
+
TopNavigation,
|
|
1629
|
+
{
|
|
1630
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1631
|
+
Menu2,
|
|
1632
|
+
{
|
|
1633
|
+
theme: parsedNavigationBar?.theme ?? "dark",
|
|
1634
|
+
accessoryButton: navigationRightButton,
|
|
1635
|
+
onPressDots: openMoreButtonBottomSheet,
|
|
1636
|
+
onPressClose: handleGameWebviewClose
|
|
1637
|
+
}
|
|
1638
|
+
)
|
|
1639
|
+
}
|
|
1640
|
+
);
|
|
1440
1641
|
}
|
|
1441
1642
|
|
|
1442
1643
|
// src/components/GameWebView.tsx
|
|
1443
|
-
var
|
|
1444
|
-
var GameWebView = (0,
|
|
1445
|
-
(0,
|
|
1446
|
-
if (
|
|
1644
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1645
|
+
var GameWebView = (0, import_react18.forwardRef)(function GameWebView2(props, ref) {
|
|
1646
|
+
(0, import_react18.useEffect)(() => {
|
|
1647
|
+
if (import_react_native30.Platform.OS === "ios") {
|
|
1447
1648
|
(0, import_native_modules11.setIosSwipeGestureEnabled)({ isEnabled: false });
|
|
1448
1649
|
return () => {
|
|
1449
1650
|
(0, import_native_modules11.setIosSwipeGestureEnabled)({ isEnabled: true });
|
|
@@ -1451,21 +1652,20 @@ var GameWebView = (0, import_react17.forwardRef)(function GameWebView2(props, re
|
|
|
1451
1652
|
}
|
|
1452
1653
|
return;
|
|
1453
1654
|
}, []);
|
|
1454
|
-
return /* @__PURE__ */ (0,
|
|
1455
|
-
/* @__PURE__ */ (0,
|
|
1456
|
-
(0, import_native_modules11.getOperationalEnvironment)() === "toss" ? /* @__PURE__ */ (0,
|
|
1655
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
1656
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GameWebviewNavigationBar, {}),
|
|
1657
|
+
(0, import_native_modules11.getOperationalEnvironment)() === "toss" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GameInitializer, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_webview.WebView, { ref, ...props }) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_webview.WebView, { ref, ...props })
|
|
1457
1658
|
] });
|
|
1458
1659
|
});
|
|
1459
1660
|
|
|
1460
1661
|
// src/components/PartnerWebView.tsx
|
|
1461
1662
|
var import_react_native_webview2 = require("@granite-js/native/react-native-webview");
|
|
1462
|
-
var
|
|
1663
|
+
var import_react20 = require("react");
|
|
1463
1664
|
|
|
1464
1665
|
// src/components/NavigationBar/PartnerWebviewNavigationBar.tsx
|
|
1465
|
-
var
|
|
1466
|
-
var
|
|
1467
|
-
var
|
|
1468
|
-
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1666
|
+
var import_react_native31 = require("@granite-js/react-native");
|
|
1667
|
+
var import_react19 = require("react");
|
|
1668
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1469
1669
|
function PartnerWebviewNavigationBar({ onBackButtonClick, onHomeButtonClick }) {
|
|
1470
1670
|
const globals = getAppsInTossGlobals();
|
|
1471
1671
|
const logging = useNavigationBarLogging();
|
|
@@ -1473,34 +1673,36 @@ function PartnerWebviewNavigationBar({ onBackButtonClick, onHomeButtonClick }) {
|
|
|
1473
1673
|
const parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
|
|
1474
1674
|
const withHomeButton = parsedNavigationBar?.withHomeButton ?? false;
|
|
1475
1675
|
const withBackButton = parsedNavigationBar?.withBackButton ?? true;
|
|
1676
|
+
const theme = parsedNavigationBar?.theme ?? "light";
|
|
1476
1677
|
const { navigationRightButton } = useNavigationBarContext();
|
|
1477
|
-
const handleClose = (0,
|
|
1678
|
+
const handleClose = (0, import_react19.useCallback)(async () => {
|
|
1478
1679
|
logging.closeButtonClick();
|
|
1479
|
-
(0,
|
|
1680
|
+
(0, import_react_native31.closeView)();
|
|
1480
1681
|
}, [logging]);
|
|
1481
|
-
return /* @__PURE__ */ (0,
|
|
1482
|
-
|
|
1682
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(NavigationBarImpressionArea, { withHomeButton, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1683
|
+
TopNavigation,
|
|
1483
1684
|
{
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1685
|
+
left: withBackButton ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BackButton, { theme, onPress: onBackButtonClick }) : null,
|
|
1686
|
+
center: withHomeButton ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(HomeButton, { theme, onPress: onHomeButtonClick, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AppTitle, { theme, title: globals.brandDisplayName, iconUrl: globals.brandIcon }) }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AppTitle, { theme, title: globals.brandDisplayName, iconUrl: globals.brandIcon }),
|
|
1687
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1688
|
+
Menu2,
|
|
1689
|
+
{
|
|
1690
|
+
theme,
|
|
1691
|
+
accessoryButton: navigationRightButton,
|
|
1692
|
+
onPressDots: openMoreButtonBottomSheet,
|
|
1693
|
+
onPressClose: handleClose
|
|
1694
|
+
}
|
|
1695
|
+
)
|
|
1494
1696
|
}
|
|
1495
1697
|
) });
|
|
1496
1698
|
}
|
|
1497
1699
|
|
|
1498
1700
|
// src/components/PartnerWebView.tsx
|
|
1499
|
-
var
|
|
1500
|
-
var PartnerWebView = (0,
|
|
1501
|
-
return /* @__PURE__ */ (0,
|
|
1502
|
-
/* @__PURE__ */ (0,
|
|
1503
|
-
/* @__PURE__ */ (0,
|
|
1701
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1702
|
+
var PartnerWebView = (0, import_react20.forwardRef)(function PartnerWebViewScreen({ onBackButtonClick, onHomeButtonClick, ...webViewProps }, ref) {
|
|
1703
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
1704
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PartnerWebviewNavigationBar, { onBackButtonClick, onHomeButtonClick }),
|
|
1705
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native_webview2.WebView, { ref, ...webViewProps, style: { flex: 1 } })
|
|
1504
1706
|
] });
|
|
1505
1707
|
});
|
|
1506
1708
|
|
|
@@ -1603,10 +1805,10 @@ function generateRequestId() {
|
|
|
1603
1805
|
}
|
|
1604
1806
|
|
|
1605
1807
|
// src/ads/getReferrer.ts
|
|
1606
|
-
var
|
|
1808
|
+
var import_react_native32 = require("@granite-js/react-native");
|
|
1607
1809
|
function getReferrer() {
|
|
1608
1810
|
try {
|
|
1609
|
-
return new URL((0,
|
|
1811
|
+
return new URL((0, import_react_native32.getSchemeUri)()).searchParams.get("referrer");
|
|
1610
1812
|
} catch {
|
|
1611
1813
|
return null;
|
|
1612
1814
|
}
|
|
@@ -1616,10 +1818,10 @@ function getReferrer() {
|
|
|
1616
1818
|
var import_native_modules13 = require("@apps-in-toss/native-modules");
|
|
1617
1819
|
|
|
1618
1820
|
// src/ads/getIsDev.ts
|
|
1619
|
-
var
|
|
1821
|
+
var import_react_native33 = require("@granite-js/react-native");
|
|
1620
1822
|
function getIsDev() {
|
|
1621
1823
|
try {
|
|
1622
|
-
return new URL((0,
|
|
1824
|
+
return new URL((0, import_react_native33.getSchemeUri)()).searchParams.get("isDev") === "true";
|
|
1623
1825
|
} catch {
|
|
1624
1826
|
return false;
|
|
1625
1827
|
}
|
|
@@ -1906,10 +2108,10 @@ function showFullScreenAd(params) {
|
|
|
1906
2108
|
showFullScreenAd.isSupported = import_native_modules14.GoogleAdMob.showAppsInTossAdMob.isSupported;
|
|
1907
2109
|
|
|
1908
2110
|
// src/ads/tossAdEventLog.ts
|
|
1909
|
-
var
|
|
2111
|
+
var import_react_native34 = require("@granite-js/react-native");
|
|
1910
2112
|
async function tossAdEventLog(params) {
|
|
1911
2113
|
const referrer = getReferrer();
|
|
1912
|
-
const appName =
|
|
2114
|
+
const appName = import_react_native34.Granite.appName;
|
|
1913
2115
|
const eventLogParams = {
|
|
1914
2116
|
...params,
|
|
1915
2117
|
params: {
|
|
@@ -1922,7 +2124,7 @@ async function tossAdEventLog(params) {
|
|
|
1922
2124
|
}
|
|
1923
2125
|
|
|
1924
2126
|
// src/bridge-handler/useBridgeHandler.tsx
|
|
1925
|
-
var
|
|
2127
|
+
var import_react21 = require("react");
|
|
1926
2128
|
function serializeError(error) {
|
|
1927
2129
|
return JSON.stringify(error, (_, value) => {
|
|
1928
2130
|
if (value instanceof Error) {
|
|
@@ -1974,8 +2176,8 @@ function useBridgeHandler({
|
|
|
1974
2176
|
asyncHandlerMap,
|
|
1975
2177
|
eventListenerMap
|
|
1976
2178
|
}) {
|
|
1977
|
-
const ref = (0,
|
|
1978
|
-
const injectedJavaScript = (0,
|
|
2179
|
+
const ref = (0, import_react21.useRef)(null);
|
|
2180
|
+
const injectedJavaScript = (0, import_react21.useMemo)(
|
|
1979
2181
|
() => `window.__CONSTANT_HANDLER_MAP = ${JSON.stringify(
|
|
1980
2182
|
Object.entries(constantHandlerMap).reduce(
|
|
1981
2183
|
(acc, [key, value]) => {
|
|
@@ -1987,7 +2189,7 @@ function useBridgeHandler({
|
|
|
1987
2189
|
)};`,
|
|
1988
2190
|
[constantHandlerMap]
|
|
1989
2191
|
);
|
|
1990
|
-
(0,
|
|
2192
|
+
(0, import_react21.useEffect)(() => {
|
|
1991
2193
|
ref.current?.injectJavaScript(injectedJavaScript);
|
|
1992
2194
|
}, [injectedJavaScript]);
|
|
1993
2195
|
const createHandleOnEvent = (functionName, eventId) => (response) => {
|
|
@@ -2001,7 +2203,7 @@ function useBridgeHandler({
|
|
|
2001
2203
|
window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/onError/${eventId}', ${serializedError});
|
|
2002
2204
|
`);
|
|
2003
2205
|
};
|
|
2004
|
-
const $onMessage = (0,
|
|
2206
|
+
const $onMessage = (0, import_react21.useCallback)(
|
|
2005
2207
|
async (e) => {
|
|
2006
2208
|
onMessage?.(e);
|
|
2007
2209
|
const data = parseNativeEventData(e.nativeEvent.data);
|
|
@@ -2060,25 +2262,25 @@ function parseNativeEventData(data) {
|
|
|
2060
2262
|
}
|
|
2061
2263
|
|
|
2062
2264
|
// src/core/hooks/useSafeAreaInsetsEvent.tsx
|
|
2063
|
-
var
|
|
2064
|
-
var
|
|
2265
|
+
var import_react_native_safe_area_context2 = require("@granite-js/native/react-native-safe-area-context");
|
|
2266
|
+
var import_react22 = require("react");
|
|
2065
2267
|
function useSafeAreaInsetsEvent() {
|
|
2066
|
-
const insets = (0,
|
|
2067
|
-
(0,
|
|
2268
|
+
const insets = (0, import_react_native_safe_area_context2.useSafeAreaInsets)();
|
|
2269
|
+
(0, import_react22.useEffect)(() => {
|
|
2068
2270
|
safeAreaInsetsChange.emit(insets);
|
|
2069
2271
|
}, [insets]);
|
|
2070
|
-
(0,
|
|
2272
|
+
(0, import_react22.useEffect)(() => {
|
|
2071
2273
|
return () => safeAreaInsetsChange.clearSubscriptions();
|
|
2072
2274
|
}, []);
|
|
2073
2275
|
return safeAreaInsetsChange;
|
|
2074
2276
|
}
|
|
2075
2277
|
|
|
2076
2278
|
// src/core/hooks/useWebBackHandler.tsx
|
|
2077
|
-
var
|
|
2078
|
-
var
|
|
2279
|
+
var import_react_native35 = require("@granite-js/react-native");
|
|
2280
|
+
var import_react24 = require("react");
|
|
2079
2281
|
|
|
2080
2282
|
// src/hooks/useWebviewHistoryStack.tsx
|
|
2081
|
-
var
|
|
2283
|
+
var import_react23 = require("react");
|
|
2082
2284
|
var INITIAL_STATE = { stack: [], index: -1 };
|
|
2083
2285
|
function reducer(state, action) {
|
|
2084
2286
|
switch (action.type) {
|
|
@@ -2109,11 +2311,11 @@ function reducer(state, action) {
|
|
|
2109
2311
|
}
|
|
2110
2312
|
}
|
|
2111
2313
|
function useWebViewHistory() {
|
|
2112
|
-
const [state, dispatch] = (0,
|
|
2113
|
-
const onNavigationStateChange = (0,
|
|
2314
|
+
const [state, dispatch] = (0, import_react23.useReducer)(reducer, INITIAL_STATE);
|
|
2315
|
+
const onNavigationStateChange = (0, import_react23.useCallback)(({ url, canGoForward: canGoForward2 }) => {
|
|
2114
2316
|
dispatch({ type: "NAVIGATION_CHANGE", url, canGoForward: canGoForward2 });
|
|
2115
2317
|
}, []);
|
|
2116
|
-
const { canGoBack, canGoForward } = (0,
|
|
2318
|
+
const { canGoBack, canGoForward } = (0, import_react23.useMemo)(() => {
|
|
2117
2319
|
const canBack = state.index > 0;
|
|
2118
2320
|
const canFwd = state.index >= 0 && state.index < state.stack.length - 1;
|
|
2119
2321
|
return { canGoBack: canBack, canGoForward: canFwd };
|
|
@@ -2129,21 +2331,21 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
|
|
|
2129
2331
|
hasBackEvent: hasWebBackEvent,
|
|
2130
2332
|
addEventListener: addWebBackEventListener,
|
|
2131
2333
|
removeEventListener: removeWebBackEventListener
|
|
2132
|
-
} = (0,
|
|
2334
|
+
} = (0, import_react_native35.useBackEventState)();
|
|
2133
2335
|
const logging = useNavigationBarLogging();
|
|
2134
|
-
const addEventListener = (0,
|
|
2336
|
+
const addEventListener = (0, import_react24.useCallback)(
|
|
2135
2337
|
(handler) => {
|
|
2136
2338
|
addWebBackEventListener(handler);
|
|
2137
2339
|
},
|
|
2138
2340
|
[addWebBackEventListener]
|
|
2139
2341
|
);
|
|
2140
|
-
const removeEventListener = (0,
|
|
2342
|
+
const removeEventListener = (0, import_react24.useCallback)(
|
|
2141
2343
|
(handler) => {
|
|
2142
2344
|
removeWebBackEventListener(handler);
|
|
2143
2345
|
},
|
|
2144
2346
|
[removeWebBackEventListener]
|
|
2145
2347
|
);
|
|
2146
|
-
const handleWebBack = (0,
|
|
2348
|
+
const handleWebBack = (0, import_react24.useCallback)(async () => {
|
|
2147
2349
|
if (hasWebBackEvent) {
|
|
2148
2350
|
for (const handler of webBackHandlersRef) {
|
|
2149
2351
|
handler();
|
|
@@ -2153,10 +2355,10 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
|
|
|
2153
2355
|
if (hasHistory) {
|
|
2154
2356
|
webViewRef.current?.injectJavaScript("window.history.back();");
|
|
2155
2357
|
} else {
|
|
2156
|
-
(0,
|
|
2358
|
+
(0, import_react_native35.closeView)();
|
|
2157
2359
|
}
|
|
2158
2360
|
}, [hasHistory, hasWebBackEvent, webBackHandlersRef, logging, webViewRef]);
|
|
2159
|
-
const handleWebHome = (0,
|
|
2361
|
+
const handleWebHome = (0, import_react24.useCallback)(() => {
|
|
2160
2362
|
logging.homeButtonClick();
|
|
2161
2363
|
if (homeEvent.hasSubscriptions()) {
|
|
2162
2364
|
homeEvent.emit({});
|
|
@@ -2169,7 +2371,7 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
|
|
|
2169
2371
|
})();
|
|
2170
2372
|
`);
|
|
2171
2373
|
}, [hasWebBackEvent, webBackHandlersRef, logging, webViewInitialURL, webViewRef]);
|
|
2172
|
-
return (0,
|
|
2374
|
+
return (0, import_react24.useMemo)(
|
|
2173
2375
|
() => ({ addEventListener, removeEventListener, handleWebBack, handleWebHome, onNavigationStateChange }),
|
|
2174
2376
|
[addEventListener, removeEventListener, handleWebBack, handleWebHome, onNavigationStateChange]
|
|
2175
2377
|
);
|
|
@@ -2190,7 +2392,7 @@ function mergeRefs(...refs) {
|
|
|
2190
2392
|
|
|
2191
2393
|
// src/hooks/useCreateUserAgent.ts
|
|
2192
2394
|
var import_native_modules15 = require("@apps-in-toss/native-modules");
|
|
2193
|
-
var
|
|
2395
|
+
var import_react_native36 = require("react-native");
|
|
2194
2396
|
var FontA11yCategory = {
|
|
2195
2397
|
Large: "Large",
|
|
2196
2398
|
xLarge: "xLarge",
|
|
@@ -2325,7 +2527,7 @@ function useCreateUserAgent({
|
|
|
2325
2527
|
}) {
|
|
2326
2528
|
const platform = (0, import_native_modules15.getPlatformOS)();
|
|
2327
2529
|
const appVersion = (0, import_native_modules15.getTossAppVersion)();
|
|
2328
|
-
const { fontScale } = (0,
|
|
2530
|
+
const { fontScale } = (0, import_react_native36.useWindowDimensions)();
|
|
2329
2531
|
const platformString = platform === "ios" ? "iPhone" : "Android phone";
|
|
2330
2532
|
const fontA11y = mapFontScaleToCategory(fontScale, platform);
|
|
2331
2533
|
const normalizedFontScale = convertToAndroidStyleScale(fontScale, platform);
|
|
@@ -2347,12 +2549,12 @@ function useCreateUserAgent({
|
|
|
2347
2549
|
|
|
2348
2550
|
// src/hooks/useGeolocation.ts
|
|
2349
2551
|
var import_native_modules16 = require("@apps-in-toss/native-modules");
|
|
2350
|
-
var
|
|
2351
|
-
var
|
|
2552
|
+
var import_react_native37 = require("@granite-js/react-native");
|
|
2553
|
+
var import_react25 = require("react");
|
|
2352
2554
|
function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
|
|
2353
|
-
const isVisible = (0,
|
|
2354
|
-
const [location, setLocation] = (0,
|
|
2355
|
-
(0,
|
|
2555
|
+
const isVisible = (0, import_react_native37.useVisibility)();
|
|
2556
|
+
const [location, setLocation] = (0, import_react25.useState)(null);
|
|
2557
|
+
(0, import_react25.useEffect)(() => {
|
|
2356
2558
|
if (!isVisible) {
|
|
2357
2559
|
return;
|
|
2358
2560
|
}
|
|
@@ -2370,12 +2572,12 @@ function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
|
|
|
2370
2572
|
}
|
|
2371
2573
|
|
|
2372
2574
|
// src/hooks/useWaitForReturnNavigator.tsx
|
|
2373
|
-
var
|
|
2374
|
-
var
|
|
2575
|
+
var import_react_native38 = require("@granite-js/react-native");
|
|
2576
|
+
var import_react26 = require("react");
|
|
2375
2577
|
function useWaitForReturnNavigator() {
|
|
2376
|
-
const callbacks = (0,
|
|
2377
|
-
const navigation = (0,
|
|
2378
|
-
const startNavigating = (0,
|
|
2578
|
+
const callbacks = (0, import_react26.useRef)([]).current;
|
|
2579
|
+
const navigation = (0, import_react_native38.useNavigation)();
|
|
2580
|
+
const startNavigating = (0, import_react26.useCallback)(
|
|
2379
2581
|
(route, params) => {
|
|
2380
2582
|
return new Promise((resolve) => {
|
|
2381
2583
|
callbacks.push(resolve);
|
|
@@ -2384,7 +2586,7 @@ function useWaitForReturnNavigator() {
|
|
|
2384
2586
|
},
|
|
2385
2587
|
[callbacks, navigation]
|
|
2386
2588
|
);
|
|
2387
|
-
const handleVisibilityChange = (0,
|
|
2589
|
+
const handleVisibilityChange = (0, import_react26.useCallback)(
|
|
2388
2590
|
(state) => {
|
|
2389
2591
|
if (state === "visible" && callbacks.length > 0) {
|
|
2390
2592
|
for (const callback of callbacks) {
|
|
@@ -2395,7 +2597,7 @@ function useWaitForReturnNavigator() {
|
|
|
2395
2597
|
},
|
|
2396
2598
|
[callbacks]
|
|
2397
2599
|
);
|
|
2398
|
-
(0,
|
|
2600
|
+
(0, import_react_native38.useVisibilityChange)(handleVisibilityChange);
|
|
2399
2601
|
return startNavigating;
|
|
2400
2602
|
}
|
|
2401
2603
|
|
|
@@ -2410,10 +2612,10 @@ function useTopNavigation() {
|
|
|
2410
2612
|
|
|
2411
2613
|
// src/hooks/useWebViewMemoryDebug.tsx
|
|
2412
2614
|
var import_native_modules17 = require("@apps-in-toss/native-modules");
|
|
2413
|
-
var
|
|
2414
|
-
var
|
|
2615
|
+
var import_react_native39 = require("@granite-js/react-native");
|
|
2616
|
+
var import_tds_react_native13 = require("@toss/tds-react-native");
|
|
2415
2617
|
function useHandleWebViewProcessDidTerminate(webViewRef) {
|
|
2416
|
-
const toast = (0,
|
|
2618
|
+
const toast = (0, import_tds_react_native13.useToast)();
|
|
2417
2619
|
return () => {
|
|
2418
2620
|
webViewDebugLog("AppsInTossWebViewProcessDidTerminate", {});
|
|
2419
2621
|
toast.open("\uBB38\uC81C\uAC00 \uC0DD\uACA8\uC11C \uBBF8\uB2C8\uC571\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD588\uC5B4\uC694.", {
|
|
@@ -2433,7 +2635,7 @@ function webViewDebugLog(logName, params) {
|
|
|
2433
2635
|
log_type: "debug",
|
|
2434
2636
|
params: {
|
|
2435
2637
|
...params,
|
|
2436
|
-
app_name:
|
|
2638
|
+
app_name: import_react_native39.Granite.appName,
|
|
2437
2639
|
deployment_id: global2.deploymentId
|
|
2438
2640
|
}
|
|
2439
2641
|
};
|
|
@@ -2445,7 +2647,7 @@ function webViewDebugLog(logName, params) {
|
|
|
2445
2647
|
}
|
|
2446
2648
|
|
|
2447
2649
|
// src/utils/log.ts
|
|
2448
|
-
var
|
|
2650
|
+
var import_react_native40 = require("@granite-js/react-native");
|
|
2449
2651
|
|
|
2450
2652
|
// src/utils/extractDateFromUUIDv7.ts
|
|
2451
2653
|
var extractDateFromUUIDv7 = (uuid) => {
|
|
@@ -2471,7 +2673,7 @@ var getGroupId = (url) => {
|
|
|
2471
2673
|
};
|
|
2472
2674
|
var getReferrer2 = () => {
|
|
2473
2675
|
try {
|
|
2474
|
-
const referrer = new URL((0,
|
|
2676
|
+
const referrer = new URL((0, import_react_native40.getSchemeUri)());
|
|
2475
2677
|
return referrer.searchParams.get("referrer");
|
|
2476
2678
|
} catch {
|
|
2477
2679
|
return "";
|
|
@@ -2485,7 +2687,7 @@ var trackScreen = (url, title) => {
|
|
|
2485
2687
|
search,
|
|
2486
2688
|
referrer: getReferrer2(),
|
|
2487
2689
|
document_title: title,
|
|
2488
|
-
app_name:
|
|
2690
|
+
app_name: import_react_native40.Granite.appName,
|
|
2489
2691
|
deployment_id: env.getDeploymentId(),
|
|
2490
2692
|
deployment_timestamp: extractDateFromUUIDv7(env.getDeploymentId()).getTime()
|
|
2491
2693
|
};
|
|
@@ -2512,17 +2714,17 @@ var trackScreen = (url, title) => {
|
|
|
2512
2714
|
};
|
|
2513
2715
|
|
|
2514
2716
|
// src/components/WebView.tsx
|
|
2515
|
-
var
|
|
2717
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2516
2718
|
var operationalEnvironment = appsInTossConstantBridges.getOperationalEnvironment();
|
|
2517
2719
|
var TYPES = ["partner", "external", "game"];
|
|
2518
2720
|
var WEBVIEW_TYPES = {
|
|
2519
2721
|
partner: PartnerWebView,
|
|
2520
|
-
external:
|
|
2722
|
+
external: import_tds_react_native14.ExternalWebViewScreen,
|
|
2521
2723
|
game: GameWebView
|
|
2522
2724
|
};
|
|
2523
2725
|
function mergeSchemeQueryParamsInto(url) {
|
|
2524
2726
|
const baseUrl = new URL(url);
|
|
2525
|
-
const schemeUrl = new URL((0,
|
|
2727
|
+
const schemeUrl = new URL((0, import_react_native41.getSchemeUri)());
|
|
2526
2728
|
const resultUrl = new URL(schemeUrl.pathname, baseUrl.origin);
|
|
2527
2729
|
for (const [key, value] of baseUrl.searchParams.entries()) {
|
|
2528
2730
|
resultUrl.searchParams.set(key, value);
|
|
@@ -2549,23 +2751,21 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2549
2751
|
if (!TYPES.includes(type)) {
|
|
2550
2752
|
throw new Error(`Invalid WebView type: '${type}'`);
|
|
2551
2753
|
}
|
|
2552
|
-
const webViewRef = (0,
|
|
2553
|
-
const url = (0,
|
|
2754
|
+
const webViewRef = (0, import_react27.useRef)(null);
|
|
2755
|
+
const url = (0, import_react27.useMemo)(() => getWebViewURL(local), [local]);
|
|
2554
2756
|
const webBackHandler = useWebBackHandler(url, webViewRef);
|
|
2555
|
-
const top = (0, import_private9.useSafeAreaTop)();
|
|
2556
|
-
const bottom = (0, import_private9.useSafeAreaBottom)();
|
|
2557
|
-
const insets = (0, import_react_native_safe_area_context4.useSafeAreaInsets)();
|
|
2558
2757
|
const global2 = getAppsInTossGlobals();
|
|
2758
|
+
const insets = (0, import_react_native_safe_area_context3.useSafeAreaInsets)();
|
|
2559
2759
|
const navigationBarContext = useNavigationBarContext();
|
|
2560
2760
|
const safeAreaInsetsEvent = useSafeAreaInsetsEvent();
|
|
2561
|
-
const [allowsBackForwardNavigationGestures, setAllowsBackForwardNavigationGestures] = (0,
|
|
2761
|
+
const [allowsBackForwardNavigationGestures, setAllowsBackForwardNavigationGestures] = (0, import_react27.useState)(
|
|
2562
2762
|
props.allowsBackForwardNavigationGestures
|
|
2563
2763
|
);
|
|
2564
2764
|
const handler = useBridgeHandler({
|
|
2565
2765
|
onMessage,
|
|
2566
2766
|
eventListenerMap: {
|
|
2567
2767
|
...appsInTossEventBridges,
|
|
2568
|
-
navigationAccessoryEvent: ({ onEvent, onError }) =>
|
|
2768
|
+
navigationAccessoryEvent: ({ onEvent, onError }) => import_tds_react_native14.tdsEvent.addEventListener("navigationAccessoryEvent", { onEvent, onError }),
|
|
2569
2769
|
backEvent: ({ onEvent }) => {
|
|
2570
2770
|
webBackHandler.addEventListener(onEvent);
|
|
2571
2771
|
return () => {
|
|
@@ -2593,12 +2793,7 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2593
2793
|
},
|
|
2594
2794
|
constantHandlerMap: {
|
|
2595
2795
|
...appsInTossConstantBridges,
|
|
2596
|
-
getSafeAreaInsets: () =>
|
|
2597
|
-
top,
|
|
2598
|
-
bottom,
|
|
2599
|
-
left: insets.left,
|
|
2600
|
-
right: insets.right
|
|
2601
|
-
}),
|
|
2796
|
+
getSafeAreaInsets: () => insets,
|
|
2602
2797
|
...Object.fromEntries(Object.entries(global2).map(([key, value]) => [key, () => value])),
|
|
2603
2798
|
getServerTime_isSupported: import_native_modules18.getServerTime.isSupported,
|
|
2604
2799
|
requestReview_isSupported: import_native_modules18.requestReview.isSupported,
|
|
@@ -2659,7 +2854,7 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2659
2854
|
}
|
|
2660
2855
|
}
|
|
2661
2856
|
});
|
|
2662
|
-
const headerPropForExternalWebView = (0,
|
|
2857
|
+
const headerPropForExternalWebView = (0, import_react27.useMemo)(() => {
|
|
2663
2858
|
const parsedNavigationBar = global2.navigationBar != null ? safeParseNavigationBar(global2.navigationBar) : null;
|
|
2664
2859
|
const initialAccessoryButton = parsedNavigationBar?.initialAccessoryButton;
|
|
2665
2860
|
const withBackButton = parsedNavigationBar?.withBackButton ?? true;
|
|
@@ -2680,16 +2875,16 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2680
2875
|
colorPreference: "light"
|
|
2681
2876
|
});
|
|
2682
2877
|
const refs = mergeRefs(handler.ref, webViewRef);
|
|
2683
|
-
(0,
|
|
2878
|
+
(0, import_react27.useEffect)(() => {
|
|
2684
2879
|
const callback = () => {
|
|
2685
2880
|
webBackHandler.handleWebBack();
|
|
2686
2881
|
return true;
|
|
2687
2882
|
};
|
|
2688
|
-
const subscription =
|
|
2883
|
+
const subscription = import_react_native42.BackHandler.addEventListener("hardwareBackPress", callback);
|
|
2689
2884
|
return () => subscription.remove();
|
|
2690
2885
|
}, [webBackHandler]);
|
|
2691
2886
|
const handleWebViewProcessDidTerminate = useHandleWebViewProcessDidTerminate(webViewRef);
|
|
2692
|
-
return /* @__PURE__ */ (0,
|
|
2887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2693
2888
|
BaseWebView,
|
|
2694
2889
|
{
|
|
2695
2890
|
ref: refs,
|
|
@@ -2712,14 +2907,14 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2712
2907
|
webBackHandler.onNavigationStateChange(event);
|
|
2713
2908
|
},
|
|
2714
2909
|
textZoom: 100,
|
|
2715
|
-
userAgent:
|
|
2910
|
+
userAgent: import_react_native42.Platform.OS === "ios" ? userAgent : void 0,
|
|
2716
2911
|
sharedCookiesEnabled: true,
|
|
2717
2912
|
webviewDebuggingEnabled: webViewDebuggingEnabled,
|
|
2718
2913
|
thirdPartyCookiesEnabled: true,
|
|
2719
2914
|
onMessage: handler.onMessage,
|
|
2720
2915
|
injectedJavaScript: import_user_scripts.afterDocumentLoad,
|
|
2721
2916
|
injectedJavaScriptBeforeContentLoaded: [handler.injectedJavaScript, import_user_scripts.beforeDocumentLoad].join("\n"),
|
|
2722
|
-
decelerationRate:
|
|
2917
|
+
decelerationRate: import_react_native42.Platform.OS === "ios" ? 1 : void 0,
|
|
2723
2918
|
allowsBackForwardNavigationGestures,
|
|
2724
2919
|
onShouldStartLoadWithRequest: (event) => {
|
|
2725
2920
|
try {
|
|
@@ -2727,7 +2922,7 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2727
2922
|
if (["https:", "http:"].includes(url2.protocol) || url2.href === "about:blank") {
|
|
2728
2923
|
return true;
|
|
2729
2924
|
} else {
|
|
2730
|
-
|
|
2925
|
+
import_react_native42.Linking.openURL(convertIntentURL(url2) ?? url2.href);
|
|
2731
2926
|
return false;
|
|
2732
2927
|
}
|
|
2733
2928
|
} catch (error) {
|
|
@@ -2752,15 +2947,15 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2752
2947
|
|
|
2753
2948
|
// src/index.ts
|
|
2754
2949
|
__reExport(src_exports, require("@apps-in-toss/analytics"), module.exports);
|
|
2755
|
-
var
|
|
2950
|
+
var import_private5 = require("@toss/tds-react-native/private");
|
|
2756
2951
|
__reExport(src_exports, require("@apps-in-toss/native-modules"), module.exports);
|
|
2757
2952
|
__reExport(src_exports, require("@apps-in-toss/types"), module.exports);
|
|
2758
2953
|
var import_types = require("@apps-in-toss/types");
|
|
2759
2954
|
|
|
2760
2955
|
// src/ads/inlineAd/InlineAd.tsx
|
|
2761
|
-
var
|
|
2762
|
-
var
|
|
2763
|
-
var
|
|
2956
|
+
var import_react_native46 = require("@granite-js/react-native");
|
|
2957
|
+
var import_react30 = require("react");
|
|
2958
|
+
var import_react_native47 = require("react-native");
|
|
2764
2959
|
|
|
2765
2960
|
// src/ads/inlineAd/constants.ts
|
|
2766
2961
|
var SDK_ID = "106";
|
|
@@ -3022,7 +3217,7 @@ async function loadAd(adGroupId) {
|
|
|
3022
3217
|
}
|
|
3023
3218
|
|
|
3024
3219
|
// src/ads/inlineAd/opener.ts
|
|
3025
|
-
var
|
|
3220
|
+
var import_react_native43 = require("@granite-js/react-native");
|
|
3026
3221
|
function isSafeUrl(url) {
|
|
3027
3222
|
try {
|
|
3028
3223
|
const parsed = new URL(url);
|
|
@@ -3054,7 +3249,7 @@ function openLandingUrl(url) {
|
|
|
3054
3249
|
return;
|
|
3055
3250
|
}
|
|
3056
3251
|
try {
|
|
3057
|
-
(0,
|
|
3252
|
+
(0, import_react_native43.openURL)(getWebSchemeOrUri(url));
|
|
3058
3253
|
} catch (error) {
|
|
3059
3254
|
console.error("[InlineAd] Failed to open landing URL:", error);
|
|
3060
3255
|
}
|
|
@@ -3140,10 +3335,10 @@ var EventTracker = class {
|
|
|
3140
3335
|
};
|
|
3141
3336
|
|
|
3142
3337
|
// src/ads/inlineAd/ui/FeedBannerAdView.tsx
|
|
3143
|
-
var
|
|
3144
|
-
var
|
|
3145
|
-
var
|
|
3146
|
-
var
|
|
3338
|
+
var import_react_native_svg2 = require("@granite-js/native/react-native-svg");
|
|
3339
|
+
var import_react28 = require("react");
|
|
3340
|
+
var import_react_native44 = require("react-native");
|
|
3341
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3147
3342
|
var ARROW_PATH = "m7.5 20.4c-.5-.5-.5-1.2 0-1.7l6.7-6.7-6.8-6.7c-.5-.5-.5-1.2 0-1.7s1.2-.5 1.7 0l7.5 7.5c.5.5.5 1.2 0 1.7l-7.5 7.5c-.2.3-.5.4-.8.4s-.6-.1-.8-.3z";
|
|
3148
3343
|
function FeedBannerAdView({
|
|
3149
3344
|
brandName,
|
|
@@ -3155,17 +3350,17 @@ function FeedBannerAdView({
|
|
|
3155
3350
|
ctaTextColor,
|
|
3156
3351
|
ctaBackgroundColor,
|
|
3157
3352
|
adClearanceText,
|
|
3158
|
-
colors,
|
|
3353
|
+
colors: colors4,
|
|
3159
3354
|
isAdBadgeEnabled,
|
|
3160
3355
|
paddingStyle,
|
|
3161
3356
|
onPress
|
|
3162
3357
|
}) {
|
|
3163
|
-
const scale = (0,
|
|
3358
|
+
const scale = (0, import_react28.useRef)(new import_react_native44.Animated.Value(1)).current;
|
|
3164
3359
|
const animateScale = (toValue) => {
|
|
3165
|
-
|
|
3360
|
+
import_react_native44.Animated.timing(scale, {
|
|
3166
3361
|
toValue,
|
|
3167
3362
|
duration: 100,
|
|
3168
|
-
easing:
|
|
3363
|
+
easing: import_react_native44.Easing.inOut(import_react_native44.Easing.ease),
|
|
3169
3364
|
useNativeDriver: true
|
|
3170
3365
|
}).start();
|
|
3171
3366
|
};
|
|
@@ -3177,90 +3372,90 @@ function FeedBannerAdView({
|
|
|
3177
3372
|
};
|
|
3178
3373
|
const resolvedCtaBackground = ctaBackgroundColor ?? "#3081F9";
|
|
3179
3374
|
const resolvedCtaTextColor = ctaTextColor ?? "#ffffff";
|
|
3180
|
-
return /* @__PURE__ */ (0,
|
|
3181
|
-
|
|
3375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3376
|
+
import_react_native44.Pressable,
|
|
3182
3377
|
{
|
|
3183
3378
|
accessibilityRole: "button",
|
|
3184
3379
|
onPress: () => onPress(null),
|
|
3185
3380
|
onPressIn: handlePressIn,
|
|
3186
3381
|
onPressOut: handlePressOut,
|
|
3187
3382
|
style: styles.pressable,
|
|
3188
|
-
children: /* @__PURE__ */ (0,
|
|
3189
|
-
/* @__PURE__ */ (0,
|
|
3190
|
-
/* @__PURE__ */ (0,
|
|
3191
|
-
/* @__PURE__ */ (0,
|
|
3192
|
-
|
|
3383
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.Animated.View, { style: [styles.container, paddingStyle, { transform: [{ scale }] }], children: [
|
|
3384
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.profileContainer, children: [
|
|
3385
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.brandArea, children: [
|
|
3386
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3387
|
+
import_react_native44.Pressable,
|
|
3193
3388
|
{
|
|
3194
3389
|
accessibilityRole: "button",
|
|
3195
3390
|
onPress: () => onPress("202"),
|
|
3196
3391
|
onPressIn: handlePressIn,
|
|
3197
3392
|
onPressOut: handlePressOut,
|
|
3198
3393
|
style: styles.logoContainer,
|
|
3199
|
-
children: /* @__PURE__ */ (0,
|
|
3200
|
-
brandLogoUri ? /* @__PURE__ */ (0,
|
|
3201
|
-
/* @__PURE__ */ (0,
|
|
3394
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: [styles.logoWrapper, { backgroundColor: colors4.brandLogoBg }], children: [
|
|
3395
|
+
brandLogoUri ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Image, { source: { uri: brandLogoUri }, style: styles.logoImage, resizeMode: "cover" }) : null,
|
|
3396
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.View, { style: [styles.logoOverlay, { borderColor: colors4.brandLogoBorder }] })
|
|
3202
3397
|
] })
|
|
3203
3398
|
}
|
|
3204
3399
|
),
|
|
3205
|
-
/* @__PURE__ */ (0,
|
|
3206
|
-
/* @__PURE__ */ (0,
|
|
3207
|
-
|
|
3400
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.brandTextContainer, children: [
|
|
3401
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3402
|
+
import_react_native44.Pressable,
|
|
3208
3403
|
{
|
|
3209
3404
|
accessibilityRole: "button",
|
|
3210
3405
|
onPress: () => onPress("103"),
|
|
3211
3406
|
onPressIn: handlePressIn,
|
|
3212
3407
|
onPressOut: handlePressOut,
|
|
3213
|
-
children: /* @__PURE__ */ (0,
|
|
3214
|
-
|
|
3408
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3409
|
+
import_react_native44.Text,
|
|
3215
3410
|
{
|
|
3216
3411
|
allowFontScaling: false,
|
|
3217
3412
|
numberOfLines: 1,
|
|
3218
|
-
style: [styles.brandName, { color:
|
|
3413
|
+
style: [styles.brandName, { color: colors4.brandName }],
|
|
3219
3414
|
children: brandName
|
|
3220
3415
|
}
|
|
3221
3416
|
)
|
|
3222
3417
|
}
|
|
3223
3418
|
),
|
|
3224
|
-
isAdBadgeEnabled ? /* @__PURE__ */ (0,
|
|
3419
|
+
isAdBadgeEnabled ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, numberOfLines: 1, style: [styles.adBadge, { color: colors4.adBadge }], children: "\uAD11\uACE0" }) : null
|
|
3225
3420
|
] })
|
|
3226
3421
|
] }),
|
|
3227
|
-
/* @__PURE__ */ (0,
|
|
3228
|
-
/* @__PURE__ */ (0,
|
|
3229
|
-
|
|
3422
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.textArea, children: [
|
|
3423
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3424
|
+
import_react_native44.Pressable,
|
|
3230
3425
|
{
|
|
3231
3426
|
accessibilityRole: "button",
|
|
3232
3427
|
onPress: () => onPress("101"),
|
|
3233
3428
|
onPressIn: handlePressIn,
|
|
3234
3429
|
onPressOut: handlePressOut,
|
|
3235
|
-
children: /* @__PURE__ */ (0,
|
|
3430
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, style: [styles.title, { color: colors4.title }], children: title })
|
|
3236
3431
|
}
|
|
3237
3432
|
),
|
|
3238
|
-
/* @__PURE__ */ (0,
|
|
3239
|
-
|
|
3433
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3434
|
+
import_react_native44.Pressable,
|
|
3240
3435
|
{
|
|
3241
3436
|
accessibilityRole: "button",
|
|
3242
3437
|
onPress: () => onPress("102"),
|
|
3243
3438
|
onPressIn: handlePressIn,
|
|
3244
3439
|
onPressOut: handlePressOut,
|
|
3245
|
-
children: /* @__PURE__ */ (0,
|
|
3440
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, style: [styles.subtitle, { color: colors4.subtitle }], children: subtitle })
|
|
3246
3441
|
}
|
|
3247
3442
|
)
|
|
3248
3443
|
] })
|
|
3249
3444
|
] }),
|
|
3250
|
-
/* @__PURE__ */ (0,
|
|
3251
|
-
/* @__PURE__ */ (0,
|
|
3252
|
-
|
|
3445
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.card, children: [
|
|
3446
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3447
|
+
import_react_native44.Pressable,
|
|
3253
3448
|
{
|
|
3254
3449
|
accessibilityRole: "button",
|
|
3255
3450
|
onPress: () => onPress("201"),
|
|
3256
3451
|
onPressIn: handlePressIn,
|
|
3257
3452
|
onPressOut: handlePressOut,
|
|
3258
3453
|
style: styles.imageButton,
|
|
3259
|
-
children: /* @__PURE__ */ (0,
|
|
3454
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.View, { style: styles.imageContainer, children: mainImageUri ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Image, { source: { uri: mainImageUri }, style: styles.mainImage, resizeMode: "cover" }) : null })
|
|
3260
3455
|
}
|
|
3261
3456
|
),
|
|
3262
|
-
/* @__PURE__ */ (0,
|
|
3263
|
-
|
|
3457
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
3458
|
+
import_react_native44.Pressable,
|
|
3264
3459
|
{
|
|
3265
3460
|
accessibilityRole: "button",
|
|
3266
3461
|
onPress: () => onPress("0"),
|
|
@@ -3268,19 +3463,19 @@ function FeedBannerAdView({
|
|
|
3268
3463
|
onPressOut: handlePressOut,
|
|
3269
3464
|
style: [styles.cta, { backgroundColor: resolvedCtaBackground }],
|
|
3270
3465
|
children: [
|
|
3271
|
-
/* @__PURE__ */ (0,
|
|
3272
|
-
/* @__PURE__ */ (0,
|
|
3466
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, style: [styles.ctaText, { color: resolvedCtaTextColor }], children: ctaText }),
|
|
3467
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native_svg2.Svg, { width: 20, height: 20, viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native_svg2.Path, { d: ARROW_PATH, fill: resolvedCtaTextColor }) })
|
|
3273
3468
|
]
|
|
3274
3469
|
}
|
|
3275
3470
|
),
|
|
3276
|
-
/* @__PURE__ */ (0,
|
|
3471
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.View, { style: [styles.cardOverlay, { borderColor: colors4.imageOverlayBorder }] })
|
|
3277
3472
|
] }),
|
|
3278
|
-
adClearanceText ? /* @__PURE__ */ (0,
|
|
3473
|
+
adClearanceText ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, style: [styles.adClearance, { color: colors4.adClearance }], children: adClearanceText }) : null
|
|
3279
3474
|
] })
|
|
3280
3475
|
}
|
|
3281
3476
|
);
|
|
3282
3477
|
}
|
|
3283
|
-
var styles =
|
|
3478
|
+
var styles = import_react_native44.StyleSheet.create({
|
|
3284
3479
|
pressable: {
|
|
3285
3480
|
width: "100%"
|
|
3286
3481
|
},
|
|
@@ -3319,7 +3514,7 @@ var styles = import_react_native39.StyleSheet.create({
|
|
|
3319
3514
|
borderRadius: 18
|
|
3320
3515
|
},
|
|
3321
3516
|
logoOverlay: {
|
|
3322
|
-
...
|
|
3517
|
+
...import_react_native44.StyleSheet.absoluteFillObject,
|
|
3323
3518
|
borderWidth: 1,
|
|
3324
3519
|
borderRadius: 18
|
|
3325
3520
|
},
|
|
@@ -3382,7 +3577,7 @@ var styles = import_react_native39.StyleSheet.create({
|
|
|
3382
3577
|
lineHeight: 22.5
|
|
3383
3578
|
},
|
|
3384
3579
|
cardOverlay: {
|
|
3385
|
-
...
|
|
3580
|
+
...import_react_native44.StyleSheet.absoluteFillObject,
|
|
3386
3581
|
borderWidth: 2,
|
|
3387
3582
|
borderRadius: 12,
|
|
3388
3583
|
pointerEvents: "none"
|
|
@@ -3395,10 +3590,10 @@ var styles = import_react_native39.StyleSheet.create({
|
|
|
3395
3590
|
});
|
|
3396
3591
|
|
|
3397
3592
|
// src/ads/inlineAd/ui/ListBannerAdView.tsx
|
|
3398
|
-
var
|
|
3399
|
-
var
|
|
3400
|
-
var
|
|
3401
|
-
var
|
|
3593
|
+
var import_react_native_svg3 = require("@granite-js/native/react-native-svg");
|
|
3594
|
+
var import_react29 = require("react");
|
|
3595
|
+
var import_react_native45 = require("react-native");
|
|
3596
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
3402
3597
|
var SQUIRCLE_PATH = "M0 17.352C0 3.564 3.564 0 17.352 0H18.648C32.436 0 36 3.564 36 17.352V18.648C36 32.436 32.436 36 18.648 36H17.352C3.564 36 0 32.436 0 18.648V17.352Z";
|
|
3403
3598
|
function ListBannerAdView({
|
|
3404
3599
|
title,
|
|
@@ -3407,16 +3602,16 @@ function ListBannerAdView({
|
|
|
3407
3602
|
adClearanceFontSize,
|
|
3408
3603
|
imageUri,
|
|
3409
3604
|
paddingStyle,
|
|
3410
|
-
colors,
|
|
3605
|
+
colors: colors4,
|
|
3411
3606
|
onPress
|
|
3412
3607
|
}) {
|
|
3413
|
-
const scale = (0,
|
|
3414
|
-
const clipIdRef = (0,
|
|
3608
|
+
const scale = (0, import_react29.useRef)(new import_react_native45.Animated.Value(1)).current;
|
|
3609
|
+
const clipIdRef = (0, import_react29.useRef)(`clip-${Math.random().toString(36).slice(2)}`);
|
|
3415
3610
|
const animateScale = (toValue) => {
|
|
3416
|
-
|
|
3611
|
+
import_react_native45.Animated.timing(scale, {
|
|
3417
3612
|
toValue,
|
|
3418
3613
|
duration: 100,
|
|
3419
|
-
easing:
|
|
3614
|
+
easing: import_react_native45.Easing.inOut(import_react_native45.Easing.ease),
|
|
3420
3615
|
useNativeDriver: true
|
|
3421
3616
|
}).start();
|
|
3422
3617
|
};
|
|
@@ -3426,29 +3621,29 @@ function ListBannerAdView({
|
|
|
3426
3621
|
const handlePressOut = () => {
|
|
3427
3622
|
animateScale(1);
|
|
3428
3623
|
};
|
|
3429
|
-
return /* @__PURE__ */ (0,
|
|
3430
|
-
|
|
3624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3625
|
+
import_react_native45.Pressable,
|
|
3431
3626
|
{
|
|
3432
3627
|
accessibilityRole: "button",
|
|
3433
3628
|
onPress: () => onPress(null),
|
|
3434
3629
|
onPressIn: handlePressIn,
|
|
3435
3630
|
onPressOut: handlePressOut,
|
|
3436
3631
|
style: styles2.pressable,
|
|
3437
|
-
children: /* @__PURE__ */ (0,
|
|
3438
|
-
/* @__PURE__ */ (0,
|
|
3439
|
-
/* @__PURE__ */ (0,
|
|
3440
|
-
|
|
3632
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native45.Animated.View, { style: [styles2.container, paddingStyle, { transform: [{ scale }] }], children: [
|
|
3633
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native45.View, { style: styles2.titleRow, children: [
|
|
3634
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3635
|
+
import_react_native45.Pressable,
|
|
3441
3636
|
{
|
|
3442
3637
|
accessibilityRole: "button",
|
|
3443
3638
|
onPress: () => onPress("202"),
|
|
3444
3639
|
onPressIn: handlePressIn,
|
|
3445
3640
|
onPressOut: handlePressOut,
|
|
3446
3641
|
style: styles2.iconWrapper,
|
|
3447
|
-
children: /* @__PURE__ */ (0,
|
|
3448
|
-
/* @__PURE__ */ (0,
|
|
3449
|
-
/* @__PURE__ */ (0,
|
|
3450
|
-
imageUri ? /* @__PURE__ */ (0,
|
|
3451
|
-
|
|
3642
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native_svg3.Svg, { width: 36, height: 36, viewBox: "0 0 36 36", children: [
|
|
3643
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg3.Defs, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg3.ClipPath, { id: clipIdRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg3.Path, { d: SQUIRCLE_PATH }) }) }),
|
|
3644
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg3.Path, { d: SQUIRCLE_PATH, fill: colors4.iconBg }),
|
|
3645
|
+
imageUri ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3646
|
+
import_react_native_svg3.Image,
|
|
3452
3647
|
{
|
|
3453
3648
|
href: { uri: imageUri },
|
|
3454
3649
|
width: 36,
|
|
@@ -3457,12 +3652,12 @@ function ListBannerAdView({
|
|
|
3457
3652
|
clipPath: `url(#${clipIdRef.current})`
|
|
3458
3653
|
}
|
|
3459
3654
|
) : null,
|
|
3460
|
-
/* @__PURE__ */ (0,
|
|
3461
|
-
|
|
3655
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3656
|
+
import_react_native_svg3.Path,
|
|
3462
3657
|
{
|
|
3463
3658
|
d: SQUIRCLE_PATH,
|
|
3464
3659
|
fill: "none",
|
|
3465
|
-
stroke:
|
|
3660
|
+
stroke: colors4.iconBorder,
|
|
3466
3661
|
strokeWidth: 2,
|
|
3467
3662
|
clipPath: `url(#${clipIdRef.current})`
|
|
3468
3663
|
}
|
|
@@ -3470,37 +3665,37 @@ function ListBannerAdView({
|
|
|
3470
3665
|
] })
|
|
3471
3666
|
}
|
|
3472
3667
|
),
|
|
3473
|
-
/* @__PURE__ */ (0,
|
|
3474
|
-
/* @__PURE__ */ (0,
|
|
3475
|
-
|
|
3668
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native45.View, { style: styles2.textWrapper, children: [
|
|
3669
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3670
|
+
import_react_native45.Pressable,
|
|
3476
3671
|
{
|
|
3477
3672
|
accessibilityRole: "button",
|
|
3478
3673
|
onPress: () => onPress("101"),
|
|
3479
3674
|
onPressIn: handlePressIn,
|
|
3480
3675
|
onPressOut: handlePressOut,
|
|
3481
|
-
children: /* @__PURE__ */ (0,
|
|
3676
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native45.Text, { allowFontScaling: false, style: [styles2.title, { color: colors4.title }], children: title })
|
|
3482
3677
|
}
|
|
3483
3678
|
),
|
|
3484
|
-
/* @__PURE__ */ (0,
|
|
3485
|
-
|
|
3679
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3680
|
+
import_react_native45.Pressable,
|
|
3486
3681
|
{
|
|
3487
3682
|
accessibilityRole: "button",
|
|
3488
3683
|
onPress: () => onPress("102"),
|
|
3489
3684
|
onPressIn: handlePressIn,
|
|
3490
3685
|
onPressOut: handlePressOut,
|
|
3491
|
-
children: /* @__PURE__ */ (0,
|
|
3686
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native45.Text, { allowFontScaling: false, style: [styles2.subtitle, { color: colors4.subtitle }], children: subtitle })
|
|
3492
3687
|
}
|
|
3493
3688
|
)
|
|
3494
3689
|
] })
|
|
3495
3690
|
] }),
|
|
3496
|
-
adClearanceText ? /* @__PURE__ */ (0,
|
|
3497
|
-
|
|
3691
|
+
adClearanceText ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3692
|
+
import_react_native45.Text,
|
|
3498
3693
|
{
|
|
3499
3694
|
allowFontScaling: false,
|
|
3500
3695
|
style: [
|
|
3501
3696
|
styles2.adClearance,
|
|
3502
3697
|
{
|
|
3503
|
-
color:
|
|
3698
|
+
color: colors4.adClearance,
|
|
3504
3699
|
fontSize: adClearanceFontSize,
|
|
3505
3700
|
lineHeight: adClearanceFontSize * 1.2
|
|
3506
3701
|
}
|
|
@@ -3512,7 +3707,7 @@ function ListBannerAdView({
|
|
|
3512
3707
|
}
|
|
3513
3708
|
);
|
|
3514
3709
|
}
|
|
3515
|
-
var styles2 =
|
|
3710
|
+
var styles2 = import_react_native45.StyleSheet.create({
|
|
3516
3711
|
pressable: {
|
|
3517
3712
|
width: "100%"
|
|
3518
3713
|
},
|
|
@@ -3631,7 +3826,7 @@ function buildNoFillPayload(slotId, adGroupId) {
|
|
|
3631
3826
|
}
|
|
3632
3827
|
|
|
3633
3828
|
// src/ads/inlineAd/InlineAd.tsx
|
|
3634
|
-
var
|
|
3829
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
3635
3830
|
var themePalette = {
|
|
3636
3831
|
light: {
|
|
3637
3832
|
title: "#4e5968",
|
|
@@ -3719,21 +3914,21 @@ function InlineAd(props) {
|
|
|
3719
3914
|
onAdFailedToRender,
|
|
3720
3915
|
onNoFill
|
|
3721
3916
|
} = props;
|
|
3722
|
-
const slotIdRef = (0,
|
|
3723
|
-
const [ad, setAd] = (0,
|
|
3724
|
-
const [isAdBadgeEnabled, setIsAdBadgeEnabled] = (0,
|
|
3725
|
-
const eventTrackerRef = (0,
|
|
3726
|
-
const eventPayloadRef = (0,
|
|
3727
|
-
const hasRenderedRef = (0,
|
|
3728
|
-
const hasLoggedImp1pxRef = (0,
|
|
3729
|
-
const hasLoggedImp100pRef = (0,
|
|
3730
|
-
const hasNotifiedViewableRef = (0,
|
|
3731
|
-
const viewableTimerRef = (0,
|
|
3732
|
-
const refetchIntervalMsRef = (0,
|
|
3733
|
-
const lastImp1pxAtRef = (0,
|
|
3734
|
-
const loadingRef = (0,
|
|
3735
|
-
const loadRef = (0,
|
|
3736
|
-
const callbacksRef = (0,
|
|
3917
|
+
const slotIdRef = (0, import_react30.useRef)(createSlotId());
|
|
3918
|
+
const [ad, setAd] = (0, import_react30.useState)(null);
|
|
3919
|
+
const [isAdBadgeEnabled, setIsAdBadgeEnabled] = (0, import_react30.useState)(true);
|
|
3920
|
+
const eventTrackerRef = (0, import_react30.useRef)(null);
|
|
3921
|
+
const eventPayloadRef = (0, import_react30.useRef)(null);
|
|
3922
|
+
const hasRenderedRef = (0, import_react30.useRef)(false);
|
|
3923
|
+
const hasLoggedImp1pxRef = (0, import_react30.useRef)(false);
|
|
3924
|
+
const hasLoggedImp100pRef = (0, import_react30.useRef)(false);
|
|
3925
|
+
const hasNotifiedViewableRef = (0, import_react30.useRef)(false);
|
|
3926
|
+
const viewableTimerRef = (0, import_react30.useRef)(null);
|
|
3927
|
+
const refetchIntervalMsRef = (0, import_react30.useRef)(null);
|
|
3928
|
+
const lastImp1pxAtRef = (0, import_react30.useRef)(null);
|
|
3929
|
+
const loadingRef = (0, import_react30.useRef)(false);
|
|
3930
|
+
const loadRef = (0, import_react30.useRef)(null);
|
|
3931
|
+
const callbacksRef = (0, import_react30.useRef)({
|
|
3737
3932
|
onAdRendered,
|
|
3738
3933
|
onAdViewable,
|
|
3739
3934
|
onAdClicked,
|
|
@@ -3741,13 +3936,13 @@ function InlineAd(props) {
|
|
|
3741
3936
|
onAdFailedToRender,
|
|
3742
3937
|
onNoFill
|
|
3743
3938
|
});
|
|
3744
|
-
const isMountedRef = (0,
|
|
3745
|
-
const colorScheme = (0,
|
|
3939
|
+
const isMountedRef = (0, import_react30.useRef)(false);
|
|
3940
|
+
const colorScheme = (0, import_react_native47.useColorScheme)();
|
|
3746
3941
|
const selectedTheme = theme ?? DEFAULT_INLINE_AD_THEME;
|
|
3747
3942
|
const resolvedTheme = selectedTheme === "auto" ? colorScheme === "dark" ? "dark" : "light" : selectedTheme;
|
|
3748
3943
|
const resolvedTone = tone ?? DEFAULT_INLINE_AD_TONE;
|
|
3749
3944
|
const resolvedVariant = variant ?? DEFAULT_INLINE_AD_VARIANT;
|
|
3750
|
-
const
|
|
3945
|
+
const colors4 = themePalette[resolvedTheme];
|
|
3751
3946
|
const feedColors = feedThemePalette[resolvedTheme];
|
|
3752
3947
|
const backgroundColor = resolvedTone === "grey" ? resolvedTheme === "dark" ? "#101013" : "#f2f4f7" : resolvedTheme === "dark" ? "#17171c" : "#ffffff";
|
|
3753
3948
|
callbacksRef.current = {
|
|
@@ -3758,7 +3953,7 @@ function InlineAd(props) {
|
|
|
3758
3953
|
onAdFailedToRender,
|
|
3759
3954
|
onNoFill
|
|
3760
3955
|
};
|
|
3761
|
-
(0,
|
|
3956
|
+
(0, import_react30.useEffect)(() => {
|
|
3762
3957
|
isMountedRef.current = true;
|
|
3763
3958
|
return () => {
|
|
3764
3959
|
isMountedRef.current = false;
|
|
@@ -3768,7 +3963,7 @@ function InlineAd(props) {
|
|
|
3768
3963
|
}
|
|
3769
3964
|
};
|
|
3770
3965
|
}, []);
|
|
3771
|
-
(0,
|
|
3966
|
+
(0, import_react30.useEffect)(() => {
|
|
3772
3967
|
const normalizedAdGroupId = normalizeAdGroupId(adGroupId);
|
|
3773
3968
|
const loadAdRequest = () => {
|
|
3774
3969
|
if (loadingRef.current) {
|
|
@@ -3840,7 +4035,7 @@ function InlineAd(props) {
|
|
|
3840
4035
|
loadRef.current = null;
|
|
3841
4036
|
};
|
|
3842
4037
|
}, [adGroupId]);
|
|
3843
|
-
(0,
|
|
4038
|
+
(0, import_react_native46.useVisibilityChange)((documentVisibility) => {
|
|
3844
4039
|
if (documentVisibility !== "visible") {
|
|
3845
4040
|
return;
|
|
3846
4041
|
}
|
|
@@ -3853,7 +4048,7 @@ function InlineAd(props) {
|
|
|
3853
4048
|
loadRef.current?.();
|
|
3854
4049
|
}
|
|
3855
4050
|
});
|
|
3856
|
-
(0,
|
|
4051
|
+
(0, import_react30.useEffect)(() => {
|
|
3857
4052
|
if (!ad || hasRenderedRef.current) {
|
|
3858
4053
|
return;
|
|
3859
4054
|
}
|
|
@@ -3938,28 +4133,28 @@ function InlineAd(props) {
|
|
|
3938
4133
|
callbacksRef.current.onAdClicked?.(basePayload);
|
|
3939
4134
|
}
|
|
3940
4135
|
};
|
|
3941
|
-
return /* @__PURE__ */ (0,
|
|
3942
|
-
|
|
4136
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4137
|
+
import_react_native46.ImpressionArea,
|
|
3943
4138
|
{
|
|
3944
4139
|
style: styles3.impressionArea,
|
|
3945
4140
|
onImpressionStart: handleImpression1px,
|
|
3946
4141
|
areaThreshold: 0,
|
|
3947
4142
|
UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
|
|
3948
|
-
children: /* @__PURE__ */ (0,
|
|
3949
|
-
|
|
4143
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4144
|
+
import_react_native46.ImpressionArea,
|
|
3950
4145
|
{
|
|
3951
4146
|
onImpressionStart: handleImpression100p,
|
|
3952
4147
|
areaThreshold: 1,
|
|
3953
4148
|
UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
|
|
3954
|
-
children: /* @__PURE__ */ (0,
|
|
3955
|
-
|
|
4149
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4150
|
+
import_react_native46.ImpressionArea,
|
|
3956
4151
|
{
|
|
3957
4152
|
onImpressionStart: handleViewableStart,
|
|
3958
4153
|
onImpressionEnd: handleViewableEnd,
|
|
3959
4154
|
areaThreshold: 0.5,
|
|
3960
4155
|
UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
|
|
3961
|
-
children: /* @__PURE__ */ (0,
|
|
3962
|
-
isListBanner && listCreative ? /* @__PURE__ */ (0,
|
|
4156
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native47.View, { style: [styles3.wrapper, resolvedVariant === "card" && styles3.cardWrapper], children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native47.View, { style: [styles3.surface, { backgroundColor }, resolvedVariant === "card" && styles3.cardSurface], children: [
|
|
4157
|
+
isListBanner && listCreative ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3963
4158
|
ListBannerAdView,
|
|
3964
4159
|
{
|
|
3965
4160
|
title: listCreative.title,
|
|
@@ -3968,11 +4163,11 @@ function InlineAd(props) {
|
|
|
3968
4163
|
adClearanceFontSize,
|
|
3969
4164
|
imageUri,
|
|
3970
4165
|
paddingStyle,
|
|
3971
|
-
colors,
|
|
4166
|
+
colors: colors4,
|
|
3972
4167
|
onPress: handleClick
|
|
3973
4168
|
}
|
|
3974
4169
|
) : null,
|
|
3975
|
-
isFeedBanner && feedCreative ? /* @__PURE__ */ (0,
|
|
4170
|
+
isFeedBanner && feedCreative ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3976
4171
|
FeedBannerAdView,
|
|
3977
4172
|
{
|
|
3978
4173
|
brandName: feedCreative.brandName,
|
|
@@ -3999,7 +4194,7 @@ function InlineAd(props) {
|
|
|
3999
4194
|
impressionKey
|
|
4000
4195
|
);
|
|
4001
4196
|
}
|
|
4002
|
-
var styles3 =
|
|
4197
|
+
var styles3 = import_react_native47.StyleSheet.create({
|
|
4003
4198
|
impressionArea: {
|
|
4004
4199
|
width: "100%"
|
|
4005
4200
|
},
|