@apps-in-toss/framework 2.7.0 → 2.8.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 +581 -369
- package/dist/index.d.cts +17 -15
- package/dist/index.d.ts +17 -15
- package/dist/index.js +459 -247
- 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
|
|
|
@@ -1561,9 +1763,16 @@ function fetchTossAd(params) {
|
|
|
1561
1763
|
params.onError(createInvalidAdGroupIdError());
|
|
1562
1764
|
return noop;
|
|
1563
1765
|
}
|
|
1766
|
+
const wireHeaders = options.headers;
|
|
1564
1767
|
const unregisterCallbacks = import_native_modules12.INTERNAL__appBridgeHandler.invokeAppBridgeMethod(
|
|
1565
1768
|
"fetchTossAd",
|
|
1566
|
-
{
|
|
1769
|
+
{
|
|
1770
|
+
spaceUnitId: adGroupId,
|
|
1771
|
+
sessionId,
|
|
1772
|
+
sdkId: options.sdkId,
|
|
1773
|
+
availableStyleIds: options.availableStyleIds,
|
|
1774
|
+
...wireHeaders ? { headers: wireHeaders } : {}
|
|
1775
|
+
},
|
|
1567
1776
|
{
|
|
1568
1777
|
onSuccess: (response) => {
|
|
1569
1778
|
onEvent(response);
|
|
@@ -1596,10 +1805,10 @@ function generateRequestId() {
|
|
|
1596
1805
|
}
|
|
1597
1806
|
|
|
1598
1807
|
// src/ads/getReferrer.ts
|
|
1599
|
-
var
|
|
1808
|
+
var import_react_native32 = require("@granite-js/react-native");
|
|
1600
1809
|
function getReferrer() {
|
|
1601
1810
|
try {
|
|
1602
|
-
return new URL((0,
|
|
1811
|
+
return new URL((0, import_react_native32.getSchemeUri)()).searchParams.get("referrer");
|
|
1603
1812
|
} catch {
|
|
1604
1813
|
return null;
|
|
1605
1814
|
}
|
|
@@ -1609,10 +1818,10 @@ function getReferrer() {
|
|
|
1609
1818
|
var import_native_modules13 = require("@apps-in-toss/native-modules");
|
|
1610
1819
|
|
|
1611
1820
|
// src/ads/getIsDev.ts
|
|
1612
|
-
var
|
|
1821
|
+
var import_react_native33 = require("@granite-js/react-native");
|
|
1613
1822
|
function getIsDev() {
|
|
1614
1823
|
try {
|
|
1615
|
-
return new URL((0,
|
|
1824
|
+
return new URL((0, import_react_native33.getSchemeUri)()).searchParams.get("isDev") === "true";
|
|
1616
1825
|
} catch {
|
|
1617
1826
|
return false;
|
|
1618
1827
|
}
|
|
@@ -1680,8 +1889,11 @@ function generateLoadFullScreenAd(sdkId) {
|
|
|
1680
1889
|
}
|
|
1681
1890
|
};
|
|
1682
1891
|
if (!integratedAdIsSupported()) {
|
|
1892
|
+
const fallbackOptions = { ...normalizedParams.options };
|
|
1893
|
+
delete fallbackOptions.headers;
|
|
1683
1894
|
return import_native_modules14.GoogleAdMob.loadAppsInTossAdMob({
|
|
1684
1895
|
...normalizedParams,
|
|
1896
|
+
options: fallbackOptions,
|
|
1685
1897
|
onEvent: (event) => {
|
|
1686
1898
|
if (event.type === "loaded") {
|
|
1687
1899
|
const requestId = generateRequestId();
|
|
@@ -1718,9 +1930,16 @@ function generateLoadFullScreenAd(sdkId) {
|
|
|
1718
1930
|
const { onEvent, onError, options } = normalizedParams;
|
|
1719
1931
|
const { adGroupId } = options;
|
|
1720
1932
|
const referrer = getReferrer();
|
|
1933
|
+
const wireHeaders = options.headers;
|
|
1721
1934
|
const unregisterCallbacks = import_native_modules14.INTERNAL__appBridgeHandler.invokeAppBridgeMethod(
|
|
1722
1935
|
"loadTossAdOrAdmob",
|
|
1723
|
-
{
|
|
1936
|
+
{
|
|
1937
|
+
spaceUnitId: adGroupId,
|
|
1938
|
+
referrer,
|
|
1939
|
+
sessionId,
|
|
1940
|
+
sdkId,
|
|
1941
|
+
...wireHeaders ? { headers: wireHeaders } : {}
|
|
1942
|
+
},
|
|
1724
1943
|
{
|
|
1725
1944
|
onSuccess: () => {
|
|
1726
1945
|
onEvent({ type: "loaded" });
|
|
@@ -1889,10 +2108,10 @@ function showFullScreenAd(params) {
|
|
|
1889
2108
|
showFullScreenAd.isSupported = import_native_modules14.GoogleAdMob.showAppsInTossAdMob.isSupported;
|
|
1890
2109
|
|
|
1891
2110
|
// src/ads/tossAdEventLog.ts
|
|
1892
|
-
var
|
|
2111
|
+
var import_react_native34 = require("@granite-js/react-native");
|
|
1893
2112
|
async function tossAdEventLog(params) {
|
|
1894
2113
|
const referrer = getReferrer();
|
|
1895
|
-
const appName =
|
|
2114
|
+
const appName = import_react_native34.Granite.appName;
|
|
1896
2115
|
const eventLogParams = {
|
|
1897
2116
|
...params,
|
|
1898
2117
|
params: {
|
|
@@ -1905,7 +2124,7 @@ async function tossAdEventLog(params) {
|
|
|
1905
2124
|
}
|
|
1906
2125
|
|
|
1907
2126
|
// src/bridge-handler/useBridgeHandler.tsx
|
|
1908
|
-
var
|
|
2127
|
+
var import_react21 = require("react");
|
|
1909
2128
|
function serializeError(error) {
|
|
1910
2129
|
return JSON.stringify(error, (_, value) => {
|
|
1911
2130
|
if (value instanceof Error) {
|
|
@@ -1957,8 +2176,8 @@ function useBridgeHandler({
|
|
|
1957
2176
|
asyncHandlerMap,
|
|
1958
2177
|
eventListenerMap
|
|
1959
2178
|
}) {
|
|
1960
|
-
const ref = (0,
|
|
1961
|
-
const injectedJavaScript = (0,
|
|
2179
|
+
const ref = (0, import_react21.useRef)(null);
|
|
2180
|
+
const injectedJavaScript = (0, import_react21.useMemo)(
|
|
1962
2181
|
() => `window.__CONSTANT_HANDLER_MAP = ${JSON.stringify(
|
|
1963
2182
|
Object.entries(constantHandlerMap).reduce(
|
|
1964
2183
|
(acc, [key, value]) => {
|
|
@@ -1970,7 +2189,7 @@ function useBridgeHandler({
|
|
|
1970
2189
|
)};`,
|
|
1971
2190
|
[constantHandlerMap]
|
|
1972
2191
|
);
|
|
1973
|
-
(0,
|
|
2192
|
+
(0, import_react21.useEffect)(() => {
|
|
1974
2193
|
ref.current?.injectJavaScript(injectedJavaScript);
|
|
1975
2194
|
}, [injectedJavaScript]);
|
|
1976
2195
|
const createHandleOnEvent = (functionName, eventId) => (response) => {
|
|
@@ -1984,7 +2203,7 @@ function useBridgeHandler({
|
|
|
1984
2203
|
window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/onError/${eventId}', ${serializedError});
|
|
1985
2204
|
`);
|
|
1986
2205
|
};
|
|
1987
|
-
const $onMessage = (0,
|
|
2206
|
+
const $onMessage = (0, import_react21.useCallback)(
|
|
1988
2207
|
async (e) => {
|
|
1989
2208
|
onMessage?.(e);
|
|
1990
2209
|
const data = parseNativeEventData(e.nativeEvent.data);
|
|
@@ -2043,25 +2262,25 @@ function parseNativeEventData(data) {
|
|
|
2043
2262
|
}
|
|
2044
2263
|
|
|
2045
2264
|
// src/core/hooks/useSafeAreaInsetsEvent.tsx
|
|
2046
|
-
var
|
|
2047
|
-
var
|
|
2265
|
+
var import_react_native_safe_area_context2 = require("@granite-js/native/react-native-safe-area-context");
|
|
2266
|
+
var import_react22 = require("react");
|
|
2048
2267
|
function useSafeAreaInsetsEvent() {
|
|
2049
|
-
const insets = (0,
|
|
2050
|
-
(0,
|
|
2268
|
+
const insets = (0, import_react_native_safe_area_context2.useSafeAreaInsets)();
|
|
2269
|
+
(0, import_react22.useEffect)(() => {
|
|
2051
2270
|
safeAreaInsetsChange.emit(insets);
|
|
2052
2271
|
}, [insets]);
|
|
2053
|
-
(0,
|
|
2272
|
+
(0, import_react22.useEffect)(() => {
|
|
2054
2273
|
return () => safeAreaInsetsChange.clearSubscriptions();
|
|
2055
2274
|
}, []);
|
|
2056
2275
|
return safeAreaInsetsChange;
|
|
2057
2276
|
}
|
|
2058
2277
|
|
|
2059
2278
|
// src/core/hooks/useWebBackHandler.tsx
|
|
2060
|
-
var
|
|
2061
|
-
var
|
|
2279
|
+
var import_react_native35 = require("@granite-js/react-native");
|
|
2280
|
+
var import_react24 = require("react");
|
|
2062
2281
|
|
|
2063
2282
|
// src/hooks/useWebviewHistoryStack.tsx
|
|
2064
|
-
var
|
|
2283
|
+
var import_react23 = require("react");
|
|
2065
2284
|
var INITIAL_STATE = { stack: [], index: -1 };
|
|
2066
2285
|
function reducer(state, action) {
|
|
2067
2286
|
switch (action.type) {
|
|
@@ -2092,11 +2311,11 @@ function reducer(state, action) {
|
|
|
2092
2311
|
}
|
|
2093
2312
|
}
|
|
2094
2313
|
function useWebViewHistory() {
|
|
2095
|
-
const [state, dispatch] = (0,
|
|
2096
|
-
const onNavigationStateChange = (0,
|
|
2314
|
+
const [state, dispatch] = (0, import_react23.useReducer)(reducer, INITIAL_STATE);
|
|
2315
|
+
const onNavigationStateChange = (0, import_react23.useCallback)(({ url, canGoForward: canGoForward2 }) => {
|
|
2097
2316
|
dispatch({ type: "NAVIGATION_CHANGE", url, canGoForward: canGoForward2 });
|
|
2098
2317
|
}, []);
|
|
2099
|
-
const { canGoBack, canGoForward } = (0,
|
|
2318
|
+
const { canGoBack, canGoForward } = (0, import_react23.useMemo)(() => {
|
|
2100
2319
|
const canBack = state.index > 0;
|
|
2101
2320
|
const canFwd = state.index >= 0 && state.index < state.stack.length - 1;
|
|
2102
2321
|
return { canGoBack: canBack, canGoForward: canFwd };
|
|
@@ -2112,21 +2331,21 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
|
|
|
2112
2331
|
hasBackEvent: hasWebBackEvent,
|
|
2113
2332
|
addEventListener: addWebBackEventListener,
|
|
2114
2333
|
removeEventListener: removeWebBackEventListener
|
|
2115
|
-
} = (0,
|
|
2334
|
+
} = (0, import_react_native35.useBackEventState)();
|
|
2116
2335
|
const logging = useNavigationBarLogging();
|
|
2117
|
-
const addEventListener = (0,
|
|
2336
|
+
const addEventListener = (0, import_react24.useCallback)(
|
|
2118
2337
|
(handler) => {
|
|
2119
2338
|
addWebBackEventListener(handler);
|
|
2120
2339
|
},
|
|
2121
2340
|
[addWebBackEventListener]
|
|
2122
2341
|
);
|
|
2123
|
-
const removeEventListener = (0,
|
|
2342
|
+
const removeEventListener = (0, import_react24.useCallback)(
|
|
2124
2343
|
(handler) => {
|
|
2125
2344
|
removeWebBackEventListener(handler);
|
|
2126
2345
|
},
|
|
2127
2346
|
[removeWebBackEventListener]
|
|
2128
2347
|
);
|
|
2129
|
-
const handleWebBack = (0,
|
|
2348
|
+
const handleWebBack = (0, import_react24.useCallback)(async () => {
|
|
2130
2349
|
if (hasWebBackEvent) {
|
|
2131
2350
|
for (const handler of webBackHandlersRef) {
|
|
2132
2351
|
handler();
|
|
@@ -2136,10 +2355,10 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
|
|
|
2136
2355
|
if (hasHistory) {
|
|
2137
2356
|
webViewRef.current?.injectJavaScript("window.history.back();");
|
|
2138
2357
|
} else {
|
|
2139
|
-
(0,
|
|
2358
|
+
(0, import_react_native35.closeView)();
|
|
2140
2359
|
}
|
|
2141
2360
|
}, [hasHistory, hasWebBackEvent, webBackHandlersRef, logging, webViewRef]);
|
|
2142
|
-
const handleWebHome = (0,
|
|
2361
|
+
const handleWebHome = (0, import_react24.useCallback)(() => {
|
|
2143
2362
|
logging.homeButtonClick();
|
|
2144
2363
|
if (homeEvent.hasSubscriptions()) {
|
|
2145
2364
|
homeEvent.emit({});
|
|
@@ -2152,7 +2371,7 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
|
|
|
2152
2371
|
})();
|
|
2153
2372
|
`);
|
|
2154
2373
|
}, [hasWebBackEvent, webBackHandlersRef, logging, webViewInitialURL, webViewRef]);
|
|
2155
|
-
return (0,
|
|
2374
|
+
return (0, import_react24.useMemo)(
|
|
2156
2375
|
() => ({ addEventListener, removeEventListener, handleWebBack, handleWebHome, onNavigationStateChange }),
|
|
2157
2376
|
[addEventListener, removeEventListener, handleWebBack, handleWebHome, onNavigationStateChange]
|
|
2158
2377
|
);
|
|
@@ -2173,7 +2392,7 @@ function mergeRefs(...refs) {
|
|
|
2173
2392
|
|
|
2174
2393
|
// src/hooks/useCreateUserAgent.ts
|
|
2175
2394
|
var import_native_modules15 = require("@apps-in-toss/native-modules");
|
|
2176
|
-
var
|
|
2395
|
+
var import_react_native36 = require("react-native");
|
|
2177
2396
|
var FontA11yCategory = {
|
|
2178
2397
|
Large: "Large",
|
|
2179
2398
|
xLarge: "xLarge",
|
|
@@ -2308,7 +2527,7 @@ function useCreateUserAgent({
|
|
|
2308
2527
|
}) {
|
|
2309
2528
|
const platform = (0, import_native_modules15.getPlatformOS)();
|
|
2310
2529
|
const appVersion = (0, import_native_modules15.getTossAppVersion)();
|
|
2311
|
-
const { fontScale } = (0,
|
|
2530
|
+
const { fontScale } = (0, import_react_native36.useWindowDimensions)();
|
|
2312
2531
|
const platformString = platform === "ios" ? "iPhone" : "Android phone";
|
|
2313
2532
|
const fontA11y = mapFontScaleToCategory(fontScale, platform);
|
|
2314
2533
|
const normalizedFontScale = convertToAndroidStyleScale(fontScale, platform);
|
|
@@ -2330,12 +2549,12 @@ function useCreateUserAgent({
|
|
|
2330
2549
|
|
|
2331
2550
|
// src/hooks/useGeolocation.ts
|
|
2332
2551
|
var import_native_modules16 = require("@apps-in-toss/native-modules");
|
|
2333
|
-
var
|
|
2334
|
-
var
|
|
2552
|
+
var import_react_native37 = require("@granite-js/react-native");
|
|
2553
|
+
var import_react25 = require("react");
|
|
2335
2554
|
function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
|
|
2336
|
-
const isVisible = (0,
|
|
2337
|
-
const [location, setLocation] = (0,
|
|
2338
|
-
(0,
|
|
2555
|
+
const isVisible = (0, import_react_native37.useVisibility)();
|
|
2556
|
+
const [location, setLocation] = (0, import_react25.useState)(null);
|
|
2557
|
+
(0, import_react25.useEffect)(() => {
|
|
2339
2558
|
if (!isVisible) {
|
|
2340
2559
|
return;
|
|
2341
2560
|
}
|
|
@@ -2353,12 +2572,12 @@ function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
|
|
|
2353
2572
|
}
|
|
2354
2573
|
|
|
2355
2574
|
// src/hooks/useWaitForReturnNavigator.tsx
|
|
2356
|
-
var
|
|
2357
|
-
var
|
|
2575
|
+
var import_react_native38 = require("@granite-js/react-native");
|
|
2576
|
+
var import_react26 = require("react");
|
|
2358
2577
|
function useWaitForReturnNavigator() {
|
|
2359
|
-
const callbacks = (0,
|
|
2360
|
-
const navigation = (0,
|
|
2361
|
-
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)(
|
|
2362
2581
|
(route, params) => {
|
|
2363
2582
|
return new Promise((resolve) => {
|
|
2364
2583
|
callbacks.push(resolve);
|
|
@@ -2367,7 +2586,7 @@ function useWaitForReturnNavigator() {
|
|
|
2367
2586
|
},
|
|
2368
2587
|
[callbacks, navigation]
|
|
2369
2588
|
);
|
|
2370
|
-
const handleVisibilityChange = (0,
|
|
2589
|
+
const handleVisibilityChange = (0, import_react26.useCallback)(
|
|
2371
2590
|
(state) => {
|
|
2372
2591
|
if (state === "visible" && callbacks.length > 0) {
|
|
2373
2592
|
for (const callback of callbacks) {
|
|
@@ -2378,7 +2597,7 @@ function useWaitForReturnNavigator() {
|
|
|
2378
2597
|
},
|
|
2379
2598
|
[callbacks]
|
|
2380
2599
|
);
|
|
2381
|
-
(0,
|
|
2600
|
+
(0, import_react_native38.useVisibilityChange)(handleVisibilityChange);
|
|
2382
2601
|
return startNavigating;
|
|
2383
2602
|
}
|
|
2384
2603
|
|
|
@@ -2393,10 +2612,10 @@ function useTopNavigation() {
|
|
|
2393
2612
|
|
|
2394
2613
|
// src/hooks/useWebViewMemoryDebug.tsx
|
|
2395
2614
|
var import_native_modules17 = require("@apps-in-toss/native-modules");
|
|
2396
|
-
var
|
|
2397
|
-
var
|
|
2615
|
+
var import_react_native39 = require("@granite-js/react-native");
|
|
2616
|
+
var import_tds_react_native13 = require("@toss/tds-react-native");
|
|
2398
2617
|
function useHandleWebViewProcessDidTerminate(webViewRef) {
|
|
2399
|
-
const toast = (0,
|
|
2618
|
+
const toast = (0, import_tds_react_native13.useToast)();
|
|
2400
2619
|
return () => {
|
|
2401
2620
|
webViewDebugLog("AppsInTossWebViewProcessDidTerminate", {});
|
|
2402
2621
|
toast.open("\uBB38\uC81C\uAC00 \uC0DD\uACA8\uC11C \uBBF8\uB2C8\uC571\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD588\uC5B4\uC694.", {
|
|
@@ -2416,7 +2635,7 @@ function webViewDebugLog(logName, params) {
|
|
|
2416
2635
|
log_type: "debug",
|
|
2417
2636
|
params: {
|
|
2418
2637
|
...params,
|
|
2419
|
-
app_name:
|
|
2638
|
+
app_name: import_react_native39.Granite.appName,
|
|
2420
2639
|
deployment_id: global2.deploymentId
|
|
2421
2640
|
}
|
|
2422
2641
|
};
|
|
@@ -2428,7 +2647,7 @@ function webViewDebugLog(logName, params) {
|
|
|
2428
2647
|
}
|
|
2429
2648
|
|
|
2430
2649
|
// src/utils/log.ts
|
|
2431
|
-
var
|
|
2650
|
+
var import_react_native40 = require("@granite-js/react-native");
|
|
2432
2651
|
|
|
2433
2652
|
// src/utils/extractDateFromUUIDv7.ts
|
|
2434
2653
|
var extractDateFromUUIDv7 = (uuid) => {
|
|
@@ -2454,7 +2673,7 @@ var getGroupId = (url) => {
|
|
|
2454
2673
|
};
|
|
2455
2674
|
var getReferrer2 = () => {
|
|
2456
2675
|
try {
|
|
2457
|
-
const referrer = new URL((0,
|
|
2676
|
+
const referrer = new URL((0, import_react_native40.getSchemeUri)());
|
|
2458
2677
|
return referrer.searchParams.get("referrer");
|
|
2459
2678
|
} catch {
|
|
2460
2679
|
return "";
|
|
@@ -2468,7 +2687,7 @@ var trackScreen = (url, title) => {
|
|
|
2468
2687
|
search,
|
|
2469
2688
|
referrer: getReferrer2(),
|
|
2470
2689
|
document_title: title,
|
|
2471
|
-
app_name:
|
|
2690
|
+
app_name: import_react_native40.Granite.appName,
|
|
2472
2691
|
deployment_id: env.getDeploymentId(),
|
|
2473
2692
|
deployment_timestamp: extractDateFromUUIDv7(env.getDeploymentId()).getTime()
|
|
2474
2693
|
};
|
|
@@ -2495,17 +2714,17 @@ var trackScreen = (url, title) => {
|
|
|
2495
2714
|
};
|
|
2496
2715
|
|
|
2497
2716
|
// src/components/WebView.tsx
|
|
2498
|
-
var
|
|
2717
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2499
2718
|
var operationalEnvironment = appsInTossConstantBridges.getOperationalEnvironment();
|
|
2500
2719
|
var TYPES = ["partner", "external", "game"];
|
|
2501
2720
|
var WEBVIEW_TYPES = {
|
|
2502
2721
|
partner: PartnerWebView,
|
|
2503
|
-
external:
|
|
2722
|
+
external: import_tds_react_native14.ExternalWebViewScreen,
|
|
2504
2723
|
game: GameWebView
|
|
2505
2724
|
};
|
|
2506
2725
|
function mergeSchemeQueryParamsInto(url) {
|
|
2507
2726
|
const baseUrl = new URL(url);
|
|
2508
|
-
const schemeUrl = new URL((0,
|
|
2727
|
+
const schemeUrl = new URL((0, import_react_native41.getSchemeUri)());
|
|
2509
2728
|
const resultUrl = new URL(schemeUrl.pathname, baseUrl.origin);
|
|
2510
2729
|
for (const [key, value] of baseUrl.searchParams.entries()) {
|
|
2511
2730
|
resultUrl.searchParams.set(key, value);
|
|
@@ -2532,23 +2751,21 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2532
2751
|
if (!TYPES.includes(type)) {
|
|
2533
2752
|
throw new Error(`Invalid WebView type: '${type}'`);
|
|
2534
2753
|
}
|
|
2535
|
-
const webViewRef = (0,
|
|
2536
|
-
const url = (0,
|
|
2754
|
+
const webViewRef = (0, import_react27.useRef)(null);
|
|
2755
|
+
const url = (0, import_react27.useMemo)(() => getWebViewURL(local), [local]);
|
|
2537
2756
|
const webBackHandler = useWebBackHandler(url, webViewRef);
|
|
2538
|
-
const top = (0, import_private9.useSafeAreaTop)();
|
|
2539
|
-
const bottom = (0, import_private9.useSafeAreaBottom)();
|
|
2540
|
-
const insets = (0, import_react_native_safe_area_context4.useSafeAreaInsets)();
|
|
2541
2757
|
const global2 = getAppsInTossGlobals();
|
|
2758
|
+
const insets = (0, import_react_native_safe_area_context3.useSafeAreaInsets)();
|
|
2542
2759
|
const navigationBarContext = useNavigationBarContext();
|
|
2543
2760
|
const safeAreaInsetsEvent = useSafeAreaInsetsEvent();
|
|
2544
|
-
const [allowsBackForwardNavigationGestures, setAllowsBackForwardNavigationGestures] = (0,
|
|
2761
|
+
const [allowsBackForwardNavigationGestures, setAllowsBackForwardNavigationGestures] = (0, import_react27.useState)(
|
|
2545
2762
|
props.allowsBackForwardNavigationGestures
|
|
2546
2763
|
);
|
|
2547
2764
|
const handler = useBridgeHandler({
|
|
2548
2765
|
onMessage,
|
|
2549
2766
|
eventListenerMap: {
|
|
2550
2767
|
...appsInTossEventBridges,
|
|
2551
|
-
navigationAccessoryEvent: ({ onEvent, onError }) =>
|
|
2768
|
+
navigationAccessoryEvent: ({ onEvent, onError }) => import_tds_react_native14.tdsEvent.addEventListener("navigationAccessoryEvent", { onEvent, onError }),
|
|
2552
2769
|
backEvent: ({ onEvent }) => {
|
|
2553
2770
|
webBackHandler.addEventListener(onEvent);
|
|
2554
2771
|
return () => {
|
|
@@ -2576,12 +2793,7 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2576
2793
|
},
|
|
2577
2794
|
constantHandlerMap: {
|
|
2578
2795
|
...appsInTossConstantBridges,
|
|
2579
|
-
getSafeAreaInsets: () =>
|
|
2580
|
-
top,
|
|
2581
|
-
bottom,
|
|
2582
|
-
left: insets.left,
|
|
2583
|
-
right: insets.right
|
|
2584
|
-
}),
|
|
2796
|
+
getSafeAreaInsets: () => insets,
|
|
2585
2797
|
...Object.fromEntries(Object.entries(global2).map(([key, value]) => [key, () => value])),
|
|
2586
2798
|
getServerTime_isSupported: import_native_modules18.getServerTime.isSupported,
|
|
2587
2799
|
requestReview_isSupported: import_native_modules18.requestReview.isSupported,
|
|
@@ -2642,7 +2854,7 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2642
2854
|
}
|
|
2643
2855
|
}
|
|
2644
2856
|
});
|
|
2645
|
-
const headerPropForExternalWebView = (0,
|
|
2857
|
+
const headerPropForExternalWebView = (0, import_react27.useMemo)(() => {
|
|
2646
2858
|
const parsedNavigationBar = global2.navigationBar != null ? safeParseNavigationBar(global2.navigationBar) : null;
|
|
2647
2859
|
const initialAccessoryButton = parsedNavigationBar?.initialAccessoryButton;
|
|
2648
2860
|
const withBackButton = parsedNavigationBar?.withBackButton ?? true;
|
|
@@ -2663,16 +2875,16 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2663
2875
|
colorPreference: "light"
|
|
2664
2876
|
});
|
|
2665
2877
|
const refs = mergeRefs(handler.ref, webViewRef);
|
|
2666
|
-
(0,
|
|
2878
|
+
(0, import_react27.useEffect)(() => {
|
|
2667
2879
|
const callback = () => {
|
|
2668
2880
|
webBackHandler.handleWebBack();
|
|
2669
2881
|
return true;
|
|
2670
2882
|
};
|
|
2671
|
-
const subscription =
|
|
2883
|
+
const subscription = import_react_native42.BackHandler.addEventListener("hardwareBackPress", callback);
|
|
2672
2884
|
return () => subscription.remove();
|
|
2673
2885
|
}, [webBackHandler]);
|
|
2674
2886
|
const handleWebViewProcessDidTerminate = useHandleWebViewProcessDidTerminate(webViewRef);
|
|
2675
|
-
return /* @__PURE__ */ (0,
|
|
2887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2676
2888
|
BaseWebView,
|
|
2677
2889
|
{
|
|
2678
2890
|
ref: refs,
|
|
@@ -2695,14 +2907,14 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2695
2907
|
webBackHandler.onNavigationStateChange(event);
|
|
2696
2908
|
},
|
|
2697
2909
|
textZoom: 100,
|
|
2698
|
-
userAgent:
|
|
2910
|
+
userAgent: import_react_native42.Platform.OS === "ios" ? userAgent : void 0,
|
|
2699
2911
|
sharedCookiesEnabled: true,
|
|
2700
2912
|
webviewDebuggingEnabled: webViewDebuggingEnabled,
|
|
2701
2913
|
thirdPartyCookiesEnabled: true,
|
|
2702
2914
|
onMessage: handler.onMessage,
|
|
2703
2915
|
injectedJavaScript: import_user_scripts.afterDocumentLoad,
|
|
2704
2916
|
injectedJavaScriptBeforeContentLoaded: [handler.injectedJavaScript, import_user_scripts.beforeDocumentLoad].join("\n"),
|
|
2705
|
-
decelerationRate:
|
|
2917
|
+
decelerationRate: import_react_native42.Platform.OS === "ios" ? 1 : void 0,
|
|
2706
2918
|
allowsBackForwardNavigationGestures,
|
|
2707
2919
|
onShouldStartLoadWithRequest: (event) => {
|
|
2708
2920
|
try {
|
|
@@ -2710,7 +2922,7 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2710
2922
|
if (["https:", "http:"].includes(url2.protocol) || url2.href === "about:blank") {
|
|
2711
2923
|
return true;
|
|
2712
2924
|
} else {
|
|
2713
|
-
|
|
2925
|
+
import_react_native42.Linking.openURL(convertIntentURL(url2) ?? url2.href);
|
|
2714
2926
|
return false;
|
|
2715
2927
|
}
|
|
2716
2928
|
} catch (error) {
|
|
@@ -2735,15 +2947,15 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2735
2947
|
|
|
2736
2948
|
// src/index.ts
|
|
2737
2949
|
__reExport(src_exports, require("@apps-in-toss/analytics"), module.exports);
|
|
2738
|
-
var
|
|
2950
|
+
var import_private5 = require("@toss/tds-react-native/private");
|
|
2739
2951
|
__reExport(src_exports, require("@apps-in-toss/native-modules"), module.exports);
|
|
2740
2952
|
__reExport(src_exports, require("@apps-in-toss/types"), module.exports);
|
|
2741
2953
|
var import_types = require("@apps-in-toss/types");
|
|
2742
2954
|
|
|
2743
2955
|
// src/ads/inlineAd/InlineAd.tsx
|
|
2744
|
-
var
|
|
2745
|
-
var
|
|
2746
|
-
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");
|
|
2747
2959
|
|
|
2748
2960
|
// src/ads/inlineAd/constants.ts
|
|
2749
2961
|
var SDK_ID = "106";
|
|
@@ -3005,7 +3217,7 @@ async function loadAd(adGroupId) {
|
|
|
3005
3217
|
}
|
|
3006
3218
|
|
|
3007
3219
|
// src/ads/inlineAd/opener.ts
|
|
3008
|
-
var
|
|
3220
|
+
var import_react_native43 = require("@granite-js/react-native");
|
|
3009
3221
|
function isSafeUrl(url) {
|
|
3010
3222
|
try {
|
|
3011
3223
|
const parsed = new URL(url);
|
|
@@ -3037,7 +3249,7 @@ function openLandingUrl(url) {
|
|
|
3037
3249
|
return;
|
|
3038
3250
|
}
|
|
3039
3251
|
try {
|
|
3040
|
-
(0,
|
|
3252
|
+
(0, import_react_native43.openURL)(getWebSchemeOrUri(url));
|
|
3041
3253
|
} catch (error) {
|
|
3042
3254
|
console.error("[InlineAd] Failed to open landing URL:", error);
|
|
3043
3255
|
}
|
|
@@ -3123,10 +3335,10 @@ var EventTracker = class {
|
|
|
3123
3335
|
};
|
|
3124
3336
|
|
|
3125
3337
|
// src/ads/inlineAd/ui/FeedBannerAdView.tsx
|
|
3126
|
-
var
|
|
3127
|
-
var
|
|
3128
|
-
var
|
|
3129
|
-
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");
|
|
3130
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";
|
|
3131
3343
|
function FeedBannerAdView({
|
|
3132
3344
|
brandName,
|
|
@@ -3138,17 +3350,17 @@ function FeedBannerAdView({
|
|
|
3138
3350
|
ctaTextColor,
|
|
3139
3351
|
ctaBackgroundColor,
|
|
3140
3352
|
adClearanceText,
|
|
3141
|
-
colors,
|
|
3353
|
+
colors: colors4,
|
|
3142
3354
|
isAdBadgeEnabled,
|
|
3143
3355
|
paddingStyle,
|
|
3144
3356
|
onPress
|
|
3145
3357
|
}) {
|
|
3146
|
-
const scale = (0,
|
|
3358
|
+
const scale = (0, import_react28.useRef)(new import_react_native44.Animated.Value(1)).current;
|
|
3147
3359
|
const animateScale = (toValue) => {
|
|
3148
|
-
|
|
3360
|
+
import_react_native44.Animated.timing(scale, {
|
|
3149
3361
|
toValue,
|
|
3150
3362
|
duration: 100,
|
|
3151
|
-
easing:
|
|
3363
|
+
easing: import_react_native44.Easing.inOut(import_react_native44.Easing.ease),
|
|
3152
3364
|
useNativeDriver: true
|
|
3153
3365
|
}).start();
|
|
3154
3366
|
};
|
|
@@ -3160,90 +3372,90 @@ function FeedBannerAdView({
|
|
|
3160
3372
|
};
|
|
3161
3373
|
const resolvedCtaBackground = ctaBackgroundColor ?? "#3081F9";
|
|
3162
3374
|
const resolvedCtaTextColor = ctaTextColor ?? "#ffffff";
|
|
3163
|
-
return /* @__PURE__ */ (0,
|
|
3164
|
-
|
|
3375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3376
|
+
import_react_native44.Pressable,
|
|
3165
3377
|
{
|
|
3166
3378
|
accessibilityRole: "button",
|
|
3167
3379
|
onPress: () => onPress(null),
|
|
3168
3380
|
onPressIn: handlePressIn,
|
|
3169
3381
|
onPressOut: handlePressOut,
|
|
3170
3382
|
style: styles.pressable,
|
|
3171
|
-
children: /* @__PURE__ */ (0,
|
|
3172
|
-
/* @__PURE__ */ (0,
|
|
3173
|
-
/* @__PURE__ */ (0,
|
|
3174
|
-
/* @__PURE__ */ (0,
|
|
3175
|
-
|
|
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,
|
|
3176
3388
|
{
|
|
3177
3389
|
accessibilityRole: "button",
|
|
3178
3390
|
onPress: () => onPress("202"),
|
|
3179
3391
|
onPressIn: handlePressIn,
|
|
3180
3392
|
onPressOut: handlePressOut,
|
|
3181
3393
|
style: styles.logoContainer,
|
|
3182
|
-
children: /* @__PURE__ */ (0,
|
|
3183
|
-
brandLogoUri ? /* @__PURE__ */ (0,
|
|
3184
|
-
/* @__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 }] })
|
|
3185
3397
|
] })
|
|
3186
3398
|
}
|
|
3187
3399
|
),
|
|
3188
|
-
/* @__PURE__ */ (0,
|
|
3189
|
-
/* @__PURE__ */ (0,
|
|
3190
|
-
|
|
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,
|
|
3191
3403
|
{
|
|
3192
3404
|
accessibilityRole: "button",
|
|
3193
3405
|
onPress: () => onPress("103"),
|
|
3194
3406
|
onPressIn: handlePressIn,
|
|
3195
3407
|
onPressOut: handlePressOut,
|
|
3196
|
-
children: /* @__PURE__ */ (0,
|
|
3197
|
-
|
|
3408
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3409
|
+
import_react_native44.Text,
|
|
3198
3410
|
{
|
|
3199
3411
|
allowFontScaling: false,
|
|
3200
3412
|
numberOfLines: 1,
|
|
3201
|
-
style: [styles.brandName, { color:
|
|
3413
|
+
style: [styles.brandName, { color: colors4.brandName }],
|
|
3202
3414
|
children: brandName
|
|
3203
3415
|
}
|
|
3204
3416
|
)
|
|
3205
3417
|
}
|
|
3206
3418
|
),
|
|
3207
|
-
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
|
|
3208
3420
|
] })
|
|
3209
3421
|
] }),
|
|
3210
|
-
/* @__PURE__ */ (0,
|
|
3211
|
-
/* @__PURE__ */ (0,
|
|
3212
|
-
|
|
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,
|
|
3213
3425
|
{
|
|
3214
3426
|
accessibilityRole: "button",
|
|
3215
3427
|
onPress: () => onPress("101"),
|
|
3216
3428
|
onPressIn: handlePressIn,
|
|
3217
3429
|
onPressOut: handlePressOut,
|
|
3218
|
-
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 })
|
|
3219
3431
|
}
|
|
3220
3432
|
),
|
|
3221
|
-
/* @__PURE__ */ (0,
|
|
3222
|
-
|
|
3433
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3434
|
+
import_react_native44.Pressable,
|
|
3223
3435
|
{
|
|
3224
3436
|
accessibilityRole: "button",
|
|
3225
3437
|
onPress: () => onPress("102"),
|
|
3226
3438
|
onPressIn: handlePressIn,
|
|
3227
3439
|
onPressOut: handlePressOut,
|
|
3228
|
-
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 })
|
|
3229
3441
|
}
|
|
3230
3442
|
)
|
|
3231
3443
|
] })
|
|
3232
3444
|
] }),
|
|
3233
|
-
/* @__PURE__ */ (0,
|
|
3234
|
-
/* @__PURE__ */ (0,
|
|
3235
|
-
|
|
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,
|
|
3236
3448
|
{
|
|
3237
3449
|
accessibilityRole: "button",
|
|
3238
3450
|
onPress: () => onPress("201"),
|
|
3239
3451
|
onPressIn: handlePressIn,
|
|
3240
3452
|
onPressOut: handlePressOut,
|
|
3241
3453
|
style: styles.imageButton,
|
|
3242
|
-
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 })
|
|
3243
3455
|
}
|
|
3244
3456
|
),
|
|
3245
|
-
/* @__PURE__ */ (0,
|
|
3246
|
-
|
|
3457
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
3458
|
+
import_react_native44.Pressable,
|
|
3247
3459
|
{
|
|
3248
3460
|
accessibilityRole: "button",
|
|
3249
3461
|
onPress: () => onPress("0"),
|
|
@@ -3251,19 +3463,19 @@ function FeedBannerAdView({
|
|
|
3251
3463
|
onPressOut: handlePressOut,
|
|
3252
3464
|
style: [styles.cta, { backgroundColor: resolvedCtaBackground }],
|
|
3253
3465
|
children: [
|
|
3254
|
-
/* @__PURE__ */ (0,
|
|
3255
|
-
/* @__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 }) })
|
|
3256
3468
|
]
|
|
3257
3469
|
}
|
|
3258
3470
|
),
|
|
3259
|
-
/* @__PURE__ */ (0,
|
|
3471
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.View, { style: [styles.cardOverlay, { borderColor: colors4.imageOverlayBorder }] })
|
|
3260
3472
|
] }),
|
|
3261
|
-
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
|
|
3262
3474
|
] })
|
|
3263
3475
|
}
|
|
3264
3476
|
);
|
|
3265
3477
|
}
|
|
3266
|
-
var styles =
|
|
3478
|
+
var styles = import_react_native44.StyleSheet.create({
|
|
3267
3479
|
pressable: {
|
|
3268
3480
|
width: "100%"
|
|
3269
3481
|
},
|
|
@@ -3302,7 +3514,7 @@ var styles = import_react_native39.StyleSheet.create({
|
|
|
3302
3514
|
borderRadius: 18
|
|
3303
3515
|
},
|
|
3304
3516
|
logoOverlay: {
|
|
3305
|
-
...
|
|
3517
|
+
...import_react_native44.StyleSheet.absoluteFillObject,
|
|
3306
3518
|
borderWidth: 1,
|
|
3307
3519
|
borderRadius: 18
|
|
3308
3520
|
},
|
|
@@ -3365,7 +3577,7 @@ var styles = import_react_native39.StyleSheet.create({
|
|
|
3365
3577
|
lineHeight: 22.5
|
|
3366
3578
|
},
|
|
3367
3579
|
cardOverlay: {
|
|
3368
|
-
...
|
|
3580
|
+
...import_react_native44.StyleSheet.absoluteFillObject,
|
|
3369
3581
|
borderWidth: 2,
|
|
3370
3582
|
borderRadius: 12,
|
|
3371
3583
|
pointerEvents: "none"
|
|
@@ -3378,10 +3590,10 @@ var styles = import_react_native39.StyleSheet.create({
|
|
|
3378
3590
|
});
|
|
3379
3591
|
|
|
3380
3592
|
// src/ads/inlineAd/ui/ListBannerAdView.tsx
|
|
3381
|
-
var
|
|
3382
|
-
var
|
|
3383
|
-
var
|
|
3384
|
-
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");
|
|
3385
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";
|
|
3386
3598
|
function ListBannerAdView({
|
|
3387
3599
|
title,
|
|
@@ -3390,16 +3602,16 @@ function ListBannerAdView({
|
|
|
3390
3602
|
adClearanceFontSize,
|
|
3391
3603
|
imageUri,
|
|
3392
3604
|
paddingStyle,
|
|
3393
|
-
colors,
|
|
3605
|
+
colors: colors4,
|
|
3394
3606
|
onPress
|
|
3395
3607
|
}) {
|
|
3396
|
-
const scale = (0,
|
|
3397
|
-
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)}`);
|
|
3398
3610
|
const animateScale = (toValue) => {
|
|
3399
|
-
|
|
3611
|
+
import_react_native45.Animated.timing(scale, {
|
|
3400
3612
|
toValue,
|
|
3401
3613
|
duration: 100,
|
|
3402
|
-
easing:
|
|
3614
|
+
easing: import_react_native45.Easing.inOut(import_react_native45.Easing.ease),
|
|
3403
3615
|
useNativeDriver: true
|
|
3404
3616
|
}).start();
|
|
3405
3617
|
};
|
|
@@ -3409,29 +3621,29 @@ function ListBannerAdView({
|
|
|
3409
3621
|
const handlePressOut = () => {
|
|
3410
3622
|
animateScale(1);
|
|
3411
3623
|
};
|
|
3412
|
-
return /* @__PURE__ */ (0,
|
|
3413
|
-
|
|
3624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3625
|
+
import_react_native45.Pressable,
|
|
3414
3626
|
{
|
|
3415
3627
|
accessibilityRole: "button",
|
|
3416
3628
|
onPress: () => onPress(null),
|
|
3417
3629
|
onPressIn: handlePressIn,
|
|
3418
3630
|
onPressOut: handlePressOut,
|
|
3419
3631
|
style: styles2.pressable,
|
|
3420
|
-
children: /* @__PURE__ */ (0,
|
|
3421
|
-
/* @__PURE__ */ (0,
|
|
3422
|
-
/* @__PURE__ */ (0,
|
|
3423
|
-
|
|
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,
|
|
3424
3636
|
{
|
|
3425
3637
|
accessibilityRole: "button",
|
|
3426
3638
|
onPress: () => onPress("202"),
|
|
3427
3639
|
onPressIn: handlePressIn,
|
|
3428
3640
|
onPressOut: handlePressOut,
|
|
3429
3641
|
style: styles2.iconWrapper,
|
|
3430
|
-
children: /* @__PURE__ */ (0,
|
|
3431
|
-
/* @__PURE__ */ (0,
|
|
3432
|
-
/* @__PURE__ */ (0,
|
|
3433
|
-
imageUri ? /* @__PURE__ */ (0,
|
|
3434
|
-
|
|
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,
|
|
3435
3647
|
{
|
|
3436
3648
|
href: { uri: imageUri },
|
|
3437
3649
|
width: 36,
|
|
@@ -3440,12 +3652,12 @@ function ListBannerAdView({
|
|
|
3440
3652
|
clipPath: `url(#${clipIdRef.current})`
|
|
3441
3653
|
}
|
|
3442
3654
|
) : null,
|
|
3443
|
-
/* @__PURE__ */ (0,
|
|
3444
|
-
|
|
3655
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3656
|
+
import_react_native_svg3.Path,
|
|
3445
3657
|
{
|
|
3446
3658
|
d: SQUIRCLE_PATH,
|
|
3447
3659
|
fill: "none",
|
|
3448
|
-
stroke:
|
|
3660
|
+
stroke: colors4.iconBorder,
|
|
3449
3661
|
strokeWidth: 2,
|
|
3450
3662
|
clipPath: `url(#${clipIdRef.current})`
|
|
3451
3663
|
}
|
|
@@ -3453,37 +3665,37 @@ function ListBannerAdView({
|
|
|
3453
3665
|
] })
|
|
3454
3666
|
}
|
|
3455
3667
|
),
|
|
3456
|
-
/* @__PURE__ */ (0,
|
|
3457
|
-
/* @__PURE__ */ (0,
|
|
3458
|
-
|
|
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,
|
|
3459
3671
|
{
|
|
3460
3672
|
accessibilityRole: "button",
|
|
3461
3673
|
onPress: () => onPress("101"),
|
|
3462
3674
|
onPressIn: handlePressIn,
|
|
3463
3675
|
onPressOut: handlePressOut,
|
|
3464
|
-
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 })
|
|
3465
3677
|
}
|
|
3466
3678
|
),
|
|
3467
|
-
/* @__PURE__ */ (0,
|
|
3468
|
-
|
|
3679
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3680
|
+
import_react_native45.Pressable,
|
|
3469
3681
|
{
|
|
3470
3682
|
accessibilityRole: "button",
|
|
3471
3683
|
onPress: () => onPress("102"),
|
|
3472
3684
|
onPressIn: handlePressIn,
|
|
3473
3685
|
onPressOut: handlePressOut,
|
|
3474
|
-
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 })
|
|
3475
3687
|
}
|
|
3476
3688
|
)
|
|
3477
3689
|
] })
|
|
3478
3690
|
] }),
|
|
3479
|
-
adClearanceText ? /* @__PURE__ */ (0,
|
|
3480
|
-
|
|
3691
|
+
adClearanceText ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3692
|
+
import_react_native45.Text,
|
|
3481
3693
|
{
|
|
3482
3694
|
allowFontScaling: false,
|
|
3483
3695
|
style: [
|
|
3484
3696
|
styles2.adClearance,
|
|
3485
3697
|
{
|
|
3486
|
-
color:
|
|
3698
|
+
color: colors4.adClearance,
|
|
3487
3699
|
fontSize: adClearanceFontSize,
|
|
3488
3700
|
lineHeight: adClearanceFontSize * 1.2
|
|
3489
3701
|
}
|
|
@@ -3495,7 +3707,7 @@ function ListBannerAdView({
|
|
|
3495
3707
|
}
|
|
3496
3708
|
);
|
|
3497
3709
|
}
|
|
3498
|
-
var styles2 =
|
|
3710
|
+
var styles2 = import_react_native45.StyleSheet.create({
|
|
3499
3711
|
pressable: {
|
|
3500
3712
|
width: "100%"
|
|
3501
3713
|
},
|
|
@@ -3614,7 +3826,7 @@ function buildNoFillPayload(slotId, adGroupId) {
|
|
|
3614
3826
|
}
|
|
3615
3827
|
|
|
3616
3828
|
// src/ads/inlineAd/InlineAd.tsx
|
|
3617
|
-
var
|
|
3829
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
3618
3830
|
var themePalette = {
|
|
3619
3831
|
light: {
|
|
3620
3832
|
title: "#4e5968",
|
|
@@ -3702,21 +3914,21 @@ function InlineAd(props) {
|
|
|
3702
3914
|
onAdFailedToRender,
|
|
3703
3915
|
onNoFill
|
|
3704
3916
|
} = props;
|
|
3705
|
-
const slotIdRef = (0,
|
|
3706
|
-
const [ad, setAd] = (0,
|
|
3707
|
-
const [isAdBadgeEnabled, setIsAdBadgeEnabled] = (0,
|
|
3708
|
-
const eventTrackerRef = (0,
|
|
3709
|
-
const eventPayloadRef = (0,
|
|
3710
|
-
const hasRenderedRef = (0,
|
|
3711
|
-
const hasLoggedImp1pxRef = (0,
|
|
3712
|
-
const hasLoggedImp100pRef = (0,
|
|
3713
|
-
const hasNotifiedViewableRef = (0,
|
|
3714
|
-
const viewableTimerRef = (0,
|
|
3715
|
-
const refetchIntervalMsRef = (0,
|
|
3716
|
-
const lastImp1pxAtRef = (0,
|
|
3717
|
-
const loadingRef = (0,
|
|
3718
|
-
const loadRef = (0,
|
|
3719
|
-
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)({
|
|
3720
3932
|
onAdRendered,
|
|
3721
3933
|
onAdViewable,
|
|
3722
3934
|
onAdClicked,
|
|
@@ -3724,13 +3936,13 @@ function InlineAd(props) {
|
|
|
3724
3936
|
onAdFailedToRender,
|
|
3725
3937
|
onNoFill
|
|
3726
3938
|
});
|
|
3727
|
-
const isMountedRef = (0,
|
|
3728
|
-
const colorScheme = (0,
|
|
3939
|
+
const isMountedRef = (0, import_react30.useRef)(false);
|
|
3940
|
+
const colorScheme = (0, import_react_native47.useColorScheme)();
|
|
3729
3941
|
const selectedTheme = theme ?? DEFAULT_INLINE_AD_THEME;
|
|
3730
3942
|
const resolvedTheme = selectedTheme === "auto" ? colorScheme === "dark" ? "dark" : "light" : selectedTheme;
|
|
3731
3943
|
const resolvedTone = tone ?? DEFAULT_INLINE_AD_TONE;
|
|
3732
3944
|
const resolvedVariant = variant ?? DEFAULT_INLINE_AD_VARIANT;
|
|
3733
|
-
const
|
|
3945
|
+
const colors4 = themePalette[resolvedTheme];
|
|
3734
3946
|
const feedColors = feedThemePalette[resolvedTheme];
|
|
3735
3947
|
const backgroundColor = resolvedTone === "grey" ? resolvedTheme === "dark" ? "#101013" : "#f2f4f7" : resolvedTheme === "dark" ? "#17171c" : "#ffffff";
|
|
3736
3948
|
callbacksRef.current = {
|
|
@@ -3741,7 +3953,7 @@ function InlineAd(props) {
|
|
|
3741
3953
|
onAdFailedToRender,
|
|
3742
3954
|
onNoFill
|
|
3743
3955
|
};
|
|
3744
|
-
(0,
|
|
3956
|
+
(0, import_react30.useEffect)(() => {
|
|
3745
3957
|
isMountedRef.current = true;
|
|
3746
3958
|
return () => {
|
|
3747
3959
|
isMountedRef.current = false;
|
|
@@ -3751,7 +3963,7 @@ function InlineAd(props) {
|
|
|
3751
3963
|
}
|
|
3752
3964
|
};
|
|
3753
3965
|
}, []);
|
|
3754
|
-
(0,
|
|
3966
|
+
(0, import_react30.useEffect)(() => {
|
|
3755
3967
|
const normalizedAdGroupId = normalizeAdGroupId(adGroupId);
|
|
3756
3968
|
const loadAdRequest = () => {
|
|
3757
3969
|
if (loadingRef.current) {
|
|
@@ -3823,7 +4035,7 @@ function InlineAd(props) {
|
|
|
3823
4035
|
loadRef.current = null;
|
|
3824
4036
|
};
|
|
3825
4037
|
}, [adGroupId]);
|
|
3826
|
-
(0,
|
|
4038
|
+
(0, import_react_native46.useVisibilityChange)((documentVisibility) => {
|
|
3827
4039
|
if (documentVisibility !== "visible") {
|
|
3828
4040
|
return;
|
|
3829
4041
|
}
|
|
@@ -3836,7 +4048,7 @@ function InlineAd(props) {
|
|
|
3836
4048
|
loadRef.current?.();
|
|
3837
4049
|
}
|
|
3838
4050
|
});
|
|
3839
|
-
(0,
|
|
4051
|
+
(0, import_react30.useEffect)(() => {
|
|
3840
4052
|
if (!ad || hasRenderedRef.current) {
|
|
3841
4053
|
return;
|
|
3842
4054
|
}
|
|
@@ -3921,28 +4133,28 @@ function InlineAd(props) {
|
|
|
3921
4133
|
callbacksRef.current.onAdClicked?.(basePayload);
|
|
3922
4134
|
}
|
|
3923
4135
|
};
|
|
3924
|
-
return /* @__PURE__ */ (0,
|
|
3925
|
-
|
|
4136
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4137
|
+
import_react_native46.ImpressionArea,
|
|
3926
4138
|
{
|
|
3927
4139
|
style: styles3.impressionArea,
|
|
3928
4140
|
onImpressionStart: handleImpression1px,
|
|
3929
4141
|
areaThreshold: 0,
|
|
3930
4142
|
UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
|
|
3931
|
-
children: /* @__PURE__ */ (0,
|
|
3932
|
-
|
|
4143
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4144
|
+
import_react_native46.ImpressionArea,
|
|
3933
4145
|
{
|
|
3934
4146
|
onImpressionStart: handleImpression100p,
|
|
3935
4147
|
areaThreshold: 1,
|
|
3936
4148
|
UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
|
|
3937
|
-
children: /* @__PURE__ */ (0,
|
|
3938
|
-
|
|
4149
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4150
|
+
import_react_native46.ImpressionArea,
|
|
3939
4151
|
{
|
|
3940
4152
|
onImpressionStart: handleViewableStart,
|
|
3941
4153
|
onImpressionEnd: handleViewableEnd,
|
|
3942
4154
|
areaThreshold: 0.5,
|
|
3943
4155
|
UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
|
|
3944
|
-
children: /* @__PURE__ */ (0,
|
|
3945
|
-
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)(
|
|
3946
4158
|
ListBannerAdView,
|
|
3947
4159
|
{
|
|
3948
4160
|
title: listCreative.title,
|
|
@@ -3951,11 +4163,11 @@ function InlineAd(props) {
|
|
|
3951
4163
|
adClearanceFontSize,
|
|
3952
4164
|
imageUri,
|
|
3953
4165
|
paddingStyle,
|
|
3954
|
-
colors,
|
|
4166
|
+
colors: colors4,
|
|
3955
4167
|
onPress: handleClick
|
|
3956
4168
|
}
|
|
3957
4169
|
) : null,
|
|
3958
|
-
isFeedBanner && feedCreative ? /* @__PURE__ */ (0,
|
|
4170
|
+
isFeedBanner && feedCreative ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3959
4171
|
FeedBannerAdView,
|
|
3960
4172
|
{
|
|
3961
4173
|
brandName: feedCreative.brandName,
|
|
@@ -3982,7 +4194,7 @@ function InlineAd(props) {
|
|
|
3982
4194
|
impressionKey
|
|
3983
4195
|
);
|
|
3984
4196
|
}
|
|
3985
|
-
var styles3 =
|
|
4197
|
+
var styles3 = import_react_native47.StyleSheet.create({
|
|
3986
4198
|
impressionArea: {
|
|
3987
4199
|
width: "100%"
|
|
3988
4200
|
},
|