@agg-build/ui 1.0.1 → 1.1.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/{chunk-5ES2VJHO.mjs → chunk-7JEJIGG4.mjs} +162 -253
- package/dist/{chunk-BYMLPLEZ.mjs → chunk-F3SU7BRE.mjs} +10 -10
- package/dist/{chunk-WLXYCBZV.mjs → chunk-IT2Y62MG.mjs} +31 -35
- package/dist/{chunk-43K4PFBC.mjs → chunk-JDYZJKTE.mjs} +2 -2
- package/dist/{chunk-HD6HBTK2.mjs → chunk-KDMNFHPL.mjs} +369 -19
- package/dist/{chunk-LPNZOX3E.mjs → chunk-OHEZGKFM.mjs} +443 -884
- package/dist/{chunk-YZNO6IUD.mjs → chunk-R6DETAZ6.mjs} +1343 -1173
- package/dist/events.js +1886 -1545
- package/dist/events.mjs +3 -3
- package/dist/index.js +3748 -3707
- package/dist/index.mjs +191 -118
- package/dist/modals.js +1042 -943
- package/dist/modals.mjs +3 -3
- package/dist/pages.js +2822 -2864
- package/dist/pages.mjs +6 -6
- package/dist/primitives.js +1322 -1166
- package/dist/primitives.mjs +9 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/trading.js +3770 -3718
- package/dist/trading.mjs +10 -12
- package/dist/types/events/item-details/settlement-summary.d.mts +6 -2
- package/dist/types/events/item-details/settlement-summary.d.ts +6 -2
- package/dist/types/events/list/event-list.types.d.mts +1 -1
- package/dist/types/events/list/event-list.types.d.ts +1 -1
- package/dist/types/events/list/event-list.utils.d.mts +1 -1
- package/dist/types/events/list/event-list.utils.d.ts +1 -1
- package/dist/types/pages/event-market/event-market.types.d.mts +1 -3
- package/dist/types/pages/event-market/event-market.types.d.ts +1 -3
- package/dist/types/pages/user-profile/components/available-balance-card.d.mts +0 -1
- package/dist/types/pages/user-profile/components/available-balance-card.d.ts +0 -1
- package/dist/types/primitives/icon/icon.types.d.mts +1 -2
- package/dist/types/primitives/icon/icon.types.d.ts +1 -2
- package/dist/types/primitives/icon/index.d.mts +4 -1
- package/dist/types/primitives/icon/index.d.ts +4 -1
- package/dist/types/primitives/icon/registry.d.mts +12 -0
- package/dist/types/primitives/icon/registry.d.ts +12 -0
- package/dist/types/primitives/icon/svg/apps.d.mts +5 -0
- package/dist/types/primitives/icon/svg/apps.d.ts +5 -0
- package/dist/types/primitives/icon/svg/circle-overlap.d.mts +5 -0
- package/dist/types/primitives/icon/svg/circle-overlap.d.ts +5 -0
- package/dist/types/primitives/icon/svg/lock.d.mts +5 -0
- package/dist/types/primitives/icon/svg/lock.d.ts +5 -0
- package/dist/types/primitives/select/index.d.mts +1 -1
- package/dist/types/primitives/select/index.d.ts +1 -1
- package/dist/types/primitives/select/select.types.d.mts +1 -1
- package/dist/types/primitives/select/select.types.d.ts +1 -1
- package/dist/types/primitives/select/select.utils.d.mts +0 -1
- package/dist/types/primitives/select/select.utils.d.ts +0 -1
- package/dist/types/primitives/skeleton/index.d.mts +2 -1
- package/dist/types/primitives/skeleton/index.d.ts +2 -1
- package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.mts +4 -0
- package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.ts +4 -0
- package/dist/types/primitives/typography/index.d.mts +1 -1
- package/dist/types/primitives/typography/index.d.ts +1 -1
- package/dist/types/primitives/typography/typography.types.d.mts +3 -1
- package/dist/types/primitives/typography/typography.types.d.ts +3 -1
- package/dist/types/shared/utils.d.mts +3 -1
- package/dist/types/shared/utils.d.ts +3 -1
- package/dist/types/trading/index.d.mts +0 -1
- package/dist/types/trading/index.d.ts +0 -1
- package/dist/types/trading/place-order/index.place-order.types.d.mts +0 -1
- package/dist/types/trading/place-order/index.place-order.types.d.ts +0 -1
- package/dist/types/trading/place-order/index.place-order.utils.d.mts +0 -4
- package/dist/types/trading/place-order/index.place-order.utils.d.ts +0 -4
- package/dist/types/trading/settlement/index.d.mts +9 -6
- package/dist/types/trading/settlement/index.d.ts +9 -6
- package/dist/types/trading/settlement/settlement-text-renderer.d.mts +8 -0
- package/dist/types/trading/settlement/settlement-text-renderer.d.ts +8 -0
- package/dist/types/trading/settlement/settlement-text.utils.d.mts +36 -0
- package/dist/types/trading/settlement/settlement-text.utils.d.ts +36 -0
- package/dist/types/trading/types.d.mts +0 -19
- package/dist/types/trading/types.d.ts +0 -19
- package/dist/types/trading/utils.d.mts +0 -1
- package/dist/types/trading/utils.d.ts +0 -1
- package/package.json +3 -3
- package/dist/types/primitives/card/card.constants.d.mts +0 -4
- package/dist/types/primitives/card/card.constants.d.ts +0 -4
- package/dist/types/trading/settlement/settlement-details.utils.d.mts +0 -7
- package/dist/types/trading/settlement/settlement-details.utils.d.ts +0 -7
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
|
+
SETTLEMENT_SECTION_ID,
|
|
3
4
|
buildMarketDetailsModel,
|
|
4
5
|
formatProbabilityCents,
|
|
5
6
|
formatProbabilityPercent,
|
|
7
|
+
getFirstSettlementParagraph,
|
|
6
8
|
getTimeWindowByRange,
|
|
7
9
|
resolveHeaderOutcomeItems,
|
|
8
10
|
resolveInitialOutcomeLabel,
|
|
@@ -19,7 +21,7 @@ import {
|
|
|
19
21
|
resolveUnifiedOrderBookEntries,
|
|
20
22
|
sortOutcomeSelectorOutcomes,
|
|
21
23
|
useEventTradingContext
|
|
22
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-KDMNFHPL.mjs";
|
|
23
25
|
import {
|
|
24
26
|
AutocompleteSelect,
|
|
25
27
|
Badge,
|
|
@@ -71,7 +73,7 @@ import {
|
|
|
71
73
|
sortMarketsByYesOddsDesc,
|
|
72
74
|
sortOutcomes,
|
|
73
75
|
splitEventsByLifecycle
|
|
74
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-R6DETAZ6.mjs";
|
|
75
77
|
|
|
76
78
|
// src/events/item/index.tsx
|
|
77
79
|
import {
|
|
@@ -955,70 +957,23 @@ var mergeVenueOutcomeOrderbooks = ({
|
|
|
955
957
|
|
|
956
958
|
// src/events/item-details/settlement-summary.tsx
|
|
957
959
|
import { useLabels as useLabels2 } from "@agg-build/hooks";
|
|
958
|
-
import {
|
|
960
|
+
import { useMemo as useMemo2 } from "react";
|
|
959
961
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
960
962
|
var SettlementSummary = ({
|
|
961
963
|
content,
|
|
962
|
-
|
|
964
|
+
settlementSectionId = SETTLEMENT_SECTION_ID,
|
|
963
965
|
className
|
|
964
966
|
}) => {
|
|
965
|
-
var _a;
|
|
966
967
|
const labels = useLabels2();
|
|
967
|
-
const
|
|
968
|
-
|
|
969
|
-
const
|
|
970
|
-
const [isExpanded, setIsExpanded] = useState2(false);
|
|
971
|
-
const [canExpand, setCanExpand] = useState2(false);
|
|
972
|
-
const resolvedContent = (_a = content == null ? void 0 : content.trim()) != null ? _a : "";
|
|
973
|
-
const measureOverflow = useCallback2(() => {
|
|
974
|
-
const measureElement = measureRef.current;
|
|
975
|
-
if (!measureElement) return;
|
|
976
|
-
const nextCanExpand = measureElement.scrollWidth > measureElement.clientWidth + 1;
|
|
977
|
-
setCanExpand((currentValue) => {
|
|
978
|
-
if (currentValue === nextCanExpand) return currentValue;
|
|
979
|
-
return nextCanExpand;
|
|
980
|
-
});
|
|
981
|
-
}, []);
|
|
982
|
-
useEffect(() => {
|
|
983
|
-
if (!resolvedContent) {
|
|
984
|
-
setCanExpand(false);
|
|
985
|
-
setIsExpanded(false);
|
|
986
|
-
return;
|
|
987
|
-
}
|
|
988
|
-
setCanExpand(false);
|
|
989
|
-
setIsExpanded(false);
|
|
990
|
-
measureOverflow();
|
|
991
|
-
}, [measureOverflow, resolvedContent]);
|
|
992
|
-
useEffect(() => {
|
|
993
|
-
if (!resolvedContent) return;
|
|
994
|
-
const containerElement = containerRef.current;
|
|
995
|
-
if (!containerElement) return;
|
|
996
|
-
if (typeof ResizeObserver === "function") {
|
|
997
|
-
const resizeObserver = new ResizeObserver(() => {
|
|
998
|
-
measureOverflow();
|
|
999
|
-
});
|
|
1000
|
-
resizeObserver.observe(containerElement);
|
|
1001
|
-
return () => {
|
|
1002
|
-
resizeObserver.disconnect();
|
|
1003
|
-
};
|
|
1004
|
-
}
|
|
1005
|
-
const handleResize = () => {
|
|
1006
|
-
measureOverflow();
|
|
1007
|
-
};
|
|
1008
|
-
window.addEventListener("resize", handleResize);
|
|
1009
|
-
return () => {
|
|
1010
|
-
window.removeEventListener("resize", handleResize);
|
|
1011
|
-
};
|
|
1012
|
-
}, [measureOverflow, resolvedContent]);
|
|
1013
|
-
if (!resolvedContent) return null;
|
|
1014
|
-
const shouldShowToggle = canExpand || isExpanded;
|
|
1015
|
-
const toggleLabel = isExpanded ? labels.settlementSummary.showLess : labels.settlementSummary.readFullDetails;
|
|
1016
|
-
const handleToggle = (event) => {
|
|
968
|
+
const firstParagraph = useMemo2(() => getFirstSettlementParagraph(content), [content]);
|
|
969
|
+
if (!firstParagraph) return null;
|
|
970
|
+
const handleReadFullDetails = (event) => {
|
|
1017
971
|
event.preventDefault();
|
|
1018
972
|
event.stopPropagation();
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
973
|
+
if (typeof document === "undefined") return;
|
|
974
|
+
const target = document.getElementById(settlementSectionId);
|
|
975
|
+
if (!target) return;
|
|
976
|
+
target.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
1022
977
|
};
|
|
1023
978
|
return /* @__PURE__ */ jsxs2("div", { className: cn("agg-settlement-summary flex w-full flex-col gap-2", className), children: [
|
|
1024
979
|
/* @__PURE__ */ jsx2(
|
|
@@ -1029,78 +984,32 @@ var SettlementSummary = ({
|
|
|
1029
984
|
children: labels.settlementSummary.title
|
|
1030
985
|
}
|
|
1031
986
|
),
|
|
1032
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
987
|
+
/* @__PURE__ */ jsxs2("div", { className: "agg-settlement-summary-row flex w-full items-center gap-3", children: [
|
|
1033
988
|
/* @__PURE__ */ jsx2(
|
|
1034
989
|
"p",
|
|
1035
990
|
{
|
|
1036
|
-
ref: measureRef,
|
|
1037
|
-
"aria-hidden": "true",
|
|
1038
991
|
className: cn(
|
|
1039
|
-
"agg-settlement-summary-
|
|
1040
|
-
"
|
|
1041
|
-
"text-agg-sm leading-agg-5 text-agg-foreground"
|
|
992
|
+
"agg-settlement-summary-text",
|
|
993
|
+
"min-w-0 flex-1 truncate text-agg-sm leading-agg-5 text-agg-foreground"
|
|
1042
994
|
),
|
|
1043
|
-
children:
|
|
995
|
+
children: firstParagraph
|
|
1044
996
|
}
|
|
1045
997
|
),
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
{
|
|
1062
|
-
type: "button",
|
|
1063
|
-
className: cn(
|
|
1064
|
-
"agg-settlement-summary-toggle",
|
|
1065
|
-
"w-fit shrink-0 cursor-pointer whitespace-nowrap text-left text-agg-sm font-agg-bold leading-agg-5 text-agg-primary",
|
|
1066
|
-
"hover:opacity-80",
|
|
1067
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-0 focus-visible:ring-offset-agg-secondary"
|
|
1068
|
-
),
|
|
1069
|
-
"aria-controls": contentId,
|
|
1070
|
-
"aria-expanded": isExpanded,
|
|
1071
|
-
onClick: handleToggle,
|
|
1072
|
-
children: toggleLabel
|
|
1073
|
-
}
|
|
1074
|
-
) : null
|
|
1075
|
-
] }) : /* @__PURE__ */ jsxs2("div", { className: "agg-settlement-summary-collapsed flex w-full items-start gap-3", children: [
|
|
1076
|
-
/* @__PURE__ */ jsx2(
|
|
1077
|
-
"p",
|
|
1078
|
-
{
|
|
1079
|
-
id: contentId,
|
|
1080
|
-
className: cn(
|
|
1081
|
-
"agg-settlement-summary-text",
|
|
1082
|
-
"min-w-0 flex-1 truncate text-agg-sm leading-agg-5 text-agg-foreground"
|
|
1083
|
-
),
|
|
1084
|
-
children: resolvedContent
|
|
1085
|
-
}
|
|
1086
|
-
),
|
|
1087
|
-
shouldShowToggle ? /* @__PURE__ */ jsx2(
|
|
1088
|
-
"button",
|
|
1089
|
-
{
|
|
1090
|
-
type: "button",
|
|
1091
|
-
className: cn(
|
|
1092
|
-
"agg-settlement-summary-toggle",
|
|
1093
|
-
"shrink-0 cursor-pointer whitespace-nowrap text-agg-sm font-agg-bold leading-agg-5 text-agg-primary",
|
|
1094
|
-
"hover:opacity-80",
|
|
1095
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-0 focus-visible:ring-offset-agg-secondary"
|
|
1096
|
-
),
|
|
1097
|
-
"aria-controls": contentId,
|
|
1098
|
-
"aria-expanded": isExpanded,
|
|
1099
|
-
onClick: handleToggle,
|
|
1100
|
-
children: toggleLabel
|
|
1101
|
-
}
|
|
1102
|
-
) : null
|
|
1103
|
-
] })
|
|
998
|
+
/* @__PURE__ */ jsx2(
|
|
999
|
+
"button",
|
|
1000
|
+
{
|
|
1001
|
+
type: "button",
|
|
1002
|
+
className: cn(
|
|
1003
|
+
"agg-settlement-summary-toggle",
|
|
1004
|
+
"shrink-0 cursor-pointer whitespace-nowrap text-agg-sm font-agg-bold leading-agg-5 text-agg-primary",
|
|
1005
|
+
"hover:opacity-80",
|
|
1006
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-0 focus-visible:ring-offset-agg-secondary"
|
|
1007
|
+
),
|
|
1008
|
+
"aria-controls": settlementSectionId,
|
|
1009
|
+
onClick: handleReadFullDetails,
|
|
1010
|
+
children: labels.settlementSummary.readFullDetails
|
|
1011
|
+
}
|
|
1012
|
+
)
|
|
1104
1013
|
] })
|
|
1105
1014
|
] });
|
|
1106
1015
|
};
|
|
@@ -1120,11 +1029,11 @@ import {
|
|
|
1120
1029
|
useSdkUiConfig as useSdkUiConfig2,
|
|
1121
1030
|
useVenueEvent as useVenueEvent2
|
|
1122
1031
|
} from "@agg-build/hooks";
|
|
1123
|
-
import { useEffect as
|
|
1032
|
+
import { useEffect as useEffect2, useMemo as useMemo5, useRef as useRef2, useState as useState3 } from "react";
|
|
1124
1033
|
|
|
1125
1034
|
// src/primitives/chart/chart-type-switch.tsx
|
|
1126
1035
|
import { useLabels as useLabels3 } from "@agg-build/hooks";
|
|
1127
|
-
import { useMemo as
|
|
1036
|
+
import { useMemo as useMemo3 } from "react";
|
|
1128
1037
|
|
|
1129
1038
|
// src/primitives/chart/chart-type-switch.constants.ts
|
|
1130
1039
|
var CHART_TYPE_SWITCH_OPTION_KEYS = ["line", "candlestick"];
|
|
@@ -1156,7 +1065,7 @@ var ChartTypeSwitch = ({
|
|
|
1156
1065
|
className
|
|
1157
1066
|
}) => {
|
|
1158
1067
|
const labels = useLabels3();
|
|
1159
|
-
const options =
|
|
1068
|
+
const options = useMemo3(
|
|
1160
1069
|
() => CHART_TYPE_SWITCH_OPTION_KEYS.map((chartType) => ({
|
|
1161
1070
|
value: chartType,
|
|
1162
1071
|
iconName: resolveChartTypeOptionIconName(chartType),
|
|
@@ -1272,7 +1181,7 @@ var filterChartVenueOutcomesByRenderableVenues = ({
|
|
|
1272
1181
|
|
|
1273
1182
|
// src/events/item-details/event-list-item-details-market-selector.tsx
|
|
1274
1183
|
import { useLabels as useLabels4 } from "@agg-build/hooks";
|
|
1275
|
-
import { useEffect
|
|
1184
|
+
import { useEffect, useLayoutEffect, useMemo as useMemo4, useRef, useState as useState2 } from "react";
|
|
1276
1185
|
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1277
1186
|
var MARKET_PILL_MAX_ROWS = 2;
|
|
1278
1187
|
var MARKET_PILL_FALLBACK_CONTAINER_WIDTH = 640;
|
|
@@ -1369,37 +1278,37 @@ var EventListItemDetailsMarketSelector = ({
|
|
|
1369
1278
|
}) => {
|
|
1370
1279
|
var _a;
|
|
1371
1280
|
const labels = useLabels4();
|
|
1372
|
-
const containerRef =
|
|
1373
|
-
const measurementContainerRef =
|
|
1374
|
-
const moreButtonRef =
|
|
1375
|
-
const dropdownInputRef =
|
|
1376
|
-
const moreButtonMeasureRef =
|
|
1377
|
-
const optionMeasureRefs =
|
|
1378
|
-
const [layout, setLayout] =
|
|
1281
|
+
const containerRef = useRef(null);
|
|
1282
|
+
const measurementContainerRef = useRef(null);
|
|
1283
|
+
const moreButtonRef = useRef(null);
|
|
1284
|
+
const dropdownInputRef = useRef(null);
|
|
1285
|
+
const moreButtonMeasureRef = useRef(null);
|
|
1286
|
+
const optionMeasureRefs = useRef({});
|
|
1287
|
+
const [layout, setLayout] = useState2(() => ({
|
|
1379
1288
|
visibleItems: options,
|
|
1380
1289
|
hiddenItems: []
|
|
1381
1290
|
}));
|
|
1382
|
-
const [isDropdownOpen, setIsDropdownOpen] =
|
|
1383
|
-
const [isMobileViewport, setIsMobileViewport] =
|
|
1384
|
-
const [searchValue, setSearchValue] =
|
|
1385
|
-
const [dropdownPosition, setDropdownPosition] =
|
|
1291
|
+
const [isDropdownOpen, setIsDropdownOpen] = useState2(false);
|
|
1292
|
+
const [isMobileViewport, setIsMobileViewport] = useState2(false);
|
|
1293
|
+
const [searchValue, setSearchValue] = useState2("");
|
|
1294
|
+
const [dropdownPosition, setDropdownPosition] = useState2({
|
|
1386
1295
|
left: 0,
|
|
1387
1296
|
top: 0,
|
|
1388
1297
|
width: 0
|
|
1389
1298
|
});
|
|
1390
|
-
const selectedHiddenOption =
|
|
1299
|
+
const selectedHiddenOption = useMemo4(() => {
|
|
1391
1300
|
var _a2;
|
|
1392
1301
|
return (_a2 = layout.hiddenItems.find((option) => option.value === selectedValue)) != null ? _a2 : null;
|
|
1393
1302
|
}, [layout.hiddenItems, selectedValue]);
|
|
1394
1303
|
const moreButtonLabel = (_a = selectedHiddenOption == null ? void 0 : selectedHiddenOption.label) != null ? _a : MARKET_PILL_MORE_LABEL;
|
|
1395
1304
|
const isMoreButtonSelected = selectedHiddenOption != null;
|
|
1396
|
-
const filteredOptions =
|
|
1305
|
+
const filteredOptions = useMemo4(() => {
|
|
1397
1306
|
const normalizedSearchValue = searchValue.trim().toLowerCase();
|
|
1398
1307
|
if (!normalizedSearchValue) return options;
|
|
1399
1308
|
return options.filter((option) => option.label.toLowerCase().includes(normalizedSearchValue));
|
|
1400
1309
|
}, [options, searchValue]);
|
|
1401
|
-
const lastMeasuredKeyRef =
|
|
1402
|
-
const measureFrameRef =
|
|
1310
|
+
const lastMeasuredKeyRef = useRef(null);
|
|
1311
|
+
const measureFrameRef = useRef(null);
|
|
1403
1312
|
useLayoutEffect(() => {
|
|
1404
1313
|
const measureLayout = () => {
|
|
1405
1314
|
var _a2, _b, _c, _d, _e;
|
|
@@ -1481,7 +1390,7 @@ var EventListItemDetailsMarketSelector = ({
|
|
|
1481
1390
|
}
|
|
1482
1391
|
};
|
|
1483
1392
|
}, [moreButtonLabel, options]);
|
|
1484
|
-
|
|
1393
|
+
useEffect(() => {
|
|
1485
1394
|
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
|
|
1486
1395
|
const mediaQueryList = window.matchMedia(MOBILE_TABS_MEDIA_QUERY);
|
|
1487
1396
|
const handleMediaQueryChange = (event) => {
|
|
@@ -1499,7 +1408,7 @@ var EventListItemDetailsMarketSelector = ({
|
|
|
1499
1408
|
mediaQueryList.removeListener(handleMediaQueryChange);
|
|
1500
1409
|
};
|
|
1501
1410
|
}, []);
|
|
1502
|
-
|
|
1411
|
+
useEffect(() => {
|
|
1503
1412
|
if (!isDropdownOpen) {
|
|
1504
1413
|
setSearchValue("");
|
|
1505
1414
|
return;
|
|
@@ -1548,7 +1457,7 @@ var EventListItemDetailsMarketSelector = ({
|
|
|
1548
1457
|
resizeObserver.disconnect();
|
|
1549
1458
|
};
|
|
1550
1459
|
}, [isDropdownOpen, isMobileViewport, moreButtonLabel]);
|
|
1551
|
-
|
|
1460
|
+
useEffect(() => {
|
|
1552
1461
|
if (!isDropdownOpen) return;
|
|
1553
1462
|
const handlePointerDown = (event) => {
|
|
1554
1463
|
var _a2;
|
|
@@ -1894,11 +1803,11 @@ var EventListItemDetailsGraphSection = ({
|
|
|
1894
1803
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
1895
1804
|
const labels = useLabels5();
|
|
1896
1805
|
const tradingContext = useEventTradingContext();
|
|
1897
|
-
const [selectedGraphVenue, setSelectedGraphVenue] =
|
|
1898
|
-
const [chartOutcomeLabel, setChartOutcomeLabel] =
|
|
1806
|
+
const [selectedGraphVenue, setSelectedGraphVenue] = useState3(null);
|
|
1807
|
+
const [chartOutcomeLabel, setChartOutcomeLabel] = useState3(
|
|
1899
1808
|
(_c = (_b = (_a = tradingContext == null ? void 0 : tradingContext.selectedOutcome) == null ? void 0 : _a.label) == null ? void 0 : _b.trim()) != null ? _c : null
|
|
1900
1809
|
);
|
|
1901
|
-
|
|
1810
|
+
useEffect2(() => {
|
|
1902
1811
|
var _a2, _b2, _c2;
|
|
1903
1812
|
if (chartOutcomeLabel != null) return;
|
|
1904
1813
|
const label = (_c2 = (_b2 = (_a2 = tradingContext == null ? void 0 : tradingContext.selectedOutcome) == null ? void 0 : _a2.label) == null ? void 0 : _b2.trim()) != null ? _c2 : null;
|
|
@@ -1912,15 +1821,15 @@ var EventListItemDetailsGraphSection = ({
|
|
|
1912
1821
|
general: { theme }
|
|
1913
1822
|
} = useSdkUiConfig2();
|
|
1914
1823
|
const isDarkTheme = theme === "dark";
|
|
1915
|
-
const timeWindow =
|
|
1824
|
+
const timeWindow = useMemo5(() => {
|
|
1916
1825
|
return getTimeWindowByRange(selectedChartTimeRange);
|
|
1917
1826
|
}, [selectedChartTimeRange]);
|
|
1918
|
-
const availableMarkets =
|
|
1827
|
+
const availableMarkets = useMemo5(() => {
|
|
1919
1828
|
if (venueMarkets.length === 0) return [];
|
|
1920
1829
|
return normalizeVenueMarketCluster(venueMarkets, tradingContext == null ? void 0 : tradingContext.selectedMarketId);
|
|
1921
1830
|
}, [tradingContext == null ? void 0 : tradingContext.selectedMarketId, venueMarkets]);
|
|
1922
1831
|
const resolvedChartOutcomeLabel = (_g = chartOutcomeLabel != null ? chartOutcomeLabel : (_f = (_e = tradingContext == null ? void 0 : tradingContext.selectedOutcome) == null ? void 0 : _e.label) == null ? void 0 : _f.trim()) != null ? _g : null;
|
|
1923
|
-
const availableVenueOutcomes =
|
|
1832
|
+
const availableVenueOutcomes = useMemo5(() => {
|
|
1924
1833
|
return resolveChartVenueOutcomes({
|
|
1925
1834
|
eligibleVenueOutcomes: collectEligibleVenueOutcomes({
|
|
1926
1835
|
venueMarkets: availableMarkets,
|
|
@@ -1944,13 +1853,13 @@ var EventListItemDetailsGraphSection = ({
|
|
|
1944
1853
|
enabled: availableVenueOutcomes.length > 0,
|
|
1945
1854
|
live
|
|
1946
1855
|
});
|
|
1947
|
-
const selectedMarketOutcomes =
|
|
1856
|
+
const selectedMarketOutcomes = useMemo5(() => {
|
|
1948
1857
|
var _a2, _b2;
|
|
1949
1858
|
const selectedMarket = (_b2 = (_a2 = tradingContext == null ? void 0 : tradingContext.selectedMarket) != null ? _a2 : availableMarkets[0]) != null ? _b2 : null;
|
|
1950
1859
|
if (!selectedMarket) return [];
|
|
1951
1860
|
return sortOutcomeSelectorOutcomes(selectedMarket.venueMarketOutcomes);
|
|
1952
1861
|
}, [availableMarkets, tradingContext == null ? void 0 : tradingContext.selectedMarket]);
|
|
1953
|
-
const resolvedVenueChartSeries =
|
|
1862
|
+
const resolvedVenueChartSeries = useMemo5(() => {
|
|
1954
1863
|
return resolveMarketChartVenueSeries({
|
|
1955
1864
|
chartData: scopedMarketChartData,
|
|
1956
1865
|
transformProbability: (v) => v
|
|
@@ -1963,31 +1872,31 @@ var EventListItemDetailsGraphSection = ({
|
|
|
1963
1872
|
lineStyle: "solid"
|
|
1964
1873
|
}));
|
|
1965
1874
|
}, [isDarkTheme, scopedMarketChartData]);
|
|
1966
|
-
const chartAvailableVenueOutcomes =
|
|
1875
|
+
const chartAvailableVenueOutcomes = useMemo5(() => {
|
|
1967
1876
|
return filterChartVenueOutcomesByRenderableVenues({
|
|
1968
1877
|
chartData: scopedMarketChartData,
|
|
1969
1878
|
venueOutcomes: availableVenueOutcomes
|
|
1970
1879
|
});
|
|
1971
1880
|
}, [availableVenueOutcomes, scopedMarketChartData]);
|
|
1972
|
-
const defaultCandlestickVenue =
|
|
1881
|
+
const defaultCandlestickVenue = useMemo5(() => {
|
|
1973
1882
|
var _a2, _b2, _c2, _d2, _e2, _f2;
|
|
1974
1883
|
return (_f2 = (_e2 = (_c2 = (_a2 = chartAvailableVenueOutcomes.find((item) => item.venue === (tradingContext == null ? void 0 : tradingContext.selectedVenue))) == null ? void 0 : _a2.venue) != null ? _c2 : (_b2 = chartAvailableVenueOutcomes[0]) == null ? void 0 : _b2.venue) != null ? _e2 : (_d2 = availableVenueOutcomes[0]) == null ? void 0 : _d2.venue) != null ? _f2 : null;
|
|
1975
1884
|
}, [availableVenueOutcomes, chartAvailableVenueOutcomes, tradingContext == null ? void 0 : tradingContext.selectedVenue]);
|
|
1976
1885
|
const activeGraphVenue = selectedChartType === "candlestick" ? selectedGraphVenue != null ? selectedGraphVenue : defaultCandlestickVenue : selectedGraphVenue;
|
|
1977
|
-
const visibleChartSeries =
|
|
1886
|
+
const visibleChartSeries = useMemo5(() => {
|
|
1978
1887
|
if (!activeGraphVenue) {
|
|
1979
1888
|
return resolvedVenueChartSeries;
|
|
1980
1889
|
}
|
|
1981
1890
|
return resolvedVenueChartSeries.filter((seriesItem) => seriesItem.venue === activeGraphVenue);
|
|
1982
1891
|
}, [activeGraphVenue, resolvedVenueChartSeries]);
|
|
1983
|
-
const chartLiveState =
|
|
1892
|
+
const chartLiveState = useMemo5(() => {
|
|
1984
1893
|
return resolveMarketChartLiveState({
|
|
1985
1894
|
chartData: scopedMarketChartData,
|
|
1986
1895
|
selectedVenue: activeGraphVenue,
|
|
1987
1896
|
transformProbability: (v) => v
|
|
1988
1897
|
});
|
|
1989
1898
|
}, [activeGraphVenue, scopedMarketChartData]);
|
|
1990
|
-
|
|
1899
|
+
useEffect2(() => {
|
|
1991
1900
|
if (!selectedGraphVenue) return;
|
|
1992
1901
|
const hasSelectedGraphVenue = chartAvailableVenueOutcomes.some(
|
|
1993
1902
|
(item) => item.venue === selectedGraphVenue
|
|
@@ -2135,14 +2044,14 @@ var EventListItemDetailsContent = ({
|
|
|
2135
2044
|
onClick
|
|
2136
2045
|
}) => {
|
|
2137
2046
|
var _a, _b;
|
|
2138
|
-
const [selectedChartType, setSelectedChartType] =
|
|
2139
|
-
const lastAppliedEventSyncKeyRef =
|
|
2140
|
-
const lastAppliedDefaultRef =
|
|
2047
|
+
const [selectedChartType, setSelectedChartType] = useState3("line");
|
|
2048
|
+
const lastAppliedEventSyncKeyRef = useRef2(null);
|
|
2049
|
+
const lastAppliedDefaultRef = useRef2(null);
|
|
2141
2050
|
const config = useSdkUiConfig2();
|
|
2142
2051
|
const labels = useLabels5();
|
|
2143
2052
|
const tradingContext = useEventTradingContext();
|
|
2144
|
-
const eventSyncKey =
|
|
2145
|
-
const resolvedEventTradingState =
|
|
2053
|
+
const eventSyncKey = useMemo5(() => resolveEventDetailsSyncKey(event), [event]);
|
|
2054
|
+
const resolvedEventTradingState = useMemo5(() => {
|
|
2146
2055
|
return eventTradingState != null ? eventTradingState : resolveEventTradingState(event);
|
|
2147
2056
|
}, [event, eventTradingState]);
|
|
2148
2057
|
const scopedSelectedMarket = (tradingContext == null ? void 0 : tradingContext.selectedEventId) === event.id ? (_a = tradingContext.selectedMarket) != null ? _a : resolvedEventTradingState.primaryMarket : resolvedEventTradingState.primaryMarket;
|
|
@@ -2152,7 +2061,7 @@ var EventListItemDetailsContent = ({
|
|
|
2152
2061
|
scopedSelectedMarketId
|
|
2153
2062
|
);
|
|
2154
2063
|
const wsLivePrices = useLiveOutcomePrices(resolvedEventTradingState.displayMarkets);
|
|
2155
|
-
const midpointsClusterMarkets =
|
|
2064
|
+
const midpointsClusterMarkets = useMemo5(() => {
|
|
2156
2065
|
if (resolvedEventTradingState.isTradingDisabled) return [];
|
|
2157
2066
|
return normalizeVenueMarketCluster(
|
|
2158
2067
|
resolvedEventTradingState.displayMarkets,
|
|
@@ -2164,14 +2073,14 @@ var EventListItemDetailsContent = ({
|
|
|
2164
2073
|
scopedSelectedMarketId
|
|
2165
2074
|
]);
|
|
2166
2075
|
const { prices: restMidpoints } = useMidpoints(midpointsClusterMarkets);
|
|
2167
|
-
const livePrices =
|
|
2076
|
+
const livePrices = useMemo5(() => {
|
|
2168
2077
|
if (!restMidpoints.size) return wsLivePrices;
|
|
2169
2078
|
if (!wsLivePrices.size) return restMidpoints;
|
|
2170
2079
|
const merged = new Map(restMidpoints);
|
|
2171
2080
|
for (const [k, v] of wsLivePrices) merged.set(k, v);
|
|
2172
2081
|
return merged;
|
|
2173
2082
|
}, [restMidpoints, wsLivePrices]);
|
|
2174
|
-
|
|
2083
|
+
useEffect2(() => {
|
|
2175
2084
|
if (!tradingContext) return;
|
|
2176
2085
|
if (lastAppliedEventSyncKeyRef.current === eventSyncKey) return;
|
|
2177
2086
|
if ((tradingContext == null ? void 0 : tradingContext.selectedEventId) !== event.id) {
|
|
@@ -2181,7 +2090,7 @@ var EventListItemDetailsContent = ({
|
|
|
2181
2090
|
}
|
|
2182
2091
|
lastAppliedEventSyncKeyRef.current = eventSyncKey;
|
|
2183
2092
|
}, [event, eventSyncKey, tradingContext]);
|
|
2184
|
-
|
|
2093
|
+
useEffect2(() => {
|
|
2185
2094
|
if (!tradingContext) return;
|
|
2186
2095
|
if (!defaultMarketId) return;
|
|
2187
2096
|
if (tradingContext.selectedEventId !== event.id) return;
|
|
@@ -2208,19 +2117,19 @@ var EventListItemDetailsContent = ({
|
|
|
2208
2117
|
tradingContext,
|
|
2209
2118
|
tradingContext == null ? void 0 : tradingContext.selectedEventId
|
|
2210
2119
|
]);
|
|
2211
|
-
const venueMarkets =
|
|
2120
|
+
const venueMarkets = useMemo5(
|
|
2212
2121
|
() => resolvedEventTradingState.displayMarkets,
|
|
2213
2122
|
[resolvedEventTradingState.displayMarkets]
|
|
2214
2123
|
);
|
|
2215
|
-
const sortedVenueMarkets =
|
|
2216
|
-
const marketOptions =
|
|
2124
|
+
const sortedVenueMarkets = useMemo5(() => sortMarketsByYesOddsDesc(venueMarkets), [venueMarkets]);
|
|
2125
|
+
const marketOptions = useMemo5(
|
|
2217
2126
|
() => sortedVenueMarkets.map((vm) => ({
|
|
2218
2127
|
value: vm.id,
|
|
2219
2128
|
label: vm.question
|
|
2220
2129
|
})),
|
|
2221
2130
|
[sortedVenueMarkets]
|
|
2222
2131
|
);
|
|
2223
|
-
const volumeLabel =
|
|
2132
|
+
const volumeLabel = useMemo5(() => {
|
|
2224
2133
|
const resolvedVolume = resolveDisplayVolume(event.volume, venueMarkets);
|
|
2225
2134
|
if (typeof resolvedVolume !== "number") return "";
|
|
2226
2135
|
return `${config.formatting.formatCompactCurrency(resolvedVolume)} ${labels.eventItemDetails.volumeSuffix}`;
|
|
@@ -2497,7 +2406,7 @@ var orderbookDefaultLabels = {
|
|
|
2497
2406
|
};
|
|
2498
2407
|
|
|
2499
2408
|
// src/events/orderbook/use-center-orderbook-spread.ts
|
|
2500
|
-
import { useCallback as
|
|
2409
|
+
import { useCallback as useCallback2, useLayoutEffect as useLayoutEffect2, useRef as useRef3 } from "react";
|
|
2501
2410
|
var maxAutoCenterAttempts = 12;
|
|
2502
2411
|
var userScrollKeys = /* @__PURE__ */ new Set(["ArrowDown", "ArrowUp", "PageDown", "PageUp", "Home", "End", " "]);
|
|
2503
2412
|
var useCenterOrderbookSpread = ({
|
|
@@ -2508,10 +2417,10 @@ var useCenterOrderbookSpread = ({
|
|
|
2508
2417
|
rowCount,
|
|
2509
2418
|
enabled = true
|
|
2510
2419
|
}) => {
|
|
2511
|
-
const hasAutoCenteredRef =
|
|
2512
|
-
const hasUserScrolledRef =
|
|
2513
|
-
const animationFrameRef =
|
|
2514
|
-
const retryCountRef =
|
|
2420
|
+
const hasAutoCenteredRef = useRef3(false);
|
|
2421
|
+
const hasUserScrolledRef = useRef3(false);
|
|
2422
|
+
const animationFrameRef = useRef3(null);
|
|
2423
|
+
const retryCountRef = useRef3(0);
|
|
2515
2424
|
const resetKey = marketId != null ? marketId : "";
|
|
2516
2425
|
useLayoutEffect2(() => {
|
|
2517
2426
|
const cancelPendingFrame = () => {
|
|
@@ -2638,7 +2547,7 @@ var useCenterOrderbookSpread = ({
|
|
|
2638
2547
|
disconnectResizeObserver();
|
|
2639
2548
|
};
|
|
2640
2549
|
}, [containerRef, enabled, resetKey, rowCount, spreadRef]);
|
|
2641
|
-
const recenter =
|
|
2550
|
+
const recenter = useCallback2(() => {
|
|
2642
2551
|
const container = containerRef.current;
|
|
2643
2552
|
const spread = spreadRef.current;
|
|
2644
2553
|
if (!container || !spread) return;
|
|
@@ -2659,7 +2568,7 @@ var useCenterOrderbookSpread = ({
|
|
|
2659
2568
|
|
|
2660
2569
|
// src/events/orderbook/index.tsx
|
|
2661
2570
|
import { sortVenues as sortVenues3, useAggUiConfig } from "@agg-build/hooks";
|
|
2662
|
-
import { useEffect as
|
|
2571
|
+
import { useEffect as useEffect3, useRef as useRef4 } from "react";
|
|
2663
2572
|
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
2664
2573
|
var OrderbookVenueLogos = ({ venues }) => {
|
|
2665
2574
|
const visible = sortVenues3(venues).slice(0, orderbookMaxVisibleVenues);
|
|
@@ -2756,8 +2665,8 @@ var Orderbook = ({
|
|
|
2756
2665
|
var _a, _b, _c, _d, _e;
|
|
2757
2666
|
const { enableWebsocketsLogs } = useAggUiConfig();
|
|
2758
2667
|
const labels = __spreadValues(__spreadValues({}, orderbookDefaultLabels), labelsProp);
|
|
2759
|
-
const scrollContainerRef =
|
|
2760
|
-
const spreadRowRef =
|
|
2668
|
+
const scrollContainerRef = useRef4(null);
|
|
2669
|
+
const spreadRowRef = useRef4(null);
|
|
2761
2670
|
const autoCenterMarketId = (_a = marketId != null ? marketId : outcomeId) != null ? _a : null;
|
|
2762
2671
|
const maxVisibleRows = Math.max(1, visibleRows);
|
|
2763
2672
|
const totalVisibleRows = maxVisibleRows * 2 + 1;
|
|
@@ -2774,7 +2683,7 @@ var Orderbook = ({
|
|
|
2774
2683
|
const spreadEntry = entries.find(
|
|
2775
2684
|
(e) => e.kind === "spread"
|
|
2776
2685
|
);
|
|
2777
|
-
|
|
2686
|
+
useEffect3(() => {
|
|
2778
2687
|
var _a2, _b2;
|
|
2779
2688
|
if (!enableWebsocketsLogs) return;
|
|
2780
2689
|
console.debug("[AggUI][orderbook] component_rendered", {
|
|
@@ -2974,7 +2883,7 @@ import {
|
|
|
2974
2883
|
useVenueMarkets as useVenueMarkets2,
|
|
2975
2884
|
useViewportMidpoints
|
|
2976
2885
|
} from "@agg-build/hooks";
|
|
2977
|
-
import { useEffect as
|
|
2886
|
+
import { useEffect as useEffect4, useId, useMemo as useMemo6, useRef as useRef5, useState as useState4 } from "react";
|
|
2978
2887
|
|
|
2979
2888
|
// src/events/market-details/market-details-outcome-button.tsx
|
|
2980
2889
|
import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
@@ -3151,9 +3060,9 @@ var MarketDetailsContent = ({
|
|
|
3151
3060
|
const isDarkTheme = theme === "dark";
|
|
3152
3061
|
const labels = useLabels6();
|
|
3153
3062
|
const tradingContext = useEventTradingContext2();
|
|
3154
|
-
const detailsContentId =
|
|
3063
|
+
const detailsContentId = useId();
|
|
3155
3064
|
const wsLivePrices = useLiveOutcomePrices2(venueMarkets);
|
|
3156
|
-
const model =
|
|
3065
|
+
const model = useMemo6(() => {
|
|
3157
3066
|
return buildMarketDetailsModel({
|
|
3158
3067
|
venueMarkets,
|
|
3159
3068
|
marketId,
|
|
@@ -3163,15 +3072,15 @@ var MarketDetailsContent = ({
|
|
|
3163
3072
|
labels
|
|
3164
3073
|
});
|
|
3165
3074
|
}, [config.formatting.formatCompactCurrency, venueMarkets, image, labels, marketId, title]);
|
|
3166
|
-
const resolvedMarket =
|
|
3075
|
+
const resolvedMarket = useMemo6(() => {
|
|
3167
3076
|
return resolveMarketFromVenueMarkets(venueMarkets, marketId);
|
|
3168
3077
|
}, [venueMarkets, marketId]);
|
|
3169
|
-
const clusterMidpointMarkets =
|
|
3078
|
+
const clusterMidpointMarkets = useMemo6(() => {
|
|
3170
3079
|
if (!controlledIsOpened || !resolvedMarket) return [];
|
|
3171
3080
|
return resolvedMarket.venueMarkets;
|
|
3172
3081
|
}, [controlledIsOpened, resolvedMarket]);
|
|
3173
3082
|
const { prices: clusterMidpoints, venueByOutcomeId: clusterVenueByOutcomeId } = useMidpoints2(clusterMidpointMarkets);
|
|
3174
|
-
const livePrices =
|
|
3083
|
+
const livePrices = useMemo6(() => {
|
|
3175
3084
|
const merged = /* @__PURE__ */ new Map();
|
|
3176
3085
|
if (midpointsFallback == null ? void 0 : midpointsFallback.size) {
|
|
3177
3086
|
for (const [outcomeId, price] of midpointsFallback) {
|
|
@@ -3186,49 +3095,49 @@ var MarketDetailsContent = ({
|
|
|
3186
3095
|
for (const [k, v] of wsLivePrices) merged.set(k, v);
|
|
3187
3096
|
return merged;
|
|
3188
3097
|
}, [clusterMidpoints, midpointsFallback, wsLivePrices]);
|
|
3189
|
-
const scopedMarketForCard =
|
|
3098
|
+
const scopedMarketForCard = useMemo6(() => {
|
|
3190
3099
|
var _a2;
|
|
3191
3100
|
if (!model) return null;
|
|
3192
3101
|
return (_a2 = model.market.venueMarkets.find((venueMarket) => venueMarket.id === model.market.id)) != null ? _a2 : model.primaryVenueMarket;
|
|
3193
3102
|
}, [model]);
|
|
3194
|
-
const marketTradingState =
|
|
3103
|
+
const marketTradingState = useMemo6(() => {
|
|
3195
3104
|
return resolveMarketTradingState(scopedMarketForCard);
|
|
3196
3105
|
}, [scopedMarketForCard]);
|
|
3197
3106
|
const isResolvedMarket = marketTradingState.kind === "resolved";
|
|
3198
3107
|
const isOutcomeSelectionLocked = marketTradingState.isTradingDisabled;
|
|
3199
3108
|
const isUpcomingMarket = marketTradingState.kind === "unopened";
|
|
3200
3109
|
const marketStatePresentation = resolveTradingStatePresentation(labels, marketTradingState);
|
|
3201
|
-
const marketDetailsTabs =
|
|
3110
|
+
const marketDetailsTabs = useMemo6(() => {
|
|
3202
3111
|
return getMarketDetailsTabs(labels);
|
|
3203
3112
|
}, [labels]);
|
|
3204
|
-
const [selectedTab, setSelectedTab] =
|
|
3113
|
+
const [selectedTab, setSelectedTab] = useState4(
|
|
3205
3114
|
() => resolveInitialTab(defaultTab)
|
|
3206
3115
|
);
|
|
3207
|
-
const [isOpened, setIsOpened] =
|
|
3208
|
-
|
|
3116
|
+
const [isOpened, setIsOpened] = useState4(controlledIsOpened);
|
|
3117
|
+
useEffect4(() => {
|
|
3209
3118
|
setSelectedTab(resolveInitialTab(defaultTab));
|
|
3210
3119
|
}, [defaultTab]);
|
|
3211
|
-
|
|
3120
|
+
useEffect4(() => {
|
|
3212
3121
|
setIsOpened(controlledIsOpened);
|
|
3213
3122
|
}, [controlledIsOpened]);
|
|
3214
3123
|
const selectedTimeRange = config.chart.selectedChartTimeRange;
|
|
3215
3124
|
const setSelectedTimeRange = config.chart.setSelectedChartTimeRange;
|
|
3216
3125
|
const effectiveSelectedTab = isResolvedMarket ? "graph" : selectedTab;
|
|
3217
3126
|
const effectiveChartTimeRange = isResolvedMarket ? "ALL" : selectedTimeRange;
|
|
3218
|
-
const [selectedChartType, setSelectedChartType] =
|
|
3127
|
+
const [selectedChartType, setSelectedChartType] = useState4("line");
|
|
3219
3128
|
const scopedSelectedOutcome = (_a = tradingContext == null ? void 0 : tradingContext.selectedOutcome) != null ? _a : null;
|
|
3220
3129
|
const selectedOutcomeId = (_b = scopedSelectedOutcome == null ? void 0 : scopedSelectedOutcome.id) != null ? _b : null;
|
|
3221
3130
|
const selectedOutcomeLabel = (_c = scopedSelectedOutcome == null ? void 0 : scopedSelectedOutcome.label) != null ? _c : null;
|
|
3222
3131
|
const selectOutcome = tradingContext == null ? void 0 : tradingContext.selectOutcome;
|
|
3223
|
-
const [selectedGraphVenue, setSelectedGraphVenue] =
|
|
3224
|
-
const [chartOutcomeLabel, setChartOutcomeLabel] =
|
|
3225
|
-
|
|
3132
|
+
const [selectedGraphVenue, setSelectedGraphVenue] = useState4(null);
|
|
3133
|
+
const [chartOutcomeLabel, setChartOutcomeLabel] = useState4(selectedOutcomeLabel);
|
|
3134
|
+
useEffect4(() => {
|
|
3226
3135
|
if (!isOpened) return;
|
|
3227
3136
|
if (selectedOutcomeLabel) {
|
|
3228
3137
|
setChartOutcomeLabel(selectedOutcomeLabel);
|
|
3229
3138
|
}
|
|
3230
3139
|
}, [isOpened]);
|
|
3231
|
-
|
|
3140
|
+
useEffect4(() => {
|
|
3232
3141
|
var _a2;
|
|
3233
3142
|
if (!isOpened || !model) return;
|
|
3234
3143
|
if (isOutcomeSelectionLocked) return;
|
|
@@ -3248,7 +3157,7 @@ var MarketDetailsContent = ({
|
|
|
3248
3157
|
selectedOutcomeId,
|
|
3249
3158
|
selectOutcome
|
|
3250
3159
|
]);
|
|
3251
|
-
const headerOutcomeItems =
|
|
3160
|
+
const headerOutcomeItems = useMemo6(() => {
|
|
3252
3161
|
if (!model) return [];
|
|
3253
3162
|
const items = resolveHeaderOutcomeItems(model.market.venueMarkets);
|
|
3254
3163
|
return items.map((item) => {
|
|
@@ -3273,7 +3182,7 @@ var MarketDetailsContent = ({
|
|
|
3273
3182
|
midpointsFallbackVenues,
|
|
3274
3183
|
wsLivePrices
|
|
3275
3184
|
]);
|
|
3276
|
-
const headlineProbability =
|
|
3185
|
+
const headlineProbability = useMemo6(() => {
|
|
3277
3186
|
var _a2, _b2, _c2, _d2;
|
|
3278
3187
|
if (!model || !scopedMarketForCard) return void 0;
|
|
3279
3188
|
const yesOutcome = resolveYesOutcome(scopedMarketForCard);
|
|
@@ -3285,7 +3194,7 @@ var MarketDetailsContent = ({
|
|
|
3285
3194
|
if (restPrice != null) return restPrice;
|
|
3286
3195
|
return (_d2 = findLivePriceById(wsLivePrices, displayOutcome.id)) != null ? _d2 : displayOutcome.price;
|
|
3287
3196
|
}, [model, scopedMarketForCard, clusterMidpoints, midpointsFallback, wsLivePrices]);
|
|
3288
|
-
const selectedOutcomesByVenue =
|
|
3197
|
+
const selectedOutcomesByVenue = useMemo6(() => {
|
|
3289
3198
|
if (!model) return [];
|
|
3290
3199
|
return collectEligibleVenueOutcomes({
|
|
3291
3200
|
venueMarkets: model.market.venueMarkets,
|
|
@@ -3293,7 +3202,7 @@ var MarketDetailsContent = ({
|
|
|
3293
3202
|
});
|
|
3294
3203
|
}, [model, selectedOutcomeLabel]);
|
|
3295
3204
|
const resolvedChartOutcomeLabel = chartOutcomeLabel != null ? chartOutcomeLabel : selectedOutcomeLabel;
|
|
3296
|
-
const chartOutcomesByVenue =
|
|
3205
|
+
const chartOutcomesByVenue = useMemo6(() => {
|
|
3297
3206
|
if (!model) return [];
|
|
3298
3207
|
return resolveChartVenueOutcomes({
|
|
3299
3208
|
eligibleVenueOutcomes: collectEligibleVenueOutcomes({
|
|
@@ -3305,13 +3214,13 @@ var MarketDetailsContent = ({
|
|
|
3305
3214
|
}, [livePrices, model, resolvedChartOutcomeLabel]);
|
|
3306
3215
|
const chartEnabled = isOpened && effectiveSelectedTab === "graph";
|
|
3307
3216
|
const orderBookEnabled = isOpened && effectiveSelectedTab === "order-book" && !marketTradingState.isTradingDisabled;
|
|
3308
|
-
const timeWindow =
|
|
3217
|
+
const timeWindow = useMemo6(() => {
|
|
3309
3218
|
return getTimeWindowByRange(effectiveChartTimeRange);
|
|
3310
3219
|
}, [effectiveChartTimeRange]);
|
|
3311
3220
|
const primaryVenueMarketId = (_e = (_d = selectedOutcomesByVenue[0]) == null ? void 0 : _d.market.id) != null ? _e : null;
|
|
3312
3221
|
const primaryOutcomeId = (_g = (_f = selectedOutcomesByVenue[0]) == null ? void 0 : _f.outcome.id) != null ? _g : null;
|
|
3313
3222
|
const chartPrimaryOutcomeId = (_i = (_h = chartOutcomesByVenue[0]) == null ? void 0 : _h.outcome.id) != null ? _i : null;
|
|
3314
|
-
const chartVenueOutcomeIds =
|
|
3223
|
+
const chartVenueOutcomeIds = useMemo6(() => {
|
|
3315
3224
|
return chartOutcomesByVenue.map((item) => item.outcome.id);
|
|
3316
3225
|
}, [chartOutcomesByVenue]);
|
|
3317
3226
|
const {
|
|
@@ -3337,14 +3246,14 @@ var MarketDetailsContent = ({
|
|
|
3337
3246
|
})),
|
|
3338
3247
|
live
|
|
3339
3248
|
});
|
|
3340
|
-
const marketOrderbookDataById =
|
|
3249
|
+
const marketOrderbookDataById = useMemo6(() => {
|
|
3341
3250
|
var _a2;
|
|
3342
3251
|
return (_a2 = marketOrderbookResult.dataById) != null ? _a2 : {};
|
|
3343
3252
|
}, [marketOrderbookResult]);
|
|
3344
3253
|
const isOrderBookLoading = marketOrderbookResult.isLoading;
|
|
3345
3254
|
const orderBookError = marketOrderbookResult.error;
|
|
3346
3255
|
const refetchOrderBook = marketOrderbookResult.refetch;
|
|
3347
|
-
const aggregatedOrderbookRows =
|
|
3256
|
+
const aggregatedOrderbookRows = useMemo6(() => {
|
|
3348
3257
|
return mergeVenueOutcomeOrderbooks({
|
|
3349
3258
|
eligibleOutcomes: selectedOutcomesByVenue,
|
|
3350
3259
|
orderbooksByOutcomeId: marketOrderbookDataById
|
|
@@ -3352,7 +3261,7 @@ var MarketDetailsContent = ({
|
|
|
3352
3261
|
}, [marketOrderbookDataById, selectedOutcomesByVenue]);
|
|
3353
3262
|
const askRows = aggregatedOrderbookRows.askRows;
|
|
3354
3263
|
const bidRows = aggregatedOrderbookRows.bidRows;
|
|
3355
|
-
const unifiedEntries =
|
|
3264
|
+
const unifiedEntries = useMemo6(() => {
|
|
3356
3265
|
return resolveUnifiedOrderBookEntries({
|
|
3357
3266
|
askRows,
|
|
3358
3267
|
bidRows,
|
|
@@ -3360,7 +3269,7 @@ var MarketDetailsContent = ({
|
|
|
3360
3269
|
spread: aggregatedOrderbookRows.spread
|
|
3361
3270
|
});
|
|
3362
3271
|
}, [aggregatedOrderbookRows.midpoint, aggregatedOrderbookRows.spread, askRows, bidRows]);
|
|
3363
|
-
const orderbookSnapshotKey =
|
|
3272
|
+
const orderbookSnapshotKey = useMemo6(() => {
|
|
3364
3273
|
if (selectedOutcomesByVenue.length === 0) return null;
|
|
3365
3274
|
return selectedOutcomesByVenue.map((item) => {
|
|
3366
3275
|
var _a2, _b2;
|
|
@@ -3368,13 +3277,13 @@ var MarketDetailsContent = ({
|
|
|
3368
3277
|
return `${item.outcomeId}:${snapshotVersion}`;
|
|
3369
3278
|
}).join("|");
|
|
3370
3279
|
}, [marketOrderbookDataById, selectedOutcomesByVenue]);
|
|
3371
|
-
const chartAvailableOutcomesByVenue =
|
|
3280
|
+
const chartAvailableOutcomesByVenue = useMemo6(() => {
|
|
3372
3281
|
return filterChartVenueOutcomesByRenderableVenues({
|
|
3373
3282
|
chartData: marketChartData,
|
|
3374
3283
|
venueOutcomes: chartOutcomesByVenue
|
|
3375
3284
|
});
|
|
3376
3285
|
}, [chartOutcomesByVenue, marketChartData]);
|
|
3377
|
-
const graphSeries =
|
|
3286
|
+
const graphSeries = useMemo6(() => {
|
|
3378
3287
|
var _a2, _b2, _c2, _d2;
|
|
3379
3288
|
const baseColor = resolveSeriesColor(
|
|
3380
3289
|
(_d2 = (_c2 = selectedGraphVenue != null ? selectedGraphVenue : (_a2 = chartAvailableOutcomesByVenue[0]) == null ? void 0 : _a2.venue) != null ? _c2 : (_b2 = chartOutcomesByVenue[0]) == null ? void 0 : _b2.venue) != null ? _d2 : "polymarket",
|
|
@@ -3402,14 +3311,14 @@ var MarketDetailsContent = ({
|
|
|
3402
3311
|
chartAvailableOutcomesByVenue,
|
|
3403
3312
|
chartOutcomesByVenue
|
|
3404
3313
|
]);
|
|
3405
|
-
const graphLiveState =
|
|
3314
|
+
const graphLiveState = useMemo6(() => {
|
|
3406
3315
|
return resolveMarketChartLiveState({
|
|
3407
3316
|
chartData: marketChartData,
|
|
3408
3317
|
selectedVenue: selectedGraphVenue,
|
|
3409
3318
|
transformProbability: (value) => value
|
|
3410
3319
|
});
|
|
3411
3320
|
}, [marketChartData, selectedGraphVenue]);
|
|
3412
|
-
const otherRows =
|
|
3321
|
+
const otherRows = useMemo6(() => {
|
|
3413
3322
|
if (!model) return [];
|
|
3414
3323
|
return resolveOtherTabRows(model.market, labels);
|
|
3415
3324
|
}, [labels, model]);
|
|
@@ -3483,7 +3392,7 @@ var MarketDetailsContent = ({
|
|
|
3483
3392
|
title: labels.marketDetails.orderBookEmptyTitle,
|
|
3484
3393
|
description: labels.marketDetails.orderBookEmptyDescription
|
|
3485
3394
|
} : { kind: "data" };
|
|
3486
|
-
|
|
3395
|
+
useEffect4(() => {
|
|
3487
3396
|
if (!selectedGraphVenue) {
|
|
3488
3397
|
return;
|
|
3489
3398
|
}
|
|
@@ -3999,9 +3908,9 @@ var MarketDetailsList = ({
|
|
|
3999
3908
|
const labels = useLabels6();
|
|
4000
3909
|
const tradingContext = useEventTradingContext2();
|
|
4001
3910
|
const selectedMarketId = (_a = tradingContext == null ? void 0 : tradingContext.selectedMarketId) != null ? _a : null;
|
|
4002
|
-
const [expandedMarketId, setExpandedMarketId] =
|
|
4003
|
-
const previousSelectedMarketIdRef =
|
|
4004
|
-
const [areResolvedMarketsVisible, setAreResolvedMarketsVisible] =
|
|
3911
|
+
const [expandedMarketId, setExpandedMarketId] = useState4(selectedMarketId);
|
|
3912
|
+
const previousSelectedMarketIdRef = useRef5(selectedMarketId);
|
|
3913
|
+
const [areResolvedMarketsVisible, setAreResolvedMarketsVisible] = useState4(false);
|
|
4005
3914
|
const resolvedEventId = eventId || "";
|
|
4006
3915
|
const {
|
|
4007
3916
|
markets: rawMarkets,
|
|
@@ -4014,7 +3923,7 @@ var MarketDetailsList = ({
|
|
|
4014
3923
|
sortBy: "yesPrice",
|
|
4015
3924
|
sortDir: "desc"
|
|
4016
3925
|
});
|
|
4017
|
-
const sourceMarkets =
|
|
3926
|
+
const sourceMarkets = useMemo6(() => {
|
|
4018
3927
|
var _a2;
|
|
4019
3928
|
if ((_a2 = eventTradingState == null ? void 0 : eventTradingState.marketStates) == null ? void 0 : _a2.length) {
|
|
4020
3929
|
return eventTradingState.marketStates.map((item) => item.market);
|
|
@@ -4022,10 +3931,10 @@ var MarketDetailsList = ({
|
|
|
4022
3931
|
if (providedMarkets) return providedMarkets;
|
|
4023
3932
|
return rawMarkets;
|
|
4024
3933
|
}, [eventTradingState == null ? void 0 : eventTradingState.marketStates, providedMarkets, rawMarkets]);
|
|
4025
|
-
const isResolvedEvent =
|
|
3934
|
+
const isResolvedEvent = useMemo6(() => {
|
|
4026
3935
|
return resolveIsResolvedEvent(sourceMarkets, eventTradingState);
|
|
4027
3936
|
}, [eventTradingState, sourceMarkets]);
|
|
4028
|
-
const groupedMarkets =
|
|
3937
|
+
const groupedMarkets = useMemo6(() => {
|
|
4029
3938
|
const sortedMarkets = sortMarketsByYesOddsDesc(sourceMarkets);
|
|
4030
3939
|
if (sortedMarkets.length === 0) {
|
|
4031
3940
|
return {
|
|
@@ -4066,16 +3975,16 @@ var MarketDetailsList = ({
|
|
|
4066
3975
|
return { primary, upcoming, resolved, closed };
|
|
4067
3976
|
}, [eventTradingState, isResolvedEvent, sourceMarkets]);
|
|
4068
3977
|
const shouldShowResolvedToggle = !isResolvedEvent && groupedMarkets.resolved.length > 0;
|
|
4069
|
-
const visibleResolvedMarkets =
|
|
3978
|
+
const visibleResolvedMarkets = useMemo6(() => {
|
|
4070
3979
|
if (isResolvedEvent || areResolvedMarketsVisible) return groupedMarkets.resolved;
|
|
4071
3980
|
return [];
|
|
4072
3981
|
}, [areResolvedMarketsVisible, groupedMarkets.resolved, isResolvedEvent]);
|
|
4073
|
-
const displayedMarkets =
|
|
3982
|
+
const displayedMarkets = useMemo6(() => {
|
|
4074
3983
|
return [...groupedMarkets.primary, ...visibleResolvedMarkets];
|
|
4075
3984
|
}, [groupedMarkets.primary, visibleResolvedMarkets]);
|
|
4076
3985
|
const hasPrefetchedMarkets = !!providedMarkets || !!((_b = eventTradingState == null ? void 0 : eventTradingState.marketStates) == null ? void 0 : _b.length);
|
|
4077
3986
|
const { prices: midpointsFallback, venueByOutcomeId: midpointsFallbackVenues } = useViewportMidpoints(displayedMarkets);
|
|
4078
|
-
|
|
3987
|
+
useEffect4(() => {
|
|
4079
3988
|
if (isResolvedEvent) {
|
|
4080
3989
|
setAreResolvedMarketsVisible(false);
|
|
4081
3990
|
return;
|
|
@@ -4084,14 +3993,14 @@ var MarketDetailsList = ({
|
|
|
4084
3993
|
setAreResolvedMarketsVisible(false);
|
|
4085
3994
|
}
|
|
4086
3995
|
}, [groupedMarkets.resolved.length, isResolvedEvent]);
|
|
4087
|
-
|
|
3996
|
+
useEffect4(() => {
|
|
4088
3997
|
if (previousSelectedMarketIdRef.current === selectedMarketId) return;
|
|
4089
3998
|
previousSelectedMarketIdRef.current = selectedMarketId;
|
|
4090
3999
|
if (!selectedMarketId) return;
|
|
4091
4000
|
if (!displayedMarkets.some((market) => market.id === selectedMarketId)) return;
|
|
4092
4001
|
setExpandedMarketId(selectedMarketId);
|
|
4093
4002
|
}, [displayedMarkets, selectedMarketId]);
|
|
4094
|
-
|
|
4003
|
+
useEffect4(() => {
|
|
4095
4004
|
if (displayedMarkets.length === 0) return;
|
|
4096
4005
|
if (selectedMarketId && displayedMarkets.some((market) => market.id === selectedMarketId)) {
|
|
4097
4006
|
return;
|
|
@@ -4110,7 +4019,7 @@ var MarketDetailsList = ({
|
|
|
4110
4019
|
}
|
|
4111
4020
|
tradingContext == null ? void 0 : tradingContext.selectMarket(fallbackSelectableMarket.id, fallbackSelectableMarket);
|
|
4112
4021
|
}, [displayedMarkets, expandedMarketId, selectedMarketId, sourceMarkets, tradingContext]);
|
|
4113
|
-
|
|
4022
|
+
useEffect4(() => {
|
|
4114
4023
|
var _a2, _b2;
|
|
4115
4024
|
if (!expandedMarketId) return;
|
|
4116
4025
|
if (displayedMarkets.some((market) => market.id === expandedMarketId)) return;
|
|
@@ -4223,11 +4132,11 @@ MarketDetailsList.displayName = "MarketDetailsList";
|
|
|
4223
4132
|
// src/events/list/index.tsx
|
|
4224
4133
|
import { MarketStatus as MarketStatus2, useAppConfig as useAppConfig2, useLabels as useLabels8, useVenueEvents } from "@agg-build/hooks";
|
|
4225
4134
|
import { VENUES } from "@agg-build/sdk";
|
|
4226
|
-
import { useEffect as
|
|
4135
|
+
import { useEffect as useEffect6, useMemo as useMemo8, useRef as useRef7, useState as useState6 } from "react";
|
|
4227
4136
|
|
|
4228
4137
|
// src/events/list/event-list-tabs.tsx
|
|
4229
4138
|
import { useAppConfig, useLabels as useLabels7 } from "@agg-build/hooks";
|
|
4230
|
-
import { useCallback as
|
|
4139
|
+
import { useCallback as useCallback3, useEffect as useEffect5, useMemo as useMemo7, useRef as useRef6, useState as useState5 } from "react";
|
|
4231
4140
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
4232
4141
|
var renderTabIcon = (tab, isActive) => {
|
|
4233
4142
|
if (tab.venueLogo) {
|
|
@@ -4246,7 +4155,7 @@ var renderTabIcon = (tab, isActive) => {
|
|
|
4246
4155
|
var useEventListTabs = (tabs) => {
|
|
4247
4156
|
const labels = useLabels7();
|
|
4248
4157
|
const { disabledVenues } = useAppConfig();
|
|
4249
|
-
return
|
|
4158
|
+
return useMemo7(() => {
|
|
4250
4159
|
const baseTabs = tabs != null ? tabs : getDefaultEventListTabs(labels);
|
|
4251
4160
|
if (disabledVenues.length === 0) return baseTabs;
|
|
4252
4161
|
const disabled = new Set(disabledVenues);
|
|
@@ -4265,12 +4174,12 @@ var EventListTabs = ({
|
|
|
4265
4174
|
overflowBehavior
|
|
4266
4175
|
}) => {
|
|
4267
4176
|
const resolvedTabs = useEventListTabs(tabs);
|
|
4268
|
-
|
|
4177
|
+
useEffect5(() => {
|
|
4269
4178
|
if (resolvedTabs.length === 0) return;
|
|
4270
4179
|
if (resolvedTabs.some((tab) => tab.value === activeTab)) return;
|
|
4271
4180
|
onTabChange(resolvedTabs[0].value);
|
|
4272
4181
|
}, [activeTab, onTabChange, resolvedTabs]);
|
|
4273
|
-
const items =
|
|
4182
|
+
const items = useMemo7(() => {
|
|
4274
4183
|
return resolvedTabs.map((tab) => {
|
|
4275
4184
|
const isActive = tab.value === activeTab;
|
|
4276
4185
|
return {
|
|
@@ -4296,11 +4205,11 @@ var EventListTabs = ({
|
|
|
4296
4205
|
};
|
|
4297
4206
|
EventListTabs.displayName = "EventListTabs";
|
|
4298
4207
|
var useEventListTabsHeaderOverflow = (recomputeOn) => {
|
|
4299
|
-
const headerRef =
|
|
4300
|
-
const titleRef =
|
|
4301
|
-
const requiredTabsWidthRef =
|
|
4302
|
-
const [shouldUseSelectOverflow, setShouldUseSelectOverflow] =
|
|
4303
|
-
const updateTabsOverflowBehavior =
|
|
4208
|
+
const headerRef = useRef6(null);
|
|
4209
|
+
const titleRef = useRef6(null);
|
|
4210
|
+
const requiredTabsWidthRef = useRef6(0);
|
|
4211
|
+
const [shouldUseSelectOverflow, setShouldUseSelectOverflow] = useState5(false);
|
|
4212
|
+
const updateTabsOverflowBehavior = useCallback3(() => {
|
|
4304
4213
|
if (typeof window === "undefined") return;
|
|
4305
4214
|
const headerElement = headerRef.current;
|
|
4306
4215
|
const titleElement = titleRef.current;
|
|
@@ -4326,10 +4235,10 @@ var useEventListTabsHeaderOverflow = (recomputeOn) => {
|
|
|
4326
4235
|
if (requiredTabsWidthRef.current <= 0) return;
|
|
4327
4236
|
setShouldUseSelectOverflow(requiredTabsWidthRef.current > availableTabsWidth);
|
|
4328
4237
|
}, []);
|
|
4329
|
-
|
|
4238
|
+
useEffect5(() => {
|
|
4330
4239
|
updateTabsOverflowBehavior();
|
|
4331
4240
|
}, [recomputeOn, updateTabsOverflowBehavior]);
|
|
4332
|
-
|
|
4241
|
+
useEffect5(() => {
|
|
4333
4242
|
if (typeof window === "undefined") return;
|
|
4334
4243
|
const handleResize = () => {
|
|
4335
4244
|
updateTabsOverflowBehavior();
|
|
@@ -4339,7 +4248,7 @@ var useEventListTabsHeaderOverflow = (recomputeOn) => {
|
|
|
4339
4248
|
window.removeEventListener("resize", handleResize);
|
|
4340
4249
|
};
|
|
4341
4250
|
}, [updateTabsOverflowBehavior]);
|
|
4342
|
-
|
|
4251
|
+
useEffect5(() => {
|
|
4343
4252
|
if (typeof ResizeObserver === "undefined") return;
|
|
4344
4253
|
const headerElement = headerRef.current;
|
|
4345
4254
|
const titleElement = titleRef.current;
|
|
@@ -4376,32 +4285,32 @@ var EventList = ({
|
|
|
4376
4285
|
const labels = useLabels8();
|
|
4377
4286
|
const { disabledVenues } = useAppConfig2();
|
|
4378
4287
|
const resolvedTabs = useEventListTabs();
|
|
4379
|
-
const visibleVenues =
|
|
4288
|
+
const visibleVenues = useMemo8(
|
|
4380
4289
|
() => disabledVenues.length === 0 ? void 0 : VENUES.filter(
|
|
4381
4290
|
(v) => !disabledVenues.includes(v)
|
|
4382
4291
|
),
|
|
4383
4292
|
[disabledVenues]
|
|
4384
4293
|
);
|
|
4385
|
-
const [activeTabValue, setActiveTabValue] =
|
|
4294
|
+
const [activeTabValue, setActiveTabValue] = useState6(
|
|
4386
4295
|
(_b = initialVenueTab != null ? initialVenueTab : (_a = resolvedTabs[0]) == null ? void 0 : _a.value) != null ? _b : "matched"
|
|
4387
4296
|
);
|
|
4388
4297
|
const { headerRef, titleRef, shouldUseSelectOverflow } = useEventListTabsHeaderOverflow(resolvedTabs);
|
|
4389
|
-
const activeTab =
|
|
4298
|
+
const activeTab = useMemo8(() => {
|
|
4390
4299
|
return resolvedTabs.find((tab) => tab.value === activeTabValue);
|
|
4391
4300
|
}, [activeTabValue, resolvedTabs]);
|
|
4392
|
-
const venues =
|
|
4301
|
+
const venues = useMemo8(() => {
|
|
4393
4302
|
return resolveTabVenus(activeTab, visibleVenues);
|
|
4394
4303
|
}, [activeTab, visibleVenues]);
|
|
4395
|
-
const matchStatus =
|
|
4304
|
+
const matchStatus = useMemo8(() => {
|
|
4396
4305
|
return activeTabValue === "matched" ? activeTab == null ? void 0 : activeTab.matchStatus : void 0;
|
|
4397
4306
|
}, [activeTabValue, activeTab]);
|
|
4398
|
-
const resolvedMaxVisibleItems =
|
|
4307
|
+
const resolvedMaxVisibleItems = useMemo8(() => {
|
|
4399
4308
|
if (!Number.isFinite(maxVisibleItems)) return void 0;
|
|
4400
4309
|
return Math.max(1, Math.floor(maxVisibleItems));
|
|
4401
4310
|
}, [maxVisibleItems]);
|
|
4402
4311
|
const requestLimit = resolvedMaxVisibleItems != null ? resolvedMaxVisibleItems : limit;
|
|
4403
4312
|
const shouldPaginate = resolvedMaxVisibleItems == null;
|
|
4404
|
-
const endDateFrom =
|
|
4313
|
+
const endDateFrom = useMemo8(() => {
|
|
4405
4314
|
if (search) return void 0;
|
|
4406
4315
|
const BUCKET_MINUTES = 5;
|
|
4407
4316
|
const bucket = /* @__PURE__ */ new Date();
|
|
@@ -4434,21 +4343,21 @@ var EventList = ({
|
|
|
4434
4343
|
} : {}), {
|
|
4435
4344
|
initialPages: initialLoadedPageCount
|
|
4436
4345
|
}));
|
|
4437
|
-
|
|
4346
|
+
useEffect6(() => {
|
|
4438
4347
|
if (stateRef) {
|
|
4439
4348
|
stateRef.current = { venueTab: activeTabValue, loadedPageCount };
|
|
4440
4349
|
}
|
|
4441
4350
|
}, [stateRef, activeTabValue, loadedPageCount]);
|
|
4442
|
-
const filteredEvents =
|
|
4351
|
+
const filteredEvents = useMemo8(() => {
|
|
4443
4352
|
return filterEventsByTabValue(events, activeTabValue);
|
|
4444
4353
|
}, [events, activeTabValue]);
|
|
4445
|
-
const groupedEvents =
|
|
4354
|
+
const groupedEvents = useMemo8(() => {
|
|
4446
4355
|
return splitEventsByLifecycle(filteredEvents);
|
|
4447
4356
|
}, [filteredEvents]);
|
|
4448
|
-
const orderedEvents =
|
|
4357
|
+
const orderedEvents = useMemo8(() => {
|
|
4449
4358
|
return groupedEvents.open;
|
|
4450
4359
|
}, [groupedEvents.open]);
|
|
4451
|
-
const tileEvents =
|
|
4360
|
+
const tileEvents = useMemo8(() => {
|
|
4452
4361
|
const normalizedEvents = orderedEvents.map((event) => mapEventToEventListItemEvent(event)).filter((event) => event != null);
|
|
4453
4362
|
if (resolvedMaxVisibleItems == null) return normalizedEvents;
|
|
4454
4363
|
return normalizedEvents.slice(0, resolvedMaxVisibleItems);
|
|
@@ -4456,8 +4365,8 @@ var EventList = ({
|
|
|
4456
4365
|
const shouldRenderLoadingState = isLoading && !isPlaceholderData && tileEvents.length === 0;
|
|
4457
4366
|
const shouldRenderEmptyState = !isLoading && !isError && tileEvents.length === 0;
|
|
4458
4367
|
const shouldRenderPaginationLoadingItems = shouldPaginate && hasNextPage;
|
|
4459
|
-
const loadMoreRef =
|
|
4460
|
-
|
|
4368
|
+
const loadMoreRef = useRef7(null);
|
|
4369
|
+
useEffect6(() => {
|
|
4461
4370
|
if (!shouldPaginate) return;
|
|
4462
4371
|
if (!hasNextPage) return;
|
|
4463
4372
|
if (typeof IntersectionObserver === "undefined") return;
|