@mbpockets/shared-ui 0.1.20 → 0.2.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/EventPage/index.cjs +208 -121
- package/dist/EventPage/index.cjs.map +1 -1
- package/dist/EventPage/index.mjs +200 -119
- package/dist/EventPage/index.mjs.map +1 -1
- package/dist/EventPage.cjs +208 -121
- package/dist/EventPage.cjs.map +1 -1
- package/dist/EventPage.mjs +200 -119
- package/dist/EventPage.mjs.map +1 -1
- package/dist/PlayerPage/index.cjs.map +1 -1
- package/dist/PlayerPage/index.mjs.map +1 -1
- package/dist/PlayerPage.cjs.map +1 -1
- package/dist/PlayerPage.mjs.map +1 -1
- package/dist/ProfilePage/index.cjs.map +1 -1
- package/dist/ProfilePage/index.mjs.map +1 -1
- package/dist/ProfilePage.cjs.map +1 -1
- package/dist/ProfilePage.mjs.map +1 -1
- package/dist/SearchPage/Filters/index.cjs +149 -43
- package/dist/SearchPage/Filters/index.cjs.map +1 -1
- package/dist/SearchPage/Filters/index.d.cts +1 -2
- package/dist/SearchPage/Filters/index.d.ts +1 -2
- package/dist/SearchPage/Filters/index.mjs +146 -42
- package/dist/SearchPage/Filters/index.mjs.map +1 -1
- package/dist/SearchPage/Filters.cjs +149 -43
- package/dist/SearchPage/Filters.cjs.map +1 -1
- package/dist/SearchPage/Filters.d.cts +38 -3
- package/dist/SearchPage/Filters.d.ts +38 -3
- package/dist/SearchPage/Filters.mjs +146 -42
- package/dist/SearchPage/Filters.mjs.map +1 -1
- package/dist/SearchPage/Results/index.cjs +138 -67
- package/dist/SearchPage/Results/index.cjs.map +1 -1
- package/dist/SearchPage/Results/index.mjs +126 -63
- package/dist/SearchPage/Results/index.mjs.map +1 -1
- package/dist/SearchPage/Results.cjs +138 -67
- package/dist/SearchPage/Results.cjs.map +1 -1
- package/dist/SearchPage/Results.d.cts +21 -12
- package/dist/SearchPage/Results.d.ts +21 -12
- package/dist/SearchPage/Results.mjs +126 -63
- package/dist/SearchPage/Results.mjs.map +1 -1
- package/dist/SearchPage/index.cjs +495 -221
- package/dist/SearchPage/index.cjs.map +1 -1
- package/dist/SearchPage/index.d.cts +1 -1
- package/dist/SearchPage/index.d.ts +1 -1
- package/dist/SearchPage/index.mjs +482 -216
- package/dist/SearchPage/index.mjs.map +1 -1
- package/dist/SearchPage.cjs +495 -221
- package/dist/SearchPage.cjs.map +1 -1
- package/dist/SearchPage.d.cts +78 -7
- package/dist/SearchPage.d.ts +78 -7
- package/dist/SearchPage.mjs +482 -216
- package/dist/SearchPage.mjs.map +1 -1
- package/dist/TablePage/index.cjs +10 -1
- package/dist/TablePage/index.cjs.map +1 -1
- package/dist/TablePage/index.d.cts +2 -2
- package/dist/TablePage/index.d.ts +2 -2
- package/dist/TablePage/index.mjs +10 -2
- package/dist/TablePage/index.mjs.map +1 -1
- package/dist/TablePage.cjs +10 -1
- package/dist/TablePage.cjs.map +1 -1
- package/dist/TablePage.d.cts +7 -2
- package/dist/TablePage.d.ts +7 -2
- package/dist/TablePage.mjs +10 -2
- package/dist/TablePage.mjs.map +1 -1
- package/dist/index.cjs +446 -178
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.mjs +434 -175
- package/dist/index.mjs.map +1 -1
- package/dist/mocks/SearchResults.cjs +22 -15
- package/dist/mocks/SearchResults.cjs.map +1 -1
- package/dist/mocks/SearchResults.d.cts +3 -15
- package/dist/mocks/SearchResults.d.ts +3 -15
- package/dist/mocks/SearchResults.mjs +22 -15
- package/dist/mocks/SearchResults.mjs.map +1 -1
- package/dist/mocks/index.cjs +22 -15
- package/dist/mocks/index.cjs.map +1 -1
- package/dist/mocks/index.d.cts +2 -1
- package/dist/mocks/index.d.ts +2 -1
- package/dist/mocks/index.mjs +22 -15
- package/dist/mocks/index.mjs.map +1 -1
- package/dist/mocks.cjs +22 -15
- package/dist/mocks.cjs.map +1 -1
- package/dist/mocks.d.cts +2 -1
- package/dist/mocks.d.ts +2 -1
- package/dist/mocks.mjs +22 -15
- package/dist/mocks.mjs.map +1 -1
- package/dist/{common → shared}/index.cjs.map +1 -1
- package/dist/{common → shared}/index.d.cts +1 -1
- package/dist/{common → shared}/index.d.ts +1 -1
- package/dist/{common → shared}/index.mjs.map +1 -1
- package/dist/{common.cjs → shared.cjs} +2 -2
- package/dist/{common.cjs.map → shared.cjs.map} +1 -1
- package/dist/{common.css → shared.css} +1 -1
- package/dist/{common.mjs → shared.mjs} +2 -2
- package/dist/{common.mjs.map → shared.mjs.map} +1 -1
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/search.d.cts +23 -1
- package/dist/types/search.d.ts +23 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
- /package/dist/{common → shared}/Modal/index.cjs +0 -0
- /package/dist/{common → shared}/Modal/index.cjs.map +0 -0
- /package/dist/{common → shared}/Modal/index.css +0 -0
- /package/dist/{common → shared}/Modal/index.css.map +0 -0
- /package/dist/{common → shared}/Modal/index.d.cts +0 -0
- /package/dist/{common → shared}/Modal/index.d.ts +0 -0
- /package/dist/{common → shared}/Modal/index.mjs +0 -0
- /package/dist/{common → shared}/Modal/index.mjs.map +0 -0
- /package/dist/{common → shared}/Modal.cjs +0 -0
- /package/dist/{common → shared}/Modal.cjs.map +0 -0
- /package/dist/{common → shared}/Modal.css +0 -0
- /package/dist/{common → shared}/Modal.css.map +0 -0
- /package/dist/{common → shared}/Modal.d.cts +0 -0
- /package/dist/{common → shared}/Modal.d.ts +0 -0
- /package/dist/{common → shared}/Modal.mjs +0 -0
- /package/dist/{common → shared}/Modal.mjs.map +0 -0
- /package/dist/{common → shared}/index.cjs +0 -0
- /package/dist/{common → shared}/index.css +0 -0
- /package/dist/{common → shared}/index.css.map +0 -0
- /package/dist/{common → shared}/index.mjs +0 -0
- /package/dist/{common.css.map → shared.css.map} +0 -0
- /package/dist/{common.d.cts → shared.d.cts} +0 -0
- /package/dist/{common.d.ts → shared.d.ts} +0 -0
package/dist/EventPage/index.cjs
CHANGED
|
@@ -12,12 +12,18 @@ var CancelIcon = require('@mui/icons-material/Cancel');
|
|
|
12
12
|
var CheckCircleIcon = require('@mui/icons-material/CheckCircle');
|
|
13
13
|
var Box2 = require('@mui/material/Box');
|
|
14
14
|
var Grid5 = require('@mui/material/Grid');
|
|
15
|
-
var
|
|
16
|
-
var
|
|
15
|
+
var Card3 = require('@mui/material/Card');
|
|
16
|
+
var CardContent3 = require('@mui/material/CardContent');
|
|
17
17
|
var CardHeader = require('@mui/material/CardHeader');
|
|
18
18
|
var Divider = require('@mui/material/Divider');
|
|
19
|
+
var Typography4 = require('@mui/material/Typography');
|
|
20
|
+
var Pagination = require('@mui/material/Pagination');
|
|
19
21
|
var Avatar = require('@mui/material/Avatar');
|
|
20
|
-
var
|
|
22
|
+
var Chip2 = require('@mui/material/Chip');
|
|
23
|
+
var LinearProgress = require('@mui/material/LinearProgress');
|
|
24
|
+
var PersonIcon = require('@mui/icons-material/Person');
|
|
25
|
+
var SupervisorAccountIcon = require('@mui/icons-material/SupervisorAccount');
|
|
26
|
+
var TableRestaurantIcon = require('@mui/icons-material/TableRestaurant');
|
|
21
27
|
var CalendarTodayIcon = require('@mui/icons-material/CalendarToday');
|
|
22
28
|
var LocationOnIcon = require('@mui/icons-material/LocationOn');
|
|
23
29
|
var EventIcon = require('@mui/icons-material/Event');
|
|
@@ -32,12 +38,18 @@ var CancelIcon__default = /*#__PURE__*/_interopDefault(CancelIcon);
|
|
|
32
38
|
var CheckCircleIcon__default = /*#__PURE__*/_interopDefault(CheckCircleIcon);
|
|
33
39
|
var Box2__default = /*#__PURE__*/_interopDefault(Box2);
|
|
34
40
|
var Grid5__default = /*#__PURE__*/_interopDefault(Grid5);
|
|
35
|
-
var
|
|
36
|
-
var
|
|
41
|
+
var Card3__default = /*#__PURE__*/_interopDefault(Card3);
|
|
42
|
+
var CardContent3__default = /*#__PURE__*/_interopDefault(CardContent3);
|
|
37
43
|
var CardHeader__default = /*#__PURE__*/_interopDefault(CardHeader);
|
|
38
44
|
var Divider__default = /*#__PURE__*/_interopDefault(Divider);
|
|
45
|
+
var Typography4__default = /*#__PURE__*/_interopDefault(Typography4);
|
|
46
|
+
var Pagination__default = /*#__PURE__*/_interopDefault(Pagination);
|
|
39
47
|
var Avatar__default = /*#__PURE__*/_interopDefault(Avatar);
|
|
40
|
-
var
|
|
48
|
+
var Chip2__default = /*#__PURE__*/_interopDefault(Chip2);
|
|
49
|
+
var LinearProgress__default = /*#__PURE__*/_interopDefault(LinearProgress);
|
|
50
|
+
var PersonIcon__default = /*#__PURE__*/_interopDefault(PersonIcon);
|
|
51
|
+
var SupervisorAccountIcon__default = /*#__PURE__*/_interopDefault(SupervisorAccountIcon);
|
|
52
|
+
var TableRestaurantIcon__default = /*#__PURE__*/_interopDefault(TableRestaurantIcon);
|
|
41
53
|
var CalendarTodayIcon__default = /*#__PURE__*/_interopDefault(CalendarTodayIcon);
|
|
42
54
|
var LocationOnIcon__default = /*#__PURE__*/_interopDefault(LocationOnIcon);
|
|
43
55
|
var EventIcon__default = /*#__PURE__*/_interopDefault(EventIcon);
|
|
@@ -129,6 +141,13 @@ function Chip({ tag, removeCallback }) {
|
|
|
129
141
|
function generateTagsDisplay(tag) {
|
|
130
142
|
return /* @__PURE__ */ jsxRuntime.jsx(Chip, { tag }, tag.id);
|
|
131
143
|
}
|
|
144
|
+
function renderTagsFromIds(ids, legalTags) {
|
|
145
|
+
if (!ids || !legalTags || legalTags.length === 0) {
|
|
146
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
147
|
+
}
|
|
148
|
+
const validTags = ids.map((id) => legalTags.find((tag) => tag.id === id)).filter((tag) => Boolean(tag));
|
|
149
|
+
return validTags.map((tag) => generateTagsDisplay(tag));
|
|
150
|
+
}
|
|
132
151
|
function EventBannerEdit({
|
|
133
152
|
initialValue,
|
|
134
153
|
onCancel,
|
|
@@ -937,6 +956,14 @@ var generateLink = function(link) {
|
|
|
937
956
|
link.text
|
|
938
957
|
);
|
|
939
958
|
};
|
|
959
|
+
var NextGameLabel = ({ nextGameTime }) => {
|
|
960
|
+
const date = typeof nextGameTime === "string" ? new Date(nextGameTime) : nextGameTime;
|
|
961
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(material.Typography, { variant: "caption", sx: { display: "block", mb: 1, color: "primary.main", fontWeight: "bold" }, children: [
|
|
962
|
+
"Next Game: ",
|
|
963
|
+
date.toLocaleString()
|
|
964
|
+
] });
|
|
965
|
+
};
|
|
966
|
+
var NextGameLabel_default = NextGameLabel;
|
|
940
967
|
var BaseSearchResultCard = ({
|
|
941
968
|
result,
|
|
942
969
|
onClick,
|
|
@@ -944,13 +971,19 @@ var BaseSearchResultCard = ({
|
|
|
944
971
|
icon,
|
|
945
972
|
tags
|
|
946
973
|
}) => {
|
|
947
|
-
const handleClick = () => {
|
|
974
|
+
const handleClick = (e) => {
|
|
948
975
|
if (onClick) {
|
|
949
|
-
|
|
976
|
+
if (e.ctrlKey || e.metaKey || e.shiftKey) {
|
|
977
|
+
e.stopPropagation();
|
|
978
|
+
const url = `/${result.type}/${result.id}`;
|
|
979
|
+
window.open(url, "_blank");
|
|
980
|
+
} else {
|
|
981
|
+
onClick(result.id);
|
|
982
|
+
}
|
|
950
983
|
}
|
|
951
984
|
};
|
|
952
985
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
953
|
-
|
|
986
|
+
Card3__default.default,
|
|
954
987
|
{
|
|
955
988
|
elevation: 6,
|
|
956
989
|
sx: {
|
|
@@ -963,48 +996,21 @@ var BaseSearchResultCard = ({
|
|
|
963
996
|
},
|
|
964
997
|
marginBottom: 2
|
|
965
998
|
},
|
|
966
|
-
onClick: handleClick,
|
|
967
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
968
|
-
icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
969
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
970
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
999
|
+
onClick: (e) => handleClick(e),
|
|
1000
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(CardContent3__default.default, { sx: { display: "flex", alignItems: "flex-start" }, children: [
|
|
1001
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { mr: 2, display: "flex", alignItems: "center", pt: 0.5 }, children: icon }),
|
|
1002
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { flex: 1 }, children: [
|
|
1003
|
+
/* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "h6", sx: { mb: 1 }, children: result.title }),
|
|
1004
|
+
result.nextGameTime && /* @__PURE__ */ jsxRuntime.jsx(NextGameLabel_default, { nextGameTime: result.nextGameTime }),
|
|
1005
|
+
result.type === "table" && result.shortDescription ? /* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "body2", sx: { mb: 1 }, children: result.shortDescription }) : null,
|
|
971
1006
|
children,
|
|
972
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
// Add some padding to prevent clipping of the leftmost tag
|
|
980
|
-
}, children: (() => {
|
|
981
|
-
const MAX_VISIBLE = 5;
|
|
982
|
-
const tagObjs = result.tags.map((tagId) => tags.find((t) => t.id === tagId)).filter((t) => Boolean(t));
|
|
983
|
-
const visible = tagObjs.slice(0, MAX_VISIBLE);
|
|
984
|
-
const hiddenCount = Math.max(tagObjs.length - visible.length, 0);
|
|
985
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
986
|
-
visible.map((tag) => generateTagsDisplay(tag)),
|
|
987
|
-
hiddenCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
988
|
-
"span",
|
|
989
|
-
{
|
|
990
|
-
className: "inline-block text-sm px-3 py-1 rounded-full outline-black outline-2 font-outlined",
|
|
991
|
-
style: {
|
|
992
|
-
marginTop: "6px",
|
|
993
|
-
marginRight: "6px",
|
|
994
|
-
marginBottom: "6px",
|
|
995
|
-
background: "#9e9e9e",
|
|
996
|
-
color: "white",
|
|
997
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
998
|
-
},
|
|
999
|
-
children: [
|
|
1000
|
-
"+",
|
|
1001
|
-
hiddenCount,
|
|
1002
|
-
" more"
|
|
1003
|
-
]
|
|
1004
|
-
}
|
|
1005
|
-
)
|
|
1006
|
-
] });
|
|
1007
|
-
})() }) })
|
|
1007
|
+
result.type === "table" ? /* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "body1", children: (() => {
|
|
1008
|
+
var _a, _b;
|
|
1009
|
+
const full = (_b = (_a = result.fullDescription) != null ? _a : result.description) != null ? _b : "";
|
|
1010
|
+
const text = full || "";
|
|
1011
|
+
return text.length > 200 ? `${text.slice(0, 200).trimEnd()}...` : text;
|
|
1012
|
+
})() }) : /* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "body1", children: result.description }),
|
|
1013
|
+
result.tags && result.tags.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { mt: 1, display: "flex", flexWrap: "wrap", gap: 1 }, children: renderTagsFromIds(result.tags, tags) })
|
|
1008
1014
|
] })
|
|
1009
1015
|
] })
|
|
1010
1016
|
}
|
|
@@ -1059,21 +1065,60 @@ var PlayerResultCard = ({
|
|
|
1059
1065
|
return /* @__PURE__ */ jsxRuntime.jsx(BaseSearchResultCard_default, { result, onClick, icon: playerIcon, tags });
|
|
1060
1066
|
};
|
|
1061
1067
|
var PlayerResultCard_default = PlayerResultCard;
|
|
1062
|
-
var TableResultCard = ({
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1068
|
+
var TableResultCard = ({
|
|
1069
|
+
result,
|
|
1070
|
+
onClick,
|
|
1071
|
+
tags
|
|
1072
|
+
}) => {
|
|
1073
|
+
const rawCapacity = result.capacity;
|
|
1074
|
+
const hasDefinedCapacity = typeof rawCapacity === "number" && Number.isFinite(rawCapacity) && rawCapacity > 0;
|
|
1075
|
+
const capacity = hasDefinedCapacity ? rawCapacity : 0;
|
|
1076
|
+
const activePlayers = typeof result.numPlayers === "number" ? result.numPlayers : 0;
|
|
1077
|
+
const availableSlots = Math.max(capacity - activePlayers, 0);
|
|
1078
|
+
const hasDM = typeof result.hasDM === "boolean" ? result.hasDM : Boolean(result.dungeonMaster);
|
|
1079
|
+
const occupancyPercentage = hasDefinedCapacity ? activePlayers / capacity * 100 : 100;
|
|
1080
|
+
const tableIcon = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1081
|
+
TableRestaurantIcon__default.default,
|
|
1082
|
+
{
|
|
1083
|
+
sx: {
|
|
1084
|
+
fontSize: 40,
|
|
1085
|
+
color: "primary.main"
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
);
|
|
1089
|
+
return /* @__PURE__ */ jsxRuntime.jsx(BaseSearchResultCard_default, { result, onClick, icon: tableIcon, tags, children: /* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { mb: 2 }, children: [
|
|
1090
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { display: "flex", justifyContent: "space-between", alignItems: "center", mb: 1 }, children: [
|
|
1091
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", children: [
|
|
1092
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Players:" }),
|
|
1093
|
+
" ",
|
|
1094
|
+
hasDefinedCapacity ? `${activePlayers}/${capacity}` : activePlayers
|
|
1073
1095
|
] }),
|
|
1074
|
-
|
|
1096
|
+
typeof hasDM === "boolean" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1097
|
+
Chip2__default.default,
|
|
1098
|
+
{
|
|
1099
|
+
icon: hasDM ? /* @__PURE__ */ jsxRuntime.jsx(SupervisorAccountIcon__default.default, {}) : /* @__PURE__ */ jsxRuntime.jsx(PersonIcon__default.default, {}),
|
|
1100
|
+
label: hasDM ? "DM Present" : "No DM",
|
|
1101
|
+
color: hasDM ? "success" : "warning",
|
|
1102
|
+
size: "small"
|
|
1103
|
+
}
|
|
1104
|
+
)
|
|
1075
1105
|
] }),
|
|
1076
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1106
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1107
|
+
LinearProgress__default.default,
|
|
1108
|
+
{
|
|
1109
|
+
variant: "determinate",
|
|
1110
|
+
value: occupancyPercentage,
|
|
1111
|
+
sx: {
|
|
1112
|
+
height: 10,
|
|
1113
|
+
borderRadius: 5,
|
|
1114
|
+
backgroundColor: "#e0e0e0",
|
|
1115
|
+
"& .MuiLinearProgress-bar": {
|
|
1116
|
+
backgroundColor: hasDefinedCapacity ? availableSlots > 0 ? "#4caf50" : "#f44336" : "#2196f3"
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
}
|
|
1120
|
+
),
|
|
1121
|
+
hasDefinedCapacity && /* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "body2", sx: { mt: 0.5, textAlign: "right" }, children: availableSlots > 0 ? `${availableSlots} slot${availableSlots !== 1 ? "s" : ""} available` : "Table full" })
|
|
1077
1122
|
] }) });
|
|
1078
1123
|
};
|
|
1079
1124
|
var TableResultCard_default = TableResultCard;
|
|
@@ -1092,20 +1137,42 @@ var EventResultCard = ({
|
|
|
1092
1137
|
try {
|
|
1093
1138
|
const date = new Date(dateString);
|
|
1094
1139
|
return date.toLocaleDateString("en-US", options);
|
|
1095
|
-
} catch {
|
|
1140
|
+
} catch (error) {
|
|
1096
1141
|
return dateString;
|
|
1097
1142
|
}
|
|
1098
1143
|
};
|
|
1099
1144
|
const formattedDate = result.date ? formatDate(result.date) : "Date TBD";
|
|
1100
1145
|
const location = result.location || "Location TBD";
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1146
|
+
const eventIcon = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1147
|
+
EventIcon__default.default,
|
|
1148
|
+
{
|
|
1149
|
+
sx: {
|
|
1150
|
+
fontSize: 40,
|
|
1151
|
+
color: "primary.main"
|
|
1152
|
+
}
|
|
1153
|
+
}
|
|
1154
|
+
);
|
|
1155
|
+
return /* @__PURE__ */ jsxRuntime.jsx(BaseSearchResultCard_default, { result, onClick, icon: eventIcon, tags, children: /* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { mb: 2 }, children: [
|
|
1156
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { display: "flex", alignItems: "center", mb: 1 }, children: [
|
|
1157
|
+
/* @__PURE__ */ jsxRuntime.jsx(CalendarTodayIcon__default.default, { sx: { mr: 1, color: "primary.main" } }),
|
|
1158
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", children: [
|
|
1159
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Date:" }),
|
|
1160
|
+
" ",
|
|
1161
|
+
formattedDate
|
|
1162
|
+
] })
|
|
1105
1163
|
] }),
|
|
1106
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1107
|
-
/* @__PURE__ */ jsxRuntime.jsx(LocationOnIcon__default.default, { sx: { mr: 1,
|
|
1108
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1164
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { display: "flex", alignItems: "center" }, children: [
|
|
1165
|
+
/* @__PURE__ */ jsxRuntime.jsx(LocationOnIcon__default.default, { sx: { mr: 1, color: "primary.main" } }),
|
|
1166
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", children: [
|
|
1167
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Location:" }),
|
|
1168
|
+
" ",
|
|
1169
|
+
location
|
|
1170
|
+
] })
|
|
1171
|
+
] }),
|
|
1172
|
+
result.organizer && /* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", sx: { mt: 1 }, children: [
|
|
1173
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Organizer:" }),
|
|
1174
|
+
" ",
|
|
1175
|
+
result.organizer
|
|
1109
1176
|
] })
|
|
1110
1177
|
] }) });
|
|
1111
1178
|
};
|
|
@@ -1113,9 +1180,11 @@ var EventResultCard_default = EventResultCard;
|
|
|
1113
1180
|
var ResultsContainer = ({
|
|
1114
1181
|
results,
|
|
1115
1182
|
onResultClick,
|
|
1116
|
-
tags
|
|
1183
|
+
tags,
|
|
1184
|
+
pagination,
|
|
1185
|
+
onPacketChange
|
|
1117
1186
|
}) => {
|
|
1118
|
-
if (results.length === 0 || !results.map) {
|
|
1187
|
+
if (!results || results.length === 0 || !results.map) {
|
|
1119
1188
|
return /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { textAlign: "center", py: 4 }, children: "No results found. Try adjusting your filters." });
|
|
1120
1189
|
}
|
|
1121
1190
|
const onPlayerClick = (id) => {
|
|
@@ -1127,43 +1196,68 @@ var ResultsContainer = ({
|
|
|
1127
1196
|
const onEventClick = (id) => {
|
|
1128
1197
|
onResultClick == null ? void 0 : onResultClick(id, "event");
|
|
1129
1198
|
};
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1199
|
+
const handlePacketChange = (_event, packet) => {
|
|
1200
|
+
onPacketChange == null ? void 0 : onPacketChange(packet);
|
|
1201
|
+
};
|
|
1202
|
+
const startResult = pagination ? (pagination.currentPacket - 1) * pagination.packetSize + 1 : 1;
|
|
1203
|
+
const endResult = pagination ? Math.min(pagination.currentPacket * pagination.packetSize, pagination.totalResults) : results.length;
|
|
1204
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
1205
|
+
pagination && /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { display: "flex", justifyContent: "space-between", alignItems: "center", mb: 1 }, children: /* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", color: "text.secondary", children: [
|
|
1206
|
+
"Showing ",
|
|
1207
|
+
startResult,
|
|
1208
|
+
"-",
|
|
1209
|
+
endResult,
|
|
1210
|
+
" of ",
|
|
1211
|
+
pagination.totalResults,
|
|
1212
|
+
" results"
|
|
1213
|
+
] }) }),
|
|
1214
|
+
results.map((result) => {
|
|
1215
|
+
switch (result.type) {
|
|
1216
|
+
case "player":
|
|
1217
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1218
|
+
PlayerResultCard_default,
|
|
1219
|
+
{
|
|
1220
|
+
result,
|
|
1221
|
+
onClick: onPlayerClick,
|
|
1222
|
+
tags
|
|
1223
|
+
},
|
|
1224
|
+
result.id
|
|
1225
|
+
);
|
|
1226
|
+
case "table":
|
|
1227
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1228
|
+
TableResultCard_default,
|
|
1229
|
+
{
|
|
1230
|
+
result,
|
|
1231
|
+
onClick: onTableClick,
|
|
1232
|
+
tags
|
|
1233
|
+
},
|
|
1234
|
+
result.id
|
|
1235
|
+
);
|
|
1236
|
+
case "event":
|
|
1237
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1238
|
+
EventResultCard_default,
|
|
1239
|
+
{
|
|
1240
|
+
result,
|
|
1241
|
+
onClick: onEventClick,
|
|
1242
|
+
tags
|
|
1243
|
+
},
|
|
1244
|
+
result.id
|
|
1245
|
+
);
|
|
1246
|
+
default:
|
|
1247
|
+
console.error(`Unknown result type: ${result.type}`);
|
|
1248
|
+
return null;
|
|
1249
|
+
}
|
|
1250
|
+
}),
|
|
1251
|
+
pagination && pagination.totalPackets > 1 && /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { display: "flex", justifyContent: "center", mt: 4 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1252
|
+
Pagination__default.default,
|
|
1253
|
+
{
|
|
1254
|
+
count: pagination.totalPackets,
|
|
1255
|
+
page: pagination.currentPacket,
|
|
1256
|
+
onChange: handlePacketChange,
|
|
1257
|
+
color: "primary"
|
|
1258
|
+
}
|
|
1259
|
+
) })
|
|
1260
|
+
] });
|
|
1167
1261
|
};
|
|
1168
1262
|
var ResultsContainer_default = ResultsContainer;
|
|
1169
1263
|
var ScrollableResultsList = ({
|
|
@@ -1181,21 +1275,14 @@ var TablesScrollableList = ({
|
|
|
1181
1275
|
results,
|
|
1182
1276
|
tags,
|
|
1183
1277
|
maxHeight,
|
|
1184
|
-
onResultClick
|
|
1185
|
-
sortBy = "availability"
|
|
1278
|
+
onResultClick
|
|
1186
1279
|
}) => {
|
|
1187
1280
|
const tables = (results || []).filter((r) => (r == null ? void 0 : r.type) === "table");
|
|
1188
|
-
const getAvailableSlots = (r) => {
|
|
1189
|
-
const capacity = typeof r.capacity === "number" ? r.capacity : 0;
|
|
1190
|
-
const playersCount = typeof r.numPlayers === "number" ? r.numPlayers : 0;
|
|
1191
|
-
return Math.max(capacity - playersCount, 0);
|
|
1192
|
-
};
|
|
1193
|
-
const sortedTables = sortBy === "availability" ? [...tables].sort((a, b) => getAvailableSlots(b) - getAvailableSlots(a)) : tables;
|
|
1194
1281
|
const handleClick = (id) => onResultClick == null ? void 0 : onResultClick(id);
|
|
1195
1282
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1196
1283
|
ScrollableResultsList_default,
|
|
1197
1284
|
{
|
|
1198
|
-
results:
|
|
1285
|
+
results: tables,
|
|
1199
1286
|
tags,
|
|
1200
1287
|
maxHeight,
|
|
1201
1288
|
onResultClick: (id, type) => {
|
|
@@ -1211,10 +1298,10 @@ var EventTablesCard = ({
|
|
|
1211
1298
|
maxHeight = 450,
|
|
1212
1299
|
onTableClick
|
|
1213
1300
|
}) => {
|
|
1214
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1301
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Card3__default.default, { elevation: 6, sx: { width: "100%", boxShadow: "0px 8px 24px rgba(0, 0, 0, 0.15)" }, children: [
|
|
1215
1302
|
/* @__PURE__ */ jsxRuntime.jsx(CardHeader__default.default, { title: "Tables" }),
|
|
1216
1303
|
/* @__PURE__ */ jsxRuntime.jsx(Divider__default.default, {}),
|
|
1217
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1304
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardContent3__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(TablesScrollableList_default, { results: tables, tags, maxHeight, onResultClick: onTableClick }) })
|
|
1218
1305
|
] });
|
|
1219
1306
|
};
|
|
1220
1307
|
var EventTablesCard_default = EventTablesCard;
|