@mbpockets/shared-ui 0.1.19 → 0.1.21
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 +209 -121
- package/dist/EventPage/index.cjs.map +1 -1
- package/dist/EventPage/index.mjs +201 -119
- package/dist/EventPage/index.mjs.map +1 -1
- package/dist/EventPage.cjs +209 -121
- package/dist/EventPage.cjs.map +1 -1
- package/dist/EventPage.mjs +201 -119
- package/dist/EventPage.mjs.map +1 -1
- package/dist/PlayerPage/index.cjs +289 -92
- package/dist/PlayerPage/index.cjs.map +1 -1
- package/dist/PlayerPage/index.d.cts +1 -1
- package/dist/PlayerPage/index.d.ts +1 -1
- package/dist/PlayerPage/index.mjs +287 -90
- package/dist/PlayerPage/index.mjs.map +1 -1
- package/dist/PlayerPage.cjs +289 -92
- package/dist/PlayerPage.cjs.map +1 -1
- package/dist/PlayerPage.d.cts +24 -6
- package/dist/PlayerPage.d.ts +24 -6
- package/dist/PlayerPage.mjs +287 -90
- package/dist/PlayerPage.mjs.map +1 -1
- package/dist/ProfilePage/index.cjs +474 -44
- package/dist/ProfilePage/index.cjs.map +1 -1
- package/dist/ProfilePage/index.d.cts +2 -1
- package/dist/ProfilePage/index.d.ts +2 -1
- package/dist/ProfilePage/index.mjs +469 -39
- package/dist/ProfilePage/index.mjs.map +1 -1
- package/dist/ProfilePage.cjs +474 -44
- package/dist/ProfilePage.cjs.map +1 -1
- package/dist/ProfilePage.d.cts +4 -10
- package/dist/ProfilePage.d.ts +4 -10
- package/dist/ProfilePage.mjs +469 -39
- 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 +139 -67
- package/dist/SearchPage/Results/index.cjs.map +1 -1
- package/dist/SearchPage/Results/index.mjs +127 -63
- package/dist/SearchPage/Results/index.mjs.map +1 -1
- package/dist/SearchPage/Results.cjs +139 -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 +127 -63
- package/dist/SearchPage/Results.mjs.map +1 -1
- package/dist/SearchPage/index.cjs +496 -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 +483 -216
- package/dist/SearchPage/index.mjs.map +1 -1
- package/dist/SearchPage.cjs +496 -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 +483 -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 +789 -331
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -5
- package/dist/index.d.ts +4 -5
- package/dist/index.mjs +772 -324
- 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/index.cjs
CHANGED
|
@@ -11,28 +11,34 @@ var ColorizeIcon = require('@mui/icons-material/Colorize');
|
|
|
11
11
|
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
|
-
var
|
|
14
|
+
var Grid8 = require('@mui/material/Grid');
|
|
15
15
|
var Card10 = require('@mui/material/Card');
|
|
16
16
|
var CardContent10 = require('@mui/material/CardContent');
|
|
17
17
|
var CardHeader4 = require('@mui/material/CardHeader');
|
|
18
|
-
var
|
|
18
|
+
var Divider3 = 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');
|
|
24
30
|
var Autocomplete = require('@mui/material/Autocomplete');
|
|
25
31
|
var Popper = require('@mui/material/Popper');
|
|
26
|
-
var
|
|
27
|
-
var
|
|
32
|
+
var FormControlLabel = require('@mui/material/FormControlLabel');
|
|
33
|
+
var Checkbox = require('@mui/material/Checkbox');
|
|
28
34
|
var FormControl2 = require('@mui/material/FormControl');
|
|
29
35
|
var RadioGroup = require('@mui/material/RadioGroup');
|
|
30
|
-
var FormControlLabel = require('@mui/material/FormControlLabel');
|
|
31
36
|
var Radio = require('@mui/material/Radio');
|
|
37
|
+
var TextField4 = require('@mui/material/TextField');
|
|
32
38
|
var FormGroup = require('@mui/material/FormGroup');
|
|
33
|
-
var Checkbox = require('@mui/material/Checkbox');
|
|
34
39
|
var Button7 = require('@mui/material/Button');
|
|
35
40
|
var SearchIcon = require('@mui/icons-material/Search');
|
|
41
|
+
var CircularProgress3 = require('@mui/material/CircularProgress');
|
|
36
42
|
var Image2 = require('next/image');
|
|
37
43
|
var ListIcon = require('@mui/icons-material/List');
|
|
38
44
|
var SaveIcon = require('@mui/icons-material/Save');
|
|
@@ -47,28 +53,34 @@ var ColorizeIcon__default = /*#__PURE__*/_interopDefault(ColorizeIcon);
|
|
|
47
53
|
var CancelIcon__default = /*#__PURE__*/_interopDefault(CancelIcon);
|
|
48
54
|
var CheckCircleIcon__default = /*#__PURE__*/_interopDefault(CheckCircleIcon);
|
|
49
55
|
var Box2__default = /*#__PURE__*/_interopDefault(Box2);
|
|
50
|
-
var
|
|
56
|
+
var Grid8__default = /*#__PURE__*/_interopDefault(Grid8);
|
|
51
57
|
var Card10__default = /*#__PURE__*/_interopDefault(Card10);
|
|
52
58
|
var CardContent10__default = /*#__PURE__*/_interopDefault(CardContent10);
|
|
53
59
|
var CardHeader4__default = /*#__PURE__*/_interopDefault(CardHeader4);
|
|
54
|
-
var
|
|
60
|
+
var Divider3__default = /*#__PURE__*/_interopDefault(Divider3);
|
|
61
|
+
var Typography4__default = /*#__PURE__*/_interopDefault(Typography4);
|
|
62
|
+
var Pagination__default = /*#__PURE__*/_interopDefault(Pagination);
|
|
55
63
|
var Avatar__default = /*#__PURE__*/_interopDefault(Avatar);
|
|
56
|
-
var
|
|
64
|
+
var Chip2__default = /*#__PURE__*/_interopDefault(Chip2);
|
|
65
|
+
var LinearProgress__default = /*#__PURE__*/_interopDefault(LinearProgress);
|
|
66
|
+
var PersonIcon__default = /*#__PURE__*/_interopDefault(PersonIcon);
|
|
67
|
+
var SupervisorAccountIcon__default = /*#__PURE__*/_interopDefault(SupervisorAccountIcon);
|
|
68
|
+
var TableRestaurantIcon__default = /*#__PURE__*/_interopDefault(TableRestaurantIcon);
|
|
57
69
|
var CalendarTodayIcon__default = /*#__PURE__*/_interopDefault(CalendarTodayIcon);
|
|
58
70
|
var LocationOnIcon__default = /*#__PURE__*/_interopDefault(LocationOnIcon);
|
|
59
71
|
var EventIcon__default = /*#__PURE__*/_interopDefault(EventIcon);
|
|
60
72
|
var Autocomplete__default = /*#__PURE__*/_interopDefault(Autocomplete);
|
|
61
73
|
var Popper__default = /*#__PURE__*/_interopDefault(Popper);
|
|
62
|
-
var
|
|
63
|
-
var
|
|
74
|
+
var FormControlLabel__default = /*#__PURE__*/_interopDefault(FormControlLabel);
|
|
75
|
+
var Checkbox__default = /*#__PURE__*/_interopDefault(Checkbox);
|
|
64
76
|
var FormControl2__default = /*#__PURE__*/_interopDefault(FormControl2);
|
|
65
77
|
var RadioGroup__default = /*#__PURE__*/_interopDefault(RadioGroup);
|
|
66
|
-
var FormControlLabel__default = /*#__PURE__*/_interopDefault(FormControlLabel);
|
|
67
78
|
var Radio__default = /*#__PURE__*/_interopDefault(Radio);
|
|
79
|
+
var TextField4__default = /*#__PURE__*/_interopDefault(TextField4);
|
|
68
80
|
var FormGroup__default = /*#__PURE__*/_interopDefault(FormGroup);
|
|
69
|
-
var Checkbox__default = /*#__PURE__*/_interopDefault(Checkbox);
|
|
70
81
|
var Button7__default = /*#__PURE__*/_interopDefault(Button7);
|
|
71
82
|
var SearchIcon__default = /*#__PURE__*/_interopDefault(SearchIcon);
|
|
83
|
+
var CircularProgress3__default = /*#__PURE__*/_interopDefault(CircularProgress3);
|
|
72
84
|
var Image2__default = /*#__PURE__*/_interopDefault(Image2);
|
|
73
85
|
var ListIcon__default = /*#__PURE__*/_interopDefault(ListIcon);
|
|
74
86
|
var SaveIcon__default = /*#__PURE__*/_interopDefault(SaveIcon);
|
|
@@ -516,7 +528,7 @@ function EventBasicInfo(props) {
|
|
|
516
528
|
);
|
|
517
529
|
}
|
|
518
530
|
function EventBasicInfoView({ description, locationId, startingDate, endingDate, timeInfo, timezone, isOwner, onEdit }) {
|
|
519
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
531
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { sx: { position: "relative" }, children: /* @__PURE__ */ jsxRuntime.jsx(material.Card, { style: {
|
|
520
532
|
boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.1)",
|
|
521
533
|
background: "linear-gradient(135deg, rgba(225, 225, 225, 1), rgba(250, 250, 250, 1))"
|
|
522
534
|
}, children: /* @__PURE__ */ jsxRuntime.jsxs(material.CardContent, { children: [
|
|
@@ -800,7 +812,7 @@ function EventBannerView({
|
|
|
800
812
|
}) {
|
|
801
813
|
const backgroundColor = bannerColor || "linear-gradient(135deg, rgba(25,118,210,0.8), rgba(25,118,210,1))";
|
|
802
814
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
803
|
-
|
|
815
|
+
Grid8__default.default,
|
|
804
816
|
{
|
|
805
817
|
sx: {
|
|
806
818
|
background: backgroundColor,
|
|
@@ -808,7 +820,7 @@ function EventBannerView({
|
|
|
808
820
|
position: "relative"
|
|
809
821
|
},
|
|
810
822
|
children: [
|
|
811
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
823
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { children: [
|
|
812
824
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
813
825
|
material.Box,
|
|
814
826
|
{
|
|
@@ -867,7 +879,7 @@ function EventBannerView({
|
|
|
867
879
|
}
|
|
868
880
|
),
|
|
869
881
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
870
|
-
|
|
882
|
+
Grid8__default.default,
|
|
871
883
|
{
|
|
872
884
|
display: "flex",
|
|
873
885
|
justifyContent: "center",
|
|
@@ -975,6 +987,14 @@ var generateLink = function(link) {
|
|
|
975
987
|
link.text
|
|
976
988
|
);
|
|
977
989
|
};
|
|
990
|
+
var NextGameLabel = ({ nextGameTime }) => {
|
|
991
|
+
const date = typeof nextGameTime === "string" ? new Date(nextGameTime) : nextGameTime;
|
|
992
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(material.Typography, { variant: "caption", sx: { display: "block", mb: 1, color: "primary.main", fontWeight: "bold" }, children: [
|
|
993
|
+
"Next Game: ",
|
|
994
|
+
date.toLocaleString()
|
|
995
|
+
] });
|
|
996
|
+
};
|
|
997
|
+
var NextGameLabel_default = NextGameLabel;
|
|
978
998
|
var BaseSearchResultCard = ({
|
|
979
999
|
result,
|
|
980
1000
|
onClick,
|
|
@@ -982,13 +1002,19 @@ var BaseSearchResultCard = ({
|
|
|
982
1002
|
icon,
|
|
983
1003
|
tags
|
|
984
1004
|
}) => {
|
|
985
|
-
const handleClick = () => {
|
|
1005
|
+
const handleClick = (e) => {
|
|
986
1006
|
if (onClick) {
|
|
987
|
-
|
|
1007
|
+
if (e.ctrlKey || e.metaKey || e.shiftKey) {
|
|
1008
|
+
e.stopPropagation();
|
|
1009
|
+
const url = `/${result.type}/${result.id}`;
|
|
1010
|
+
window.open(url, "_blank");
|
|
1011
|
+
} else {
|
|
1012
|
+
onClick(result.id);
|
|
1013
|
+
}
|
|
988
1014
|
}
|
|
989
1015
|
};
|
|
990
1016
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
991
|
-
|
|
1017
|
+
Card10__default.default,
|
|
992
1018
|
{
|
|
993
1019
|
elevation: 6,
|
|
994
1020
|
sx: {
|
|
@@ -1001,48 +1027,22 @@ var BaseSearchResultCard = ({
|
|
|
1001
1027
|
},
|
|
1002
1028
|
marginBottom: 2
|
|
1003
1029
|
},
|
|
1004
|
-
onClick: handleClick,
|
|
1005
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1006
|
-
icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1007
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1008
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1030
|
+
onClick: (e) => handleClick(e),
|
|
1031
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(CardContent10__default.default, { sx: { display: "flex", alignItems: "flex-start" }, children: [
|
|
1032
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { mr: 2, display: "flex", alignItems: "center", pt: 0.5 }, children: icon }),
|
|
1033
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { flex: 1 }, children: [
|
|
1034
|
+
/* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "h6", sx: { mb: 1 }, children: result.title }),
|
|
1035
|
+
result.nextGameTime && /* @__PURE__ */ jsxRuntime.jsx(NextGameLabel_default, { nextGameTime: result.nextGameTime }),
|
|
1036
|
+
result.type === "table" && result.shortDescription ? /* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "body2", sx: { mb: 1 }, children: result.shortDescription }) : null,
|
|
1009
1037
|
children,
|
|
1010
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
}, children: (() => {
|
|
1019
|
-
const MAX_VISIBLE = 5;
|
|
1020
|
-
const tagObjs = result.tags.map((tagId) => tags.find((t) => t.id === tagId)).filter((t) => Boolean(t));
|
|
1021
|
-
const visible = tagObjs.slice(0, MAX_VISIBLE);
|
|
1022
|
-
const hiddenCount = Math.max(tagObjs.length - visible.length, 0);
|
|
1023
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1024
|
-
visible.map((tag) => generateTagsDisplay(tag)),
|
|
1025
|
-
hiddenCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1026
|
-
"span",
|
|
1027
|
-
{
|
|
1028
|
-
className: "inline-block text-sm px-3 py-1 rounded-full outline-black outline-2 font-outlined",
|
|
1029
|
-
style: {
|
|
1030
|
-
marginTop: "6px",
|
|
1031
|
-
marginRight: "6px",
|
|
1032
|
-
marginBottom: "6px",
|
|
1033
|
-
background: "#9e9e9e",
|
|
1034
|
-
color: "white",
|
|
1035
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
1036
|
-
},
|
|
1037
|
-
children: [
|
|
1038
|
-
"+",
|
|
1039
|
-
hiddenCount,
|
|
1040
|
-
" more"
|
|
1041
|
-
]
|
|
1042
|
-
}
|
|
1043
|
-
)
|
|
1044
|
-
] });
|
|
1045
|
-
})() }) })
|
|
1038
|
+
result.type === "table" ? /* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "body1", children: (() => {
|
|
1039
|
+
var _a, _b;
|
|
1040
|
+
const full = (_b = (_a = result.fullDescription) != null ? _a : result.description) != null ? _b : "";
|
|
1041
|
+
if (typeof full !== "string") return "";
|
|
1042
|
+
const text = full || "";
|
|
1043
|
+
return text.length > 200 ? `${text.slice(0, 200).trimEnd()}...` : text;
|
|
1044
|
+
})() }) : /* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "body1", children: result.description }),
|
|
1045
|
+
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) })
|
|
1046
1046
|
] })
|
|
1047
1047
|
] })
|
|
1048
1048
|
}
|
|
@@ -1097,21 +1097,60 @@ var PlayerResultCard = ({
|
|
|
1097
1097
|
return /* @__PURE__ */ jsxRuntime.jsx(BaseSearchResultCard_default, { result, onClick, icon: playerIcon, tags });
|
|
1098
1098
|
};
|
|
1099
1099
|
var PlayerResultCard_default = PlayerResultCard;
|
|
1100
|
-
var TableResultCard = ({
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1100
|
+
var TableResultCard = ({
|
|
1101
|
+
result,
|
|
1102
|
+
onClick,
|
|
1103
|
+
tags
|
|
1104
|
+
}) => {
|
|
1105
|
+
const rawCapacity = result.capacity;
|
|
1106
|
+
const hasDefinedCapacity = typeof rawCapacity === "number" && Number.isFinite(rawCapacity) && rawCapacity > 0;
|
|
1107
|
+
const capacity = hasDefinedCapacity ? rawCapacity : 0;
|
|
1108
|
+
const activePlayers = typeof result.numPlayers === "number" ? result.numPlayers : 0;
|
|
1109
|
+
const availableSlots = Math.max(capacity - activePlayers, 0);
|
|
1110
|
+
const hasDM = typeof result.hasDM === "boolean" ? result.hasDM : Boolean(result.dungeonMaster);
|
|
1111
|
+
const occupancyPercentage = hasDefinedCapacity ? activePlayers / capacity * 100 : 100;
|
|
1112
|
+
const tableIcon = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1113
|
+
TableRestaurantIcon__default.default,
|
|
1114
|
+
{
|
|
1115
|
+
sx: {
|
|
1116
|
+
fontSize: 40,
|
|
1117
|
+
color: "primary.main"
|
|
1118
|
+
}
|
|
1119
|
+
}
|
|
1120
|
+
);
|
|
1121
|
+
return /* @__PURE__ */ jsxRuntime.jsx(BaseSearchResultCard_default, { result, onClick, icon: tableIcon, tags, children: /* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { mb: 2 }, children: [
|
|
1122
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { display: "flex", justifyContent: "space-between", alignItems: "center", mb: 1 }, children: [
|
|
1123
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", children: [
|
|
1124
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Players:" }),
|
|
1125
|
+
" ",
|
|
1126
|
+
hasDefinedCapacity ? `${activePlayers}/${capacity}` : activePlayers
|
|
1111
1127
|
] }),
|
|
1112
|
-
|
|
1128
|
+
typeof hasDM === "boolean" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1129
|
+
Chip2__default.default,
|
|
1130
|
+
{
|
|
1131
|
+
icon: hasDM ? /* @__PURE__ */ jsxRuntime.jsx(SupervisorAccountIcon__default.default, {}) : /* @__PURE__ */ jsxRuntime.jsx(PersonIcon__default.default, {}),
|
|
1132
|
+
label: hasDM ? "DM Present" : "No DM",
|
|
1133
|
+
color: hasDM ? "success" : "warning",
|
|
1134
|
+
size: "small"
|
|
1135
|
+
}
|
|
1136
|
+
)
|
|
1113
1137
|
] }),
|
|
1114
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1138
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1139
|
+
LinearProgress__default.default,
|
|
1140
|
+
{
|
|
1141
|
+
variant: "determinate",
|
|
1142
|
+
value: occupancyPercentage,
|
|
1143
|
+
sx: {
|
|
1144
|
+
height: 10,
|
|
1145
|
+
borderRadius: 5,
|
|
1146
|
+
backgroundColor: "#e0e0e0",
|
|
1147
|
+
"& .MuiLinearProgress-bar": {
|
|
1148
|
+
backgroundColor: hasDefinedCapacity ? availableSlots > 0 ? "#4caf50" : "#f44336" : "#2196f3"
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
),
|
|
1153
|
+
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" })
|
|
1115
1154
|
] }) });
|
|
1116
1155
|
};
|
|
1117
1156
|
var TableResultCard_default = TableResultCard;
|
|
@@ -1130,20 +1169,42 @@ var EventResultCard = ({
|
|
|
1130
1169
|
try {
|
|
1131
1170
|
const date = new Date(dateString);
|
|
1132
1171
|
return date.toLocaleDateString("en-US", options);
|
|
1133
|
-
} catch {
|
|
1172
|
+
} catch (error) {
|
|
1134
1173
|
return dateString;
|
|
1135
1174
|
}
|
|
1136
1175
|
};
|
|
1137
1176
|
const formattedDate = result.date ? formatDate(result.date) : "Date TBD";
|
|
1138
1177
|
const location = result.location || "Location TBD";
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1178
|
+
const eventIcon = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1179
|
+
EventIcon__default.default,
|
|
1180
|
+
{
|
|
1181
|
+
sx: {
|
|
1182
|
+
fontSize: 40,
|
|
1183
|
+
color: "primary.main"
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1186
|
+
);
|
|
1187
|
+
return /* @__PURE__ */ jsxRuntime.jsx(BaseSearchResultCard_default, { result, onClick, icon: eventIcon, tags, children: /* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { mb: 2 }, children: [
|
|
1188
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { display: "flex", alignItems: "center", mb: 1 }, children: [
|
|
1189
|
+
/* @__PURE__ */ jsxRuntime.jsx(CalendarTodayIcon__default.default, { sx: { mr: 1, color: "primary.main" } }),
|
|
1190
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", children: [
|
|
1191
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Date:" }),
|
|
1192
|
+
" ",
|
|
1193
|
+
formattedDate
|
|
1194
|
+
] })
|
|
1143
1195
|
] }),
|
|
1144
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1145
|
-
/* @__PURE__ */ jsxRuntime.jsx(LocationOnIcon__default.default, { sx: { mr: 1,
|
|
1146
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1196
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { display: "flex", alignItems: "center" }, children: [
|
|
1197
|
+
/* @__PURE__ */ jsxRuntime.jsx(LocationOnIcon__default.default, { sx: { mr: 1, color: "primary.main" } }),
|
|
1198
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", children: [
|
|
1199
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Location:" }),
|
|
1200
|
+
" ",
|
|
1201
|
+
location
|
|
1202
|
+
] })
|
|
1203
|
+
] }),
|
|
1204
|
+
result.organizer && /* @__PURE__ */ jsxRuntime.jsxs(Typography4__default.default, { variant: "body2", sx: { mt: 1 }, children: [
|
|
1205
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Organizer:" }),
|
|
1206
|
+
" ",
|
|
1207
|
+
result.organizer
|
|
1147
1208
|
] })
|
|
1148
1209
|
] }) });
|
|
1149
1210
|
};
|
|
@@ -1151,9 +1212,11 @@ var EventResultCard_default = EventResultCard;
|
|
|
1151
1212
|
var ResultsContainer = ({
|
|
1152
1213
|
results,
|
|
1153
1214
|
onResultClick,
|
|
1154
|
-
tags
|
|
1215
|
+
tags,
|
|
1216
|
+
pagination,
|
|
1217
|
+
onPacketChange
|
|
1155
1218
|
}) => {
|
|
1156
|
-
if (results.length === 0 || !results.map) {
|
|
1219
|
+
if (!results || results.length === 0 || !results.map) {
|
|
1157
1220
|
return /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { textAlign: "center", py: 4 }, children: "No results found. Try adjusting your filters." });
|
|
1158
1221
|
}
|
|
1159
1222
|
const onPlayerClick = (id) => {
|
|
@@ -1165,43 +1228,68 @@ var ResultsContainer = ({
|
|
|
1165
1228
|
const onEventClick = (id) => {
|
|
1166
1229
|
onResultClick == null ? void 0 : onResultClick(id, "event");
|
|
1167
1230
|
};
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1231
|
+
const handlePacketChange = (_event, packet) => {
|
|
1232
|
+
onPacketChange == null ? void 0 : onPacketChange(packet);
|
|
1233
|
+
};
|
|
1234
|
+
const startResult = pagination ? (pagination.currentPacket - 1) * pagination.packetSize + 1 : 1;
|
|
1235
|
+
const endResult = pagination ? Math.min(pagination.currentPacket * pagination.packetSize, pagination.totalResults) : results.length;
|
|
1236
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
1237
|
+
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: [
|
|
1238
|
+
"Showing ",
|
|
1239
|
+
startResult,
|
|
1240
|
+
"-",
|
|
1241
|
+
endResult,
|
|
1242
|
+
" of ",
|
|
1243
|
+
pagination.totalResults,
|
|
1244
|
+
" results"
|
|
1245
|
+
] }) }),
|
|
1246
|
+
results.map((result, index) => {
|
|
1247
|
+
switch (result.type) {
|
|
1248
|
+
case "player":
|
|
1249
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1250
|
+
PlayerResultCard_default,
|
|
1251
|
+
{
|
|
1252
|
+
result,
|
|
1253
|
+
onClick: onPlayerClick,
|
|
1254
|
+
tags
|
|
1255
|
+
},
|
|
1256
|
+
result.id
|
|
1257
|
+
);
|
|
1258
|
+
case "table":
|
|
1259
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1260
|
+
TableResultCard_default,
|
|
1261
|
+
{
|
|
1262
|
+
result,
|
|
1263
|
+
onClick: onTableClick,
|
|
1264
|
+
tags
|
|
1265
|
+
},
|
|
1266
|
+
result.id
|
|
1267
|
+
);
|
|
1268
|
+
case "event":
|
|
1269
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1270
|
+
EventResultCard_default,
|
|
1271
|
+
{
|
|
1272
|
+
result,
|
|
1273
|
+
onClick: onEventClick,
|
|
1274
|
+
tags
|
|
1275
|
+
},
|
|
1276
|
+
result.id
|
|
1277
|
+
);
|
|
1278
|
+
default:
|
|
1279
|
+
console.error(`Unknown result type: ${result.type}`);
|
|
1280
|
+
return null;
|
|
1281
|
+
}
|
|
1282
|
+
}),
|
|
1283
|
+
pagination && pagination.totalPackets > 1 && /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { display: "flex", justifyContent: "center", mt: 4 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1284
|
+
Pagination__default.default,
|
|
1285
|
+
{
|
|
1286
|
+
count: pagination.totalPackets,
|
|
1287
|
+
page: pagination.currentPacket,
|
|
1288
|
+
onChange: handlePacketChange,
|
|
1289
|
+
color: "primary"
|
|
1290
|
+
}
|
|
1291
|
+
) })
|
|
1292
|
+
] });
|
|
1205
1293
|
};
|
|
1206
1294
|
var ResultsContainer_default = ResultsContainer;
|
|
1207
1295
|
var ScrollableResultsList = ({
|
|
@@ -1219,21 +1307,14 @@ var TablesScrollableList = ({
|
|
|
1219
1307
|
results,
|
|
1220
1308
|
tags,
|
|
1221
1309
|
maxHeight,
|
|
1222
|
-
onResultClick
|
|
1223
|
-
sortBy = "availability"
|
|
1310
|
+
onResultClick
|
|
1224
1311
|
}) => {
|
|
1225
1312
|
const tables = (results || []).filter((r) => (r == null ? void 0 : r.type) === "table");
|
|
1226
|
-
const getAvailableSlots = (r) => {
|
|
1227
|
-
const capacity = typeof r.capacity === "number" ? r.capacity : 0;
|
|
1228
|
-
const playersCount = typeof r.numPlayers === "number" ? r.numPlayers : 0;
|
|
1229
|
-
return Math.max(capacity - playersCount, 0);
|
|
1230
|
-
};
|
|
1231
|
-
const sortedTables = sortBy === "availability" ? [...tables].sort((a, b) => getAvailableSlots(b) - getAvailableSlots(a)) : tables;
|
|
1232
1313
|
const handleClick = (id) => onResultClick == null ? void 0 : onResultClick(id);
|
|
1233
1314
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1234
1315
|
ScrollableResultsList_default,
|
|
1235
1316
|
{
|
|
1236
|
-
results:
|
|
1317
|
+
results: tables,
|
|
1237
1318
|
tags,
|
|
1238
1319
|
maxHeight,
|
|
1239
1320
|
onResultClick: (id, type) => {
|
|
@@ -1251,8 +1332,8 @@ var EventTablesCard = ({
|
|
|
1251
1332
|
}) => {
|
|
1252
1333
|
return /* @__PURE__ */ jsxRuntime.jsxs(Card10__default.default, { elevation: 6, sx: { width: "100%", boxShadow: "0px 8px 24px rgba(0, 0, 0, 0.15)" }, children: [
|
|
1253
1334
|
/* @__PURE__ */ jsxRuntime.jsx(CardHeader4__default.default, { title: "Tables" }),
|
|
1254
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1255
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardContent10__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(TablesScrollableList_default, { results: tables, tags, maxHeight, onResultClick: onTableClick
|
|
1335
|
+
/* @__PURE__ */ jsxRuntime.jsx(Divider3__default.default, {}),
|
|
1336
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardContent10__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(TablesScrollableList_default, { results: tables, tags, maxHeight, onResultClick: onTableClick }) })
|
|
1256
1337
|
] });
|
|
1257
1338
|
};
|
|
1258
1339
|
var EventTablesCard_default = EventTablesCard;
|
|
@@ -1266,27 +1347,28 @@ function EventPageLayout({
|
|
|
1266
1347
|
tables,
|
|
1267
1348
|
allTags
|
|
1268
1349
|
}) {
|
|
1269
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1270
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1350
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, flexDirection: "column", children: /* @__PURE__ */ jsxRuntime.jsxs(EventEditProvider, { initialEvent: mergedEvent, value: { isOwner, updateEvent, updateImages }, children: [
|
|
1351
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1271
1352
|
EventBanner,
|
|
1272
1353
|
{
|
|
1273
1354
|
attendees,
|
|
1274
1355
|
numGames
|
|
1275
1356
|
}
|
|
1276
1357
|
) }),
|
|
1277
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1278
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1358
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, flexDirection: "row", spacing: 3, size: { xs: 12, md: 12 }, children: [
|
|
1359
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 4 }, spacing: 3, padding: 3, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1279
1360
|
EventBasicInfo,
|
|
1280
1361
|
{
|
|
1281
1362
|
locationId: mergedEvent.location || "0"
|
|
1282
1363
|
}
|
|
1283
1364
|
) }),
|
|
1284
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1365
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 8 }, spacing: 3, padding: 3, children: /* @__PURE__ */ jsxRuntime.jsx(EventTablesCard_default, { tables, tags: allTags }) })
|
|
1285
1366
|
] }),
|
|
1286
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1367
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, {})
|
|
1287
1368
|
] }) });
|
|
1288
1369
|
}
|
|
1289
|
-
var
|
|
1370
|
+
var PlayerDetailsCard = ({
|
|
1371
|
+
preferredPronouns,
|
|
1290
1372
|
age,
|
|
1291
1373
|
yearsPlaying,
|
|
1292
1374
|
discordUsername,
|
|
@@ -1336,6 +1418,23 @@ var PlayerDetails = ({
|
|
|
1336
1418
|
}
|
|
1337
1419
|
),
|
|
1338
1420
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
1421
|
+
preferredPronouns && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1422
|
+
material.Typography,
|
|
1423
|
+
{
|
|
1424
|
+
variant: "body2",
|
|
1425
|
+
className: "text-sm font-medium",
|
|
1426
|
+
sx: {
|
|
1427
|
+
color: "#FFFFFF",
|
|
1428
|
+
textShadow: "0px 2px 6px rgba(0, 0, 0, 0.5)",
|
|
1429
|
+
fontWeight: "bold"
|
|
1430
|
+
},
|
|
1431
|
+
children: [
|
|
1432
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-extrabold text-cyan-300", children: "Preferred Pronouns:" }),
|
|
1433
|
+
" ",
|
|
1434
|
+
preferredPronouns
|
|
1435
|
+
]
|
|
1436
|
+
}
|
|
1437
|
+
),
|
|
1339
1438
|
age !== null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1340
1439
|
material.Typography,
|
|
1341
1440
|
{
|
|
@@ -1387,7 +1486,7 @@ var PlayerDetails = ({
|
|
|
1387
1486
|
]
|
|
1388
1487
|
}
|
|
1389
1488
|
),
|
|
1390
|
-
preferredGames &&
|
|
1489
|
+
preferredGames && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1391
1490
|
material.Typography,
|
|
1392
1491
|
{
|
|
1393
1492
|
variant: "body2",
|
|
@@ -1400,7 +1499,7 @@ var PlayerDetails = ({
|
|
|
1400
1499
|
children: [
|
|
1401
1500
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-extrabold text-cyan-300", children: "Preferred Games:" }),
|
|
1402
1501
|
" ",
|
|
1403
|
-
preferredGames.join(", ")
|
|
1502
|
+
Array.isArray(preferredGames) ? preferredGames.join(", ") : preferredGames
|
|
1404
1503
|
]
|
|
1405
1504
|
}
|
|
1406
1505
|
)
|
|
@@ -1423,24 +1522,20 @@ var PlayerDetails = ({
|
|
|
1423
1522
|
}
|
|
1424
1523
|
);
|
|
1425
1524
|
};
|
|
1426
|
-
var PlayerDetailsCard_default =
|
|
1525
|
+
var PlayerDetailsCard_default = PlayerDetailsCard;
|
|
1427
1526
|
|
|
1428
1527
|
// src/data/values.tsx
|
|
1429
1528
|
var ProfilePictureSettings = {
|
|
1430
1529
|
aspectRatio: 4 / 5};
|
|
1431
|
-
var {
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
bio,
|
|
1436
|
-
preferredPronouns
|
|
1437
|
-
}) => {
|
|
1438
|
-
const [imageSrc, setImageSrc] = React7.useState("/man-walking-silhouette-clipart.jpg");
|
|
1530
|
+
var PlayerDisplayCard = ({ profilePicture, username, bio, preferredPronouns }) => {
|
|
1531
|
+
const defaultImg = "/man-walking-silhouette-clipart.jpg";
|
|
1532
|
+
const [imageSrc, setImageSrc] = React7.useState(defaultImg);
|
|
1533
|
+
const { aspectRatio } = ProfilePictureSettings;
|
|
1439
1534
|
React7.useEffect(() => {
|
|
1440
1535
|
async function validateImage() {
|
|
1441
|
-
const newImage = profilePicture ||
|
|
1536
|
+
const newImage = profilePicture || defaultImg;
|
|
1442
1537
|
if (!profilePicture) {
|
|
1443
|
-
setImageSrc(
|
|
1538
|
+
setImageSrc(defaultImg);
|
|
1444
1539
|
return;
|
|
1445
1540
|
}
|
|
1446
1541
|
const img = new Image();
|
|
@@ -1449,7 +1544,7 @@ var PlayerDisplayCard = ({
|
|
|
1449
1544
|
setImageSrc(newImage);
|
|
1450
1545
|
};
|
|
1451
1546
|
img.onerror = () => {
|
|
1452
|
-
setImageSrc(
|
|
1547
|
+
setImageSrc(defaultImg);
|
|
1453
1548
|
};
|
|
1454
1549
|
}
|
|
1455
1550
|
validateImage();
|
|
@@ -1483,7 +1578,7 @@ var PlayerDisplayCard = ({
|
|
|
1483
1578
|
height: "auto",
|
|
1484
1579
|
// Updates to maintain aspect ratio and fill space nicely
|
|
1485
1580
|
width: "100%",
|
|
1486
|
-
objectFit: "
|
|
1581
|
+
objectFit: "cover"
|
|
1487
1582
|
}
|
|
1488
1583
|
}
|
|
1489
1584
|
),
|
|
@@ -1542,104 +1637,127 @@ var PlayerDisplayCard = ({
|
|
|
1542
1637
|
);
|
|
1543
1638
|
};
|
|
1544
1639
|
var PlayerDisplayCard_default = PlayerDisplayCard;
|
|
1545
|
-
var
|
|
1546
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
variant: "h5",
|
|
1568
|
-
className: "font-bold text-lg uppercase text-center tracking-wide mb-4",
|
|
1569
|
-
sx: {
|
|
1570
|
-
color: "#FFFFFF",
|
|
1571
|
-
// Bright white for high visibility
|
|
1572
|
-
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1573
|
-
// Strong text shadow for contrast
|
|
1574
|
-
fontSize: "1.5rem"
|
|
1575
|
-
},
|
|
1576
|
-
children: title
|
|
1577
|
-
}
|
|
1578
|
-
),
|
|
1579
|
-
description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1580
|
-
material.Typography,
|
|
1581
|
-
{
|
|
1582
|
-
variant: "body2",
|
|
1583
|
-
className: "text-sm font-medium text-center",
|
|
1584
|
-
sx: {
|
|
1585
|
-
color: "#E3F2FD",
|
|
1586
|
-
// Softer light blue for description
|
|
1587
|
-
textShadow: "0px 2px 4px rgba(0, 0, 0, 0.3)",
|
|
1588
|
-
// Subtle shadow
|
|
1589
|
-
lineHeight: 1.6,
|
|
1590
|
-
marginTop: "1rem"
|
|
1591
|
-
},
|
|
1592
|
-
children: description
|
|
1640
|
+
var PlayerTagsCard = ({ tags = [] }) => {
|
|
1641
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(material.Card, { sx: {
|
|
1642
|
+
margin: "1rem",
|
|
1643
|
+
borderRadius: "12px",
|
|
1644
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1645
|
+
overflow: "hidden"
|
|
1646
|
+
}, className: "transition duration-300 transform hover:scale-105 hover:shadow-2xl", children: [
|
|
1647
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1648
|
+
material.CardHeader,
|
|
1649
|
+
{
|
|
1650
|
+
title: "Player Tags",
|
|
1651
|
+
sx: {
|
|
1652
|
+
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1653
|
+
color: "#FFFFFF",
|
|
1654
|
+
fontSize: "1.5rem",
|
|
1655
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1656
|
+
"& .MuiCardHeader-title": {
|
|
1657
|
+
fontWeight: "bold",
|
|
1658
|
+
fontSize: "1.5rem",
|
|
1659
|
+
textAlign: "center",
|
|
1660
|
+
textTransform: "uppercase",
|
|
1661
|
+
letterSpacing: "0.05em"
|
|
1593
1662
|
}
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1663
|
+
}
|
|
1664
|
+
}
|
|
1665
|
+
),
|
|
1666
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ jsxRuntime.jsx(Chip, { tag }, tag.id)) }) })
|
|
1667
|
+
] });
|
|
1598
1668
|
};
|
|
1599
|
-
var
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1669
|
+
var PlayerTagsCard_default = PlayerTagsCard;
|
|
1670
|
+
var PlayerPromptCard = ({ title, description }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1671
|
+
material.Card,
|
|
1672
|
+
{
|
|
1673
|
+
sx: {
|
|
1674
|
+
margin: "1rem",
|
|
1603
1675
|
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1676
|
+
// Gradient color scheme
|
|
1677
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1678
|
+
// Card shadow
|
|
1679
|
+
borderRadius: "12px",
|
|
1680
|
+
// Rounded corners
|
|
1604
1681
|
color: "#FFFFFF",
|
|
1605
|
-
//
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1682
|
+
// Text contrast with the background
|
|
1683
|
+
overflow: "hidden"
|
|
1684
|
+
// Keeps consistent and clean card shape
|
|
1685
|
+
},
|
|
1686
|
+
className: "transition duration-300 transform hover:scale-105 hover:shadow-2xl",
|
|
1687
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(material.CardContent, { className: "p-6", children: [
|
|
1688
|
+
title && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1689
|
+
material.Typography,
|
|
1690
|
+
{
|
|
1691
|
+
variant: "h5",
|
|
1692
|
+
className: "font-bold text-lg uppercase text-center tracking-wide mb-4",
|
|
1693
|
+
sx: {
|
|
1694
|
+
color: "#FFFFFF",
|
|
1695
|
+
// Bright white for high visibility
|
|
1696
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1697
|
+
// Strong text shadow for contrast
|
|
1698
|
+
fontSize: "1.5rem"
|
|
1699
|
+
},
|
|
1700
|
+
children: title
|
|
1701
|
+
}
|
|
1702
|
+
),
|
|
1703
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1704
|
+
material.Typography,
|
|
1705
|
+
{
|
|
1706
|
+
variant: "body2",
|
|
1707
|
+
className: "text-sm font-medium text-center",
|
|
1708
|
+
sx: {
|
|
1709
|
+
color: "#E3F2FD",
|
|
1710
|
+
// Softer light blue for description
|
|
1711
|
+
textShadow: "0px 2px 4px rgba(0, 0, 0, 0.3)",
|
|
1712
|
+
// Subtle shadow
|
|
1713
|
+
lineHeight: 1.6,
|
|
1714
|
+
marginTop: "1rem"
|
|
1715
|
+
},
|
|
1716
|
+
children: description
|
|
1717
|
+
}
|
|
1718
|
+
)
|
|
1719
|
+
] })
|
|
1720
|
+
}
|
|
1721
|
+
);
|
|
1722
|
+
var PlayerPromptCard_default = PlayerPromptCard;
|
|
1723
|
+
var PlayerTagsEdit = ({
|
|
1724
|
+
selectedTags = [],
|
|
1725
|
+
possibleTags = [],
|
|
1620
1726
|
onToggleTag
|
|
1621
|
-
}) {
|
|
1727
|
+
}) => {
|
|
1622
1728
|
const [inputValue, setInputValue] = React7.useState("");
|
|
1623
1729
|
const selectedIds = React7.useMemo(() => selectedTags.map((tag) => tag.id), [selectedTags]);
|
|
1624
1730
|
const options = React7.useMemo(
|
|
1625
|
-
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label })),
|
|
1731
|
+
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label, alternate_title: tag.alternate_title })),
|
|
1626
1732
|
[possibleTags]
|
|
1627
1733
|
);
|
|
1628
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1734
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(material.Card, { sx: {
|
|
1735
|
+
margin: "1rem",
|
|
1736
|
+
borderRadius: "12px",
|
|
1737
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1738
|
+
overflow: "hidden"
|
|
1739
|
+
}, children: [
|
|
1629
1740
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1630
|
-
|
|
1741
|
+
material.CardHeader,
|
|
1631
1742
|
{
|
|
1632
|
-
title,
|
|
1633
|
-
|
|
1743
|
+
title: "Player Tags",
|
|
1744
|
+
sx: {
|
|
1634
1745
|
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1635
1746
|
color: "#FFFFFF",
|
|
1636
1747
|
fontSize: "1.5rem",
|
|
1637
|
-
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)"
|
|
1748
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1749
|
+
"& .MuiCardHeader-title": {
|
|
1750
|
+
fontWeight: "bold",
|
|
1751
|
+
fontSize: "1.5rem",
|
|
1752
|
+
textAlign: "center",
|
|
1753
|
+
textTransform: "uppercase",
|
|
1754
|
+
letterSpacing: "0.05em"
|
|
1755
|
+
}
|
|
1638
1756
|
}
|
|
1639
1757
|
}
|
|
1640
1758
|
),
|
|
1641
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1642
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
1759
|
+
/* @__PURE__ */ jsxRuntime.jsxs(material.CardContent, { className: "p-6", children: [
|
|
1760
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2 mb-4", children: selectedTags.map((tag) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1643
1761
|
Chip,
|
|
1644
1762
|
{
|
|
1645
1763
|
tag,
|
|
@@ -1647,13 +1765,19 @@ function TagEditor({
|
|
|
1647
1765
|
},
|
|
1648
1766
|
tag.id
|
|
1649
1767
|
)) }),
|
|
1650
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1768
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1651
1769
|
Autocomplete__default.default,
|
|
1652
1770
|
{
|
|
1653
1771
|
options,
|
|
1654
|
-
filterOptions: (availableOptions, state) =>
|
|
1655
|
-
|
|
1656
|
-
|
|
1772
|
+
filterOptions: (availableOptions, state) => {
|
|
1773
|
+
const query = state.inputValue.toLowerCase();
|
|
1774
|
+
return availableOptions.filter(
|
|
1775
|
+
(option) => {
|
|
1776
|
+
var _a;
|
|
1777
|
+
return !selectedIds.includes(option.value) && (option.label.toLowerCase().includes(query) || ((_a = option.alternate_title) == null ? void 0 : _a.some((title) => title.toLowerCase().includes(query))));
|
|
1778
|
+
}
|
|
1779
|
+
).slice(0, 5);
|
|
1780
|
+
},
|
|
1657
1781
|
value: null,
|
|
1658
1782
|
inputValue,
|
|
1659
1783
|
onInputChange: (event, newInputValue) => {
|
|
@@ -1668,13 +1792,20 @@ function TagEditor({
|
|
|
1668
1792
|
setInputValue("");
|
|
1669
1793
|
},
|
|
1670
1794
|
slots: { popper: CustomPopper },
|
|
1671
|
-
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1795
|
+
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1796
|
+
material.TextField,
|
|
1797
|
+
{
|
|
1798
|
+
...params,
|
|
1799
|
+
label: "Select Tags",
|
|
1800
|
+
variant: "outlined"
|
|
1801
|
+
}
|
|
1802
|
+
)
|
|
1672
1803
|
},
|
|
1673
1804
|
selectedIds.join("-")
|
|
1674
|
-
)
|
|
1805
|
+
)
|
|
1675
1806
|
] })
|
|
1676
|
-
] })
|
|
1677
|
-
}
|
|
1807
|
+
] });
|
|
1808
|
+
};
|
|
1678
1809
|
var CustomPopper = (props) => {
|
|
1679
1810
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1680
1811
|
Popper__default.default,
|
|
@@ -1683,28 +1814,105 @@ var CustomPopper = (props) => {
|
|
|
1683
1814
|
modifiers: [
|
|
1684
1815
|
{
|
|
1685
1816
|
name: "preventOverflow",
|
|
1686
|
-
options: {
|
|
1817
|
+
options: {
|
|
1818
|
+
boundary: "viewport"
|
|
1819
|
+
}
|
|
1687
1820
|
},
|
|
1688
1821
|
{
|
|
1689
1822
|
name: "offset",
|
|
1690
|
-
options: {
|
|
1823
|
+
options: {
|
|
1824
|
+
offset: [0, -10]
|
|
1825
|
+
}
|
|
1691
1826
|
}
|
|
1692
1827
|
],
|
|
1693
1828
|
placement: "top-start"
|
|
1694
1829
|
}
|
|
1695
1830
|
);
|
|
1696
1831
|
};
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1832
|
+
var PlayerTagsEdit_default = PlayerTagsEdit;
|
|
1833
|
+
function PlayerPageLayout({
|
|
1834
|
+
playerData,
|
|
1835
|
+
tags = [],
|
|
1836
|
+
blurbs = [],
|
|
1837
|
+
isOwner = false,
|
|
1838
|
+
possibleTags = [],
|
|
1839
|
+
onToggleTag = () => {
|
|
1840
|
+
}
|
|
1841
|
+
}) {
|
|
1842
|
+
const theme = material.useTheme();
|
|
1843
|
+
const isSmallScreen = material.useMediaQuery(theme.breakpoints.down("lg"));
|
|
1844
|
+
const tagsElement = isOwner ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1845
|
+
PlayerTagsEdit_default,
|
|
1700
1846
|
{
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
onToggleTag: props.updatePlayerTags
|
|
1847
|
+
selectedTags: tags,
|
|
1848
|
+
possibleTags,
|
|
1849
|
+
onToggleTag
|
|
1705
1850
|
}
|
|
1706
|
-
);
|
|
1851
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(PlayerTagsCard_default, { tags });
|
|
1852
|
+
return /* @__PURE__ */ jsxRuntime.jsx(material.NoSsr, { children: /* @__PURE__ */ jsxRuntime.jsx(material.Box, { sx: { padding: "2rem", marginRight: "auto", marginLeft: "auto" }, justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsxs(material.Grid, { container: true, spacing: 3, justifyContent: "center", sx: { marginRight: "auto", marginLeft: "auto" }, children: [
|
|
1853
|
+
!isSmallScreen && /* @__PURE__ */ jsxRuntime.jsxs(material.Grid, { size: { xs: 12, lg: 3 }, children: [
|
|
1854
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1855
|
+
PlayerDetailsCard_default,
|
|
1856
|
+
{
|
|
1857
|
+
preferredPronouns: playerData.preferredPronouns,
|
|
1858
|
+
age: playerData.age,
|
|
1859
|
+
yearsPlaying: playerData.yearsPlaying,
|
|
1860
|
+
discordUsername: playerData.discordUsername,
|
|
1861
|
+
preferredGames: playerData.preferredGames
|
|
1862
|
+
}
|
|
1863
|
+
),
|
|
1864
|
+
tagsElement
|
|
1865
|
+
] }),
|
|
1866
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.Grid, { size: { xs: 12, lg: 6 }, children: /* @__PURE__ */ jsxRuntime.jsxs(material.Grid, { container: true, spacing: 3, children: [
|
|
1867
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.Grid, { size: { xs: 12, lg: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1868
|
+
PlayerDisplayCard_default,
|
|
1869
|
+
{
|
|
1870
|
+
profilePicture: playerData.profilePicture,
|
|
1871
|
+
username: playerData.username,
|
|
1872
|
+
bio: playerData.bio,
|
|
1873
|
+
preferredPronouns: playerData.preferredPronouns
|
|
1874
|
+
}
|
|
1875
|
+
) }),
|
|
1876
|
+
isSmallScreen && /* @__PURE__ */ jsxRuntime.jsx(material.Grid, { size: { xs: 12, lg: 3 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1877
|
+
PlayerDetailsCard_default,
|
|
1878
|
+
{
|
|
1879
|
+
preferredPronouns: playerData.preferredPronouns,
|
|
1880
|
+
age: playerData.age,
|
|
1881
|
+
yearsPlaying: playerData.yearsPlaying,
|
|
1882
|
+
discordUsername: playerData.discordUsername,
|
|
1883
|
+
preferredGames: playerData.preferredGames
|
|
1884
|
+
}
|
|
1885
|
+
) }),
|
|
1886
|
+
blurbs.map((blurb, index) => /* @__PURE__ */ jsxRuntime.jsx(material.Grid, { size: { xs: 12, lg: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1887
|
+
PlayerPromptCard_default,
|
|
1888
|
+
{
|
|
1889
|
+
title: blurb.title,
|
|
1890
|
+
description: blurb.description
|
|
1891
|
+
}
|
|
1892
|
+
) }, index))
|
|
1893
|
+
] }) })
|
|
1894
|
+
] }) }) });
|
|
1707
1895
|
}
|
|
1896
|
+
var ExpiredTablesFilter = ({
|
|
1897
|
+
includeExpiredTables,
|
|
1898
|
+
onChange
|
|
1899
|
+
}) => {
|
|
1900
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { mt: 2 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1901
|
+
FormControlLabel__default.default,
|
|
1902
|
+
{
|
|
1903
|
+
control: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1904
|
+
Checkbox__default.default,
|
|
1905
|
+
{
|
|
1906
|
+
checked: includeExpiredTables,
|
|
1907
|
+
onChange: (e) => onChange(e.target.checked),
|
|
1908
|
+
color: "primary"
|
|
1909
|
+
}
|
|
1910
|
+
),
|
|
1911
|
+
label: "Show expired tables"
|
|
1912
|
+
}
|
|
1913
|
+
) });
|
|
1914
|
+
};
|
|
1915
|
+
var ExpiredTablesFilter_default = ExpiredTablesFilter;
|
|
1708
1916
|
var SORT_OPTIONS = [
|
|
1709
1917
|
{ id: "relevance", label: "Relevance" },
|
|
1710
1918
|
{ id: "newest", label: "Newest" },
|
|
@@ -1718,7 +1926,7 @@ var SortOptions = ({
|
|
|
1718
1926
|
onChange == null ? void 0 : onChange(event.target.value);
|
|
1719
1927
|
};
|
|
1720
1928
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1721
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1929
|
+
/* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "h6", gutterBottom: true, children: "Sort By" }),
|
|
1722
1930
|
/* @__PURE__ */ jsxRuntime.jsx(FormControl2__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(RadioGroup__default.default, { defaultValue: defaultValue2, onChange: handleSortChange, children: SORT_OPTIONS.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1723
1931
|
FormControlLabel__default.default,
|
|
1724
1932
|
{
|
|
@@ -1733,11 +1941,19 @@ var SortOptions = ({
|
|
|
1733
1941
|
var SortOptions_default = SortOptions;
|
|
1734
1942
|
var TagsFilter = ({
|
|
1735
1943
|
onChange,
|
|
1736
|
-
tags: Tags = []
|
|
1944
|
+
tags: Tags = [],
|
|
1945
|
+
initialSelectedTags
|
|
1737
1946
|
}) => {
|
|
1738
|
-
const [mustHaveTags, setMustHaveTags] = React7__default.default.useState([]);
|
|
1739
|
-
const [mustNotHaveTags, setMustNotHaveTags] = React7__default.default.useState([]);
|
|
1740
|
-
const [shouldHaveAtLeastOneTags, setShouldHaveAtLeastOneTags] = React7__default.default.useState([]);
|
|
1947
|
+
const [mustHaveTags, setMustHaveTags] = React7__default.default.useState((initialSelectedTags == null ? void 0 : initialSelectedTags.mustHave) || []);
|
|
1948
|
+
const [mustNotHaveTags, setMustNotHaveTags] = React7__default.default.useState((initialSelectedTags == null ? void 0 : initialSelectedTags.mustNotHave) || []);
|
|
1949
|
+
const [shouldHaveAtLeastOneTags, setShouldHaveAtLeastOneTags] = React7__default.default.useState((initialSelectedTags == null ? void 0 : initialSelectedTags.shouldHaveAtLeastOne) || []);
|
|
1950
|
+
React7__default.default.useEffect(() => {
|
|
1951
|
+
if (initialSelectedTags) {
|
|
1952
|
+
setMustHaveTags(initialSelectedTags.mustHave || []);
|
|
1953
|
+
setMustNotHaveTags(initialSelectedTags.mustNotHave || []);
|
|
1954
|
+
setShouldHaveAtLeastOneTags(initialSelectedTags.shouldHaveAtLeastOne || []);
|
|
1955
|
+
}
|
|
1956
|
+
}, [initialSelectedTags]);
|
|
1741
1957
|
Tags = !!Tags ? Tags : [];
|
|
1742
1958
|
const [inputValues, setInputValues] = React7__default.default.useState({
|
|
1743
1959
|
mustHave: "",
|
|
@@ -1747,7 +1963,7 @@ var TagsFilter = ({
|
|
|
1747
1963
|
const tagOptions = React7__default.default.useMemo(() => {
|
|
1748
1964
|
console.log("available tags: " + JSON.stringify(Tags));
|
|
1749
1965
|
console.log(!Tags);
|
|
1750
|
-
if (!Tags || Tags.length
|
|
1966
|
+
if (!Tags || Tags.length === 0 || !Tags.map) return [];
|
|
1751
1967
|
return Tags.map((tag) => ({
|
|
1752
1968
|
value: tag.id,
|
|
1753
1969
|
label: tag.label
|
|
@@ -1779,7 +1995,7 @@ var TagsFilter = ({
|
|
|
1779
1995
|
};
|
|
1780
1996
|
const renderSelectedTags = (selectedTags, category) => {
|
|
1781
1997
|
const tagValues = [];
|
|
1782
|
-
if (!Tags || Tags.length
|
|
1998
|
+
if (!Tags || Tags.length === 0 || !Tags.map) return null;
|
|
1783
1999
|
Tags.forEach((tag) => {
|
|
1784
2000
|
if (selectedTags.includes(tag.id)) {
|
|
1785
2001
|
tagValues.push(tag);
|
|
@@ -1788,27 +2004,11 @@ var TagsFilter = ({
|
|
|
1788
2004
|
if (tagValues.length === 0) {
|
|
1789
2005
|
return null;
|
|
1790
2006
|
}
|
|
1791
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: tagValues.map((tag) => /* @__PURE__ */ jsxRuntime.
|
|
1792
|
-
|
|
2007
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: tagValues.map((tag) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2008
|
+
Chip,
|
|
1793
2009
|
{
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
background: tag.color || "#bfbcbb",
|
|
1797
|
-
color: "white",
|
|
1798
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
1799
|
-
},
|
|
1800
|
-
children: [
|
|
1801
|
-
tag.label,
|
|
1802
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1803
|
-
"button",
|
|
1804
|
-
{
|
|
1805
|
-
type: "button",
|
|
1806
|
-
onClick: () => handleTagChange(tag.id, category),
|
|
1807
|
-
className: "ml-2 text-red-500 bg-white bg-opacity-50 rounded-full outline-black outline-2 font-outlined",
|
|
1808
|
-
children: "\xD7"
|
|
1809
|
-
}
|
|
1810
|
-
)
|
|
1811
|
-
]
|
|
2010
|
+
tag,
|
|
2011
|
+
removeCallback: (tagId) => handleTagChange(tagId, category)
|
|
1812
2012
|
},
|
|
1813
2013
|
tag.id
|
|
1814
2014
|
)) });
|
|
@@ -1816,7 +2016,7 @@ var TagsFilter = ({
|
|
|
1816
2016
|
const createTagSelector = (category, label) => {
|
|
1817
2017
|
const selectedTags = category === "mustHave" ? mustHaveTags : category === "mustNotHave" ? mustNotHaveTags : shouldHaveAtLeastOneTags;
|
|
1818
2018
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1819
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2019
|
+
/* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "subtitle1", gutterBottom: true, sx: { mt: 2 }, children: label }),
|
|
1820
2020
|
renderSelectedTags(selectedTags, category),
|
|
1821
2021
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1822
2022
|
Autocomplete__default.default,
|
|
@@ -1862,18 +2062,18 @@ var TagsFilter = ({
|
|
|
1862
2062
|
});
|
|
1863
2063
|
},
|
|
1864
2064
|
slots: { popper: CustomPopper2 },
|
|
1865
|
-
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2065
|
+
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(TextField4__default.default, { ...params, label: `Select ${label}` })
|
|
1866
2066
|
},
|
|
1867
2067
|
`${category}-${selectedTags.join("-")}`
|
|
1868
2068
|
)
|
|
1869
2069
|
] });
|
|
1870
2070
|
};
|
|
1871
2071
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1872
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2072
|
+
/* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "h6", gutterBottom: true, children: "Tags" }),
|
|
1873
2073
|
createTagSelector("mustHave", "Must Have Tags"),
|
|
1874
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2074
|
+
/* @__PURE__ */ jsxRuntime.jsx(Divider3__default.default, { sx: { my: 2 } }),
|
|
1875
2075
|
createTagSelector("mustNotHave", "Must Not Have Tags"),
|
|
1876
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2076
|
+
/* @__PURE__ */ jsxRuntime.jsx(Divider3__default.default, { sx: { my: 2 } }),
|
|
1877
2077
|
createTagSelector("shouldHaveAtLeastOne", "Should Contain At Least One Tag")
|
|
1878
2078
|
] });
|
|
1879
2079
|
};
|
|
@@ -1903,21 +2103,80 @@ var CustomPopper2 = (props) => {
|
|
|
1903
2103
|
);
|
|
1904
2104
|
};
|
|
1905
2105
|
var TagsFilter_default = TagsFilter;
|
|
1906
|
-
var
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
2106
|
+
var TextSearchCard = ({ onChange, selectedTypes, initialTextSearch }) => {
|
|
2107
|
+
const [query, setQuery] = React7__default.default.useState((initialTextSearch == null ? void 0 : initialTextSearch.query) || "");
|
|
2108
|
+
const [titleOnly, setTitleOnly] = React7__default.default.useState((initialTextSearch == null ? void 0 : initialTextSearch.titleOnly) || false);
|
|
2109
|
+
React7.useEffect(() => {
|
|
2110
|
+
if (initialTextSearch) {
|
|
2111
|
+
setQuery(initialTextSearch.query || "");
|
|
2112
|
+
setTitleOnly(initialTextSearch.titleOnly || false);
|
|
2113
|
+
}
|
|
2114
|
+
}, [initialTextSearch]);
|
|
2115
|
+
const shouldShow = selectedTypes.includes("table") || selectedTypes.includes("event");
|
|
2116
|
+
if (!shouldShow) {
|
|
2117
|
+
return null;
|
|
2118
|
+
}
|
|
2119
|
+
const handleQueryChange = (e) => {
|
|
2120
|
+
const newQuery = e.target.value;
|
|
2121
|
+
setQuery(newQuery);
|
|
2122
|
+
if (onChange) {
|
|
2123
|
+
onChange({ query: newQuery, titleOnly });
|
|
2124
|
+
}
|
|
2125
|
+
};
|
|
2126
|
+
const handleTitleOnlyChange = (e) => {
|
|
2127
|
+
const newTitleOnly = e.target.checked;
|
|
2128
|
+
setTitleOnly(newTitleOnly);
|
|
2129
|
+
if (onChange) {
|
|
2130
|
+
onChange({ query, titleOnly: newTitleOnly });
|
|
2131
|
+
}
|
|
2132
|
+
};
|
|
2133
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2134
|
+
/* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "h6", gutterBottom: true, children: "Text Search" }),
|
|
2135
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { mb: 2 }, children: [
|
|
2136
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2137
|
+
TextField4__default.default,
|
|
2138
|
+
{
|
|
2139
|
+
fullWidth: true,
|
|
2140
|
+
label: "Search in title and description",
|
|
2141
|
+
variant: "outlined",
|
|
2142
|
+
value: query,
|
|
2143
|
+
onChange: handleQueryChange,
|
|
2144
|
+
placeholder: "Enter search terms...",
|
|
2145
|
+
sx: { mb: 1 }
|
|
2146
|
+
}
|
|
2147
|
+
),
|
|
2148
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2149
|
+
FormControlLabel__default.default,
|
|
2150
|
+
{
|
|
2151
|
+
control: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2152
|
+
Checkbox__default.default,
|
|
2153
|
+
{
|
|
2154
|
+
checked: titleOnly,
|
|
2155
|
+
onChange: handleTitleOnlyChange
|
|
2156
|
+
}
|
|
2157
|
+
),
|
|
2158
|
+
label: "Search in title only"
|
|
2159
|
+
}
|
|
2160
|
+
)
|
|
2161
|
+
] })
|
|
2162
|
+
] });
|
|
2163
|
+
};
|
|
2164
|
+
var TextSearchCard_default = TextSearchCard;
|
|
2165
|
+
var TypeFilter = ({ types, initialSelectedTypes = [], onChange }) => {
|
|
2166
|
+
const [selectedTypes, setSelectedTypes] = React7__default.default.useState(initialSelectedTypes);
|
|
2167
|
+
React7.useEffect(() => {
|
|
2168
|
+
setSelectedTypes(initialSelectedTypes);
|
|
2169
|
+
}, [initialSelectedTypes]);
|
|
1913
2170
|
const handleTypeChange = (typeId) => {
|
|
1914
2171
|
const newSelectedTypes = selectedTypes.includes(typeId) ? selectedTypes.filter((id) => id !== typeId) : [...selectedTypes, typeId];
|
|
1915
2172
|
setSelectedTypes(newSelectedTypes);
|
|
1916
|
-
|
|
2173
|
+
if (onChange) {
|
|
2174
|
+
onChange(newSelectedTypes);
|
|
2175
|
+
}
|
|
1917
2176
|
};
|
|
1918
2177
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1919
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1920
|
-
/* @__PURE__ */ jsxRuntime.jsx(FormGroup__default.default, { children:
|
|
2178
|
+
/* @__PURE__ */ jsxRuntime.jsx(Typography4__default.default, { variant: "h6", gutterBottom: true, children: "Type" }),
|
|
2179
|
+
/* @__PURE__ */ jsxRuntime.jsx(FormGroup__default.default, { children: types.map((type) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1921
2180
|
FormControlLabel__default.default,
|
|
1922
2181
|
{
|
|
1923
2182
|
control: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1925,7 +2184,8 @@ var TypeFilter = ({ onChange }) => {
|
|
|
1925
2184
|
{
|
|
1926
2185
|
checked: selectedTypes.includes(type.id),
|
|
1927
2186
|
onChange: () => handleTypeChange(type.id),
|
|
1928
|
-
disabled: type.
|
|
2187
|
+
disabled: type.id === "event",
|
|
2188
|
+
title: type.id === "event" ? "Coming soon! Currently only player and table search are supported." : ""
|
|
1929
2189
|
}
|
|
1930
2190
|
),
|
|
1931
2191
|
label: type.label
|
|
@@ -1936,22 +2196,67 @@ var TypeFilter = ({ onChange }) => {
|
|
|
1936
2196
|
};
|
|
1937
2197
|
var TypeFilter_default = TypeFilter;
|
|
1938
2198
|
var FiltersContainer = ({
|
|
2199
|
+
initialSelectedTypes = [],
|
|
2200
|
+
initialSelectedTags,
|
|
2201
|
+
initialTextSearch,
|
|
2202
|
+
includeExpiredTables = false,
|
|
1939
2203
|
onTypeChange,
|
|
1940
2204
|
onTagChange,
|
|
2205
|
+
onTextSearchChange,
|
|
2206
|
+
onIncludeExpiredTablesChange,
|
|
1941
2207
|
onSubmit,
|
|
1942
|
-
tags
|
|
2208
|
+
tags,
|
|
2209
|
+
searchTypes
|
|
1943
2210
|
}) => {
|
|
2211
|
+
const [selectedTypes, setSelectedTypes] = React7__default.default.useState(initialSelectedTypes);
|
|
2212
|
+
React7.useEffect(() => {
|
|
2213
|
+
setSelectedTypes(initialSelectedTypes);
|
|
2214
|
+
}, [initialSelectedTypes]);
|
|
2215
|
+
const handleTypeChange = (types) => {
|
|
2216
|
+
setSelectedTypes(types);
|
|
2217
|
+
if (onTypeChange) {
|
|
2218
|
+
onTypeChange(types);
|
|
2219
|
+
}
|
|
2220
|
+
};
|
|
1944
2221
|
return /* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { children: [
|
|
1945
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1946
|
-
|
|
2222
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2223
|
+
TypeFilter_default,
|
|
2224
|
+
{
|
|
2225
|
+
types: searchTypes,
|
|
2226
|
+
initialSelectedTypes,
|
|
2227
|
+
onChange: handleTypeChange
|
|
2228
|
+
}
|
|
2229
|
+
),
|
|
2230
|
+
/* @__PURE__ */ jsxRuntime.jsx(Divider3__default.default, { sx: { my: 2 } }),
|
|
2231
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2232
|
+
TextSearchCard_default,
|
|
2233
|
+
{
|
|
2234
|
+
selectedTypes,
|
|
2235
|
+
initialTextSearch,
|
|
2236
|
+
onChange: onTextSearchChange
|
|
2237
|
+
}
|
|
2238
|
+
),
|
|
2239
|
+
(selectedTypes.includes("table") || selectedTypes.includes("event")) && /* @__PURE__ */ jsxRuntime.jsx(Divider3__default.default, { sx: { my: 2 } }),
|
|
1947
2240
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1948
2241
|
TagsFilter_default,
|
|
1949
2242
|
{
|
|
1950
2243
|
tags,
|
|
2244
|
+
initialSelectedTags,
|
|
1951
2245
|
onChange: onTagChange
|
|
1952
2246
|
}
|
|
1953
2247
|
),
|
|
1954
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2248
|
+
/* @__PURE__ */ jsxRuntime.jsx(Divider3__default.default, { sx: { my: 2 } }),
|
|
2249
|
+
selectedTypes.includes("table") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2250
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2251
|
+
ExpiredTablesFilter_default,
|
|
2252
|
+
{
|
|
2253
|
+
includeExpiredTables,
|
|
2254
|
+
onChange: onIncludeExpiredTablesChange || (() => {
|
|
2255
|
+
})
|
|
2256
|
+
}
|
|
2257
|
+
),
|
|
2258
|
+
/* @__PURE__ */ jsxRuntime.jsx(Divider3__default.default, { sx: { my: 2 } })
|
|
2259
|
+
] }),
|
|
1955
2260
|
/* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { display: "flex", justifyContent: "center", mt: 2 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1956
2261
|
Button7__default.default,
|
|
1957
2262
|
{
|
|
@@ -2009,16 +2314,75 @@ var SearchResultCard_default = SearchResultCard;
|
|
|
2009
2314
|
function SearchPageLayout({
|
|
2010
2315
|
results,
|
|
2011
2316
|
title = "Search Results",
|
|
2317
|
+
initialSelectedTypes = [],
|
|
2318
|
+
initialSelectedTags = {
|
|
2319
|
+
mustHave: [],
|
|
2320
|
+
mustNotHave: [],
|
|
2321
|
+
shouldHaveAtLeastOne: []
|
|
2322
|
+
},
|
|
2323
|
+
initialTextSearch = {
|
|
2324
|
+
query: "",
|
|
2325
|
+
titleOnly: false
|
|
2326
|
+
},
|
|
2327
|
+
includeExpiredTables: initialIncludeExpiredTables = false,
|
|
2012
2328
|
onTypeChange,
|
|
2013
2329
|
onTagChange,
|
|
2330
|
+
onTextSearchChange,
|
|
2331
|
+
onIncludeExpiredTablesChange,
|
|
2014
2332
|
onSubmit,
|
|
2015
2333
|
onResultClick,
|
|
2334
|
+
onPacketChange,
|
|
2335
|
+
pagination,
|
|
2016
2336
|
validTags,
|
|
2017
|
-
allTags
|
|
2337
|
+
allTags,
|
|
2338
|
+
searchTypes,
|
|
2339
|
+
isLoading = false
|
|
2018
2340
|
}) {
|
|
2019
|
-
"use client";
|
|
2020
2341
|
const theme = material.useTheme();
|
|
2021
2342
|
const isMobile = material.useMediaQuery(theme.breakpoints.down("md"));
|
|
2343
|
+
const [selectedTypes, setSelectedTypes] = React7.useState(initialSelectedTypes);
|
|
2344
|
+
const [selectedTags, setSelectedTags] = React7.useState(initialSelectedTags);
|
|
2345
|
+
const [textSearch, setTextSearch] = React7.useState(initialTextSearch);
|
|
2346
|
+
const [includeExpiredTables, setIncludeExpiredTables] = React7.useState(initialIncludeExpiredTables);
|
|
2347
|
+
React7.useEffect(() => {
|
|
2348
|
+
setSelectedTypes(initialSelectedTypes);
|
|
2349
|
+
}, [initialSelectedTypes]);
|
|
2350
|
+
React7.useEffect(() => {
|
|
2351
|
+
setSelectedTags(initialSelectedTags);
|
|
2352
|
+
}, [initialSelectedTags]);
|
|
2353
|
+
React7.useEffect(() => {
|
|
2354
|
+
setTextSearch(initialTextSearch);
|
|
2355
|
+
}, [initialTextSearch]);
|
|
2356
|
+
React7.useEffect(() => {
|
|
2357
|
+
setIncludeExpiredTables(initialIncludeExpiredTables);
|
|
2358
|
+
}, [initialIncludeExpiredTables]);
|
|
2359
|
+
const handleTypeChange = (types) => {
|
|
2360
|
+
setSelectedTypes(types);
|
|
2361
|
+
if (onTypeChange) onTypeChange(types);
|
|
2362
|
+
};
|
|
2363
|
+
const handleTagChange = (tags) => {
|
|
2364
|
+
setSelectedTags(tags);
|
|
2365
|
+
if (onTagChange) onTagChange(tags);
|
|
2366
|
+
};
|
|
2367
|
+
const handleTextSearchChange = (ts) => {
|
|
2368
|
+
setTextSearch(ts);
|
|
2369
|
+
if (onTextSearchChange) onTextSearchChange(ts);
|
|
2370
|
+
};
|
|
2371
|
+
const handleIncludeExpiredTablesChange = (include) => {
|
|
2372
|
+
setIncludeExpiredTables(include);
|
|
2373
|
+
if (onIncludeExpiredTablesChange) onIncludeExpiredTablesChange(include);
|
|
2374
|
+
};
|
|
2375
|
+
const handleSubmit = () => {
|
|
2376
|
+
const currentCriteria = {
|
|
2377
|
+
selectedTypes,
|
|
2378
|
+
selectedTags,
|
|
2379
|
+
textSearch,
|
|
2380
|
+
includeExpiredTables
|
|
2381
|
+
};
|
|
2382
|
+
if (onSubmit) {
|
|
2383
|
+
onSubmit(currentCriteria);
|
|
2384
|
+
}
|
|
2385
|
+
};
|
|
2022
2386
|
return /* @__PURE__ */ jsxRuntime.jsxs(Box2__default.default, { sx: { padding: 2 }, children: [
|
|
2023
2387
|
/* @__PURE__ */ jsxRuntime.jsx(Card10__default.default, { sx: { marginBottom: 2 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2024
2388
|
CardHeader4__default.default,
|
|
@@ -2032,8 +2396,8 @@ function SearchPageLayout({
|
|
|
2032
2396
|
}
|
|
2033
2397
|
}
|
|
2034
2398
|
) }),
|
|
2035
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2036
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2399
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, spacing: 2, children: [
|
|
2400
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 3 }, children: /* @__PURE__ */ jsxRuntime.jsxs(Card10__default.default, { sx: { marginBottom: isMobile ? 2 : 0 }, children: [
|
|
2037
2401
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2038
2402
|
CardHeader4__default.default,
|
|
2039
2403
|
{
|
|
@@ -2049,14 +2413,21 @@ function SearchPageLayout({
|
|
|
2049
2413
|
/* @__PURE__ */ jsxRuntime.jsx(CardContent10__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2050
2414
|
FiltersContainer_default,
|
|
2051
2415
|
{
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2416
|
+
initialSelectedTypes: selectedTypes,
|
|
2417
|
+
initialSelectedTags: selectedTags,
|
|
2418
|
+
initialTextSearch: textSearch,
|
|
2419
|
+
includeExpiredTables,
|
|
2420
|
+
onTypeChange: handleTypeChange,
|
|
2421
|
+
onTagChange: handleTagChange,
|
|
2422
|
+
onTextSearchChange: handleTextSearchChange,
|
|
2423
|
+
onIncludeExpiredTablesChange: handleIncludeExpiredTablesChange,
|
|
2424
|
+
onSubmit: handleSubmit,
|
|
2425
|
+
tags: validTags,
|
|
2426
|
+
searchTypes
|
|
2056
2427
|
}
|
|
2057
2428
|
) })
|
|
2058
2429
|
] }) }),
|
|
2059
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2430
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 9 }, children: /* @__PURE__ */ jsxRuntime.jsxs(Card10__default.default, { children: [
|
|
2060
2431
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2061
2432
|
CardHeader4__default.default,
|
|
2062
2433
|
{
|
|
@@ -2069,10 +2440,12 @@ function SearchPageLayout({
|
|
|
2069
2440
|
}
|
|
2070
2441
|
}
|
|
2071
2442
|
),
|
|
2072
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardContent10__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2443
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardContent10__default.default, { children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(Box2__default.default, { sx: { display: "flex", justifyContent: "center", py: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(CircularProgress3__default.default, { size: 60, thickness: 4 }) }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2073
2444
|
ResultsContainer_default,
|
|
2074
2445
|
{
|
|
2075
2446
|
results,
|
|
2447
|
+
pagination,
|
|
2448
|
+
onPacketChange,
|
|
2076
2449
|
onResultClick,
|
|
2077
2450
|
tags: allTags
|
|
2078
2451
|
}
|
|
@@ -2174,14 +2547,14 @@ var PlayerHighlightsCard = function(props) {
|
|
|
2174
2547
|
removeFromTable
|
|
2175
2548
|
} = props;
|
|
2176
2549
|
return /* @__PURE__ */ jsxRuntime.jsx(material.Card, { elevation: 3, sx: { backgroundColor: canEdit ? "#fffbea" : "#f5f9fa", marginBottom: "6px" }, children: /* @__PURE__ */ jsxRuntime.jsxs(material.CardContent, { children: [
|
|
2177
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2178
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2179
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2180
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2550
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, spacing: 2, direction: "column", children: [
|
|
2551
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, direction: "row", children: [
|
|
2552
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(Image2__default.default, { alt: player.username + "'s profile pic", height: 64, src: player.miniPic || "", width: 64 }) }),
|
|
2553
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "h5", children: player.username }) })
|
|
2181
2554
|
] }),
|
|
2182
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2555
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: renderTagsFromIds(player.tags, allTags) })
|
|
2183
2556
|
] }),
|
|
2184
|
-
canEdit && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2557
|
+
canEdit && /* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { children: [
|
|
2185
2558
|
/* @__PURE__ */ jsxRuntime.jsx(Button7__default.default, { onClick: () => removeFromTable(player), children: isWaitList ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Deny Player" }) : /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Remove Player" }) }),
|
|
2186
2559
|
canChangeDungeonMaster && /* @__PURE__ */ jsxRuntime.jsx(Button7__default.default, { onClick: () => {
|
|
2187
2560
|
handleAssignToDungeonMaster(player);
|
|
@@ -2193,11 +2566,11 @@ var PlayerHighlightsCard = function(props) {
|
|
|
2193
2566
|
var DMHighlightsCard = function({ canEdit, player, allTags }) {
|
|
2194
2567
|
return /* @__PURE__ */ jsxRuntime.jsxs(material.Card, { elevation: 3, sx: { backgroundColor: "#f5f9fa", marginBottom: "6px" }, children: [
|
|
2195
2568
|
/* @__PURE__ */ jsxRuntime.jsx(material.CardHeader, { slotProps: { title: { variant: "h4" } }, title: "Game Master" }),
|
|
2196
|
-
/* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { sx: { backgroundColor: canEdit ? "#fffbea" : "inherit" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2197
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2198
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2199
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2200
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2569
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { sx: { backgroundColor: canEdit ? "#fffbea" : "inherit" }, children: /* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, spacing: 2, direction: "column", children: [
|
|
2570
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "h5", children: player.username }) }),
|
|
2571
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, direction: "row", children: [
|
|
2572
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(Image2__default.default, { alt: player.username + "'s profile pic", height: 120, src: player.imageUrl ? player.imageUrl : "", width: 256 }) }),
|
|
2573
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: renderTagsFromIds(player.tags, allTags) }),
|
|
2201
2574
|
/* @__PURE__ */ jsxRuntime.jsx(material.Typography, { children: player.description })
|
|
2202
2575
|
] })
|
|
2203
2576
|
] }) })
|
|
@@ -2351,6 +2724,87 @@ var NextGameCountdown = ({ nextGameTime }) => {
|
|
|
2351
2724
|
timeLeft
|
|
2352
2725
|
] });
|
|
2353
2726
|
};
|
|
2727
|
+
function TagEditor({
|
|
2728
|
+
title = "Tags",
|
|
2729
|
+
selectedTags,
|
|
2730
|
+
possibleTags,
|
|
2731
|
+
onToggleTag
|
|
2732
|
+
}) {
|
|
2733
|
+
const [inputValue, setInputValue] = React7.useState("");
|
|
2734
|
+
const selectedIds = React7.useMemo(() => selectedTags.map((tag) => tag.id), [selectedTags]);
|
|
2735
|
+
const options = React7.useMemo(
|
|
2736
|
+
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label })),
|
|
2737
|
+
[possibleTags]
|
|
2738
|
+
);
|
|
2739
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, children: /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12 }, children: /* @__PURE__ */ jsxRuntime.jsxs(Card10__default.default, { children: [
|
|
2740
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2741
|
+
CardHeader4__default.default,
|
|
2742
|
+
{
|
|
2743
|
+
title,
|
|
2744
|
+
style: {
|
|
2745
|
+
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
2746
|
+
color: "#FFFFFF",
|
|
2747
|
+
fontSize: "1.5rem",
|
|
2748
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)"
|
|
2749
|
+
}
|
|
2750
|
+
}
|
|
2751
|
+
),
|
|
2752
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CardContent10__default.default, { children: [
|
|
2753
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: selectedTags.map((tag) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2754
|
+
Chip,
|
|
2755
|
+
{
|
|
2756
|
+
tag,
|
|
2757
|
+
removeCallback: () => onToggleTag(tag.id)
|
|
2758
|
+
},
|
|
2759
|
+
tag.id
|
|
2760
|
+
)) }),
|
|
2761
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, spacing: 3, children: /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { sx: { marginTop: 3, width: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2762
|
+
Autocomplete__default.default,
|
|
2763
|
+
{
|
|
2764
|
+
options,
|
|
2765
|
+
filterOptions: (availableOptions, state) => availableOptions.filter(
|
|
2766
|
+
(option) => !selectedIds.includes(option.value) && option.label.toLowerCase().includes(state.inputValue.toLowerCase())
|
|
2767
|
+
).slice(0, 3),
|
|
2768
|
+
value: null,
|
|
2769
|
+
inputValue,
|
|
2770
|
+
onInputChange: (event, newInputValue) => {
|
|
2771
|
+
if (event && event.type === "change") {
|
|
2772
|
+
setInputValue(newInputValue);
|
|
2773
|
+
}
|
|
2774
|
+
},
|
|
2775
|
+
onChange: (event, newValue) => {
|
|
2776
|
+
if (newValue) {
|
|
2777
|
+
onToggleTag(newValue.value);
|
|
2778
|
+
}
|
|
2779
|
+
setInputValue("");
|
|
2780
|
+
},
|
|
2781
|
+
slots: { popper: CustomPopper3 },
|
|
2782
|
+
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(TextField4__default.default, { ...params, label: "Select Tags" })
|
|
2783
|
+
},
|
|
2784
|
+
selectedIds.join("-")
|
|
2785
|
+
) }) })
|
|
2786
|
+
] })
|
|
2787
|
+
] }) }) });
|
|
2788
|
+
}
|
|
2789
|
+
var CustomPopper3 = (props) => {
|
|
2790
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2791
|
+
Popper__default.default,
|
|
2792
|
+
{
|
|
2793
|
+
...props,
|
|
2794
|
+
modifiers: [
|
|
2795
|
+
{
|
|
2796
|
+
name: "preventOverflow",
|
|
2797
|
+
options: { boundary: "viewport" }
|
|
2798
|
+
},
|
|
2799
|
+
{
|
|
2800
|
+
name: "offset",
|
|
2801
|
+
options: { offset: [0, -10] }
|
|
2802
|
+
}
|
|
2803
|
+
],
|
|
2804
|
+
placement: "top-start"
|
|
2805
|
+
}
|
|
2806
|
+
);
|
|
2807
|
+
};
|
|
2354
2808
|
function TablePageLayout(props) {
|
|
2355
2809
|
var _a;
|
|
2356
2810
|
const { allTags, dungeonMaster, onDeleteTable, onJoinWaitlist, onLeaveTable, onSaveDraft, players, table, tableStatus, waitlistPlayers } = props;
|
|
@@ -2421,9 +2875,9 @@ function TablePageLayout(props) {
|
|
|
2421
2875
|
p: 2,
|
|
2422
2876
|
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)"
|
|
2423
2877
|
},
|
|
2424
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2878
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, direction: "column", children: [
|
|
2425
2879
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2426
|
-
|
|
2880
|
+
Grid8__default.default,
|
|
2427
2881
|
{
|
|
2428
2882
|
container: true,
|
|
2429
2883
|
direction: "column",
|
|
@@ -2468,7 +2922,7 @@ function TablePageLayout(props) {
|
|
|
2468
2922
|
value: currentShortDescription
|
|
2469
2923
|
}
|
|
2470
2924
|
) : /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { sx: { color: "white", opacity: 0.95 }, children: currentShortDescription }),
|
|
2471
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2925
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, children: isTableInEditMode ? renderEditableTags(currentTags, allTags, handleToggleTag) : renderTags(currentTagIds, allTags) }),
|
|
2472
2926
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2473
2927
|
TableActionsBar,
|
|
2474
2928
|
{
|
|
@@ -2488,8 +2942,8 @@ function TablePageLayout(props) {
|
|
|
2488
2942
|
]
|
|
2489
2943
|
}
|
|
2490
2944
|
),
|
|
2491
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2492
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2945
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, spacing: 2, sx: { mt: 2 }, children: [
|
|
2946
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(material.Card, { sx: { height: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { children: isTableInEditMode ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2493
2947
|
AutoResizingTextarea_default,
|
|
2494
2948
|
{
|
|
2495
2949
|
isInEditMode: isTableInEditMode,
|
|
@@ -2498,7 +2952,7 @@ function TablePageLayout(props) {
|
|
|
2498
2952
|
value: currentDescription
|
|
2499
2953
|
}
|
|
2500
2954
|
) : /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { sx: { whiteSpace: "pre-wrap" }, children: currentDescription }) }) }) }),
|
|
2501
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2955
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { size: { xs: 12, md: 4 }, children: [
|
|
2502
2956
|
/* @__PURE__ */ jsxRuntime.jsx(DMHighlightsCard, { canEdit: isTableInEditMode, player: currentDungeonMaster, allTags }),
|
|
2503
2957
|
/* @__PURE__ */ jsxRuntime.jsxs(material.Card, { sx: { height: "100%" }, children: [
|
|
2504
2958
|
/* @__PURE__ */ jsxRuntime.jsx(material.CardHeader, { slotProps: { title: { variant: "h4" } }, title: "Players: " }),
|
|
@@ -2525,13 +2979,13 @@ var renderTags = function(tags, allTags) {
|
|
|
2525
2979
|
if (!tags || !allTags) {
|
|
2526
2980
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
2527
2981
|
}
|
|
2528
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2982
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, spacing: 1, sx: { pb: 1.5 }, children: tags.map((tagId) => {
|
|
2529
2983
|
const tag = allTags.find((potentialTag) => tagId === potentialTag.id);
|
|
2530
2984
|
return tag ? generateTagsDisplay(tag) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
2531
2985
|
}) });
|
|
2532
2986
|
};
|
|
2533
2987
|
var renderEditableTags = function(selectedTags, allTags, onToggleTag) {
|
|
2534
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2988
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12 }, sx: { pb: 1.5 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2535
2989
|
TagEditor,
|
|
2536
2990
|
{
|
|
2537
2991
|
title: "Table Tags",
|
|
@@ -2559,18 +3013,21 @@ exports.EventEditProvider = EventEditProvider;
|
|
|
2559
3013
|
exports.EventPageLayout = EventPageLayout;
|
|
2560
3014
|
exports.EventResultCard = EventResultCard_default;
|
|
2561
3015
|
exports.EventTablesCard = EventTablesCard_default;
|
|
3016
|
+
exports.ExpiredTablesFilter = ExpiredTablesFilter_default;
|
|
2562
3017
|
exports.FiltersContainer = FiltersContainer_default;
|
|
2563
3018
|
exports.GameTableProvider = GameTableProvider;
|
|
2564
3019
|
exports.ModalContext = ModalContext;
|
|
2565
3020
|
exports.ModalProvider = ModalProvider_default;
|
|
2566
3021
|
exports.NextGameCountdown = NextGameCountdown;
|
|
3022
|
+
exports.NextGameLabel = NextGameLabel_default;
|
|
2567
3023
|
exports.PlayerDetailsCard = PlayerDetailsCard_default;
|
|
2568
3024
|
exports.PlayerDisplayCard = PlayerDisplayCard_default;
|
|
2569
3025
|
exports.PlayerHighlightsCard = PlayerHighlightsCard;
|
|
3026
|
+
exports.PlayerPageLayout = PlayerPageLayout;
|
|
2570
3027
|
exports.PlayerPromptCard = PlayerPromptCard_default;
|
|
2571
3028
|
exports.PlayerResultCard = PlayerResultCard_default;
|
|
2572
|
-
exports.PlayerTagsCard =
|
|
2573
|
-
exports.PlayerTagsEdit =
|
|
3029
|
+
exports.PlayerTagsCard = PlayerTagsCard_default;
|
|
3030
|
+
exports.PlayerTagsEdit = PlayerTagsEdit_default;
|
|
2574
3031
|
exports.PlayersScrollableList = PlayersScrollableList_default;
|
|
2575
3032
|
exports.ResultsContainer = ResultsContainer_default;
|
|
2576
3033
|
exports.ScrollableResultsList = ScrollableResultsList_default;
|
|
@@ -2583,6 +3040,7 @@ exports.TableResultCard = TableResultCard_default;
|
|
|
2583
3040
|
exports.TablesScrollableList = TablesScrollableList_default;
|
|
2584
3041
|
exports.TagEditor = TagEditor;
|
|
2585
3042
|
exports.TagsFilter = TagsFilter_default;
|
|
3043
|
+
exports.TextSearchCard = TextSearchCard_default;
|
|
2586
3044
|
exports.TypeFilter = TypeFilter_default;
|
|
2587
3045
|
exports.generateTagsDisplay = generateTagsDisplay;
|
|
2588
3046
|
exports.renderTagsFromIds = renderTagsFromIds;
|