0;
+ const showOrganizerTab = data.tournaments.organizingFor.length > 0;
+ const showDiscoverTab = data.tournaments.showcase.length > 0;
+
return (
- ,
- },
- {
- label: t("front:showcase.tabs.organizer"),
- hidden: data.tournaments.organizingFor.length === 0,
- icon: ,
- },
- {
- label: t("front:showcase.tabs.discover"),
- hidden: data.tournaments.showcase.length === 0,
- icon: ,
- },
- ]}
- content={[
- {
- key: "your",
- hidden: data.tournaments.participatingFor.length === 0,
- element: (
-
- ),
- },
- {
- key: "organizer",
- hidden: data.tournaments.organizingFor.length === 0,
- element: (
-
- ),
- },
- {
- key: "discover",
- hidden: data.tournaments.showcase.length === 0,
- element: (
-
- ),
- },
- ]}
- />
+
+
+ {showSignedUpTab ? (
+ }>
+ {t("front:showcase.tabs.signedUp")}
+
+ ) : null}
+ {showOrganizerTab ? (
+ }>
+ {t("front:showcase.tabs.organizer")}
+
+ ) : null}
+ {showDiscoverTab ? (
+ }>
+ {t("front:showcase.tabs.discover")}
+
+ ) : null}
+
+
+
+
+
+
+
+
+
+
+
);
}
diff --git a/app/features/scrims/routes/scrims.tsx b/app/features/scrims/routes/scrims.tsx
index 40c81f0f7..587952174 100644
--- a/app/features/scrims/routes/scrims.tsx
+++ b/app/features/scrims/routes/scrims.tsx
@@ -34,7 +34,12 @@ import {
userSubmittedImage,
} from "~/utils/urls";
import { Main } from "../../../components/Main";
-import { NewTabs } from "../../../components/NewTabs";
+import {
+ SendouTab,
+ SendouTabList,
+ SendouTabPanel,
+ SendouTabs,
+} from "../../../components/elements/Tabs";
import { ArrowDownOnSquareIcon } from "../../../components/icons/ArrowDownOnSquare";
import { ArrowUpOnSquareIcon } from "../../../components/icons/ArrowUpOnSquare";
import { CheckmarkIcon } from "../../../components/icons/Checkmark";
@@ -107,67 +112,64 @@ export default function ScrimsPage() {
close={() => setScrimToRequestId(undefined)}
/>
) : null}
- 0 ? 0 : 2}
- tabs={[
- {
- label: t("scrims:tabs.owned"),
- number: data.posts.owned.length,
- disabled: !user,
- icon: ,
- },
- {
- label: t("scrims:tabs.requests"),
- number: data.posts.requested.length,
- disabled: !user,
- icon: ,
- },
- {
- label: t("scrims:tabs.available"),
- number: data.posts.neutral.length,
- icon: ,
- },
- ]}
- content={[
- {
- key: "owned",
- element: (
-
- ),
- },
- {
- key: "requested",
- element: (
-
- ),
- },
- {
- key: "available",
- element:
- data.posts.neutral.length > 0 ? (
-
- ) : (
-
- {t("scrims:noneAvailable")}
-
- ),
- },
- ]}
- />
+ 0 ? "owned" : "available"}
+ >
+
+ }
+ number={data.posts.owned.length}
+ >
+ {t("scrims:tabs.owned")}
+
+ }
+ number={data.posts.requested.length}
+ data-testid="requests-scrims-tab"
+ >
+ {t("scrims:tabs.requests")}
+
+ }
+ number={data.posts.neutral.length}
+ data-testid="available-scrims-tab"
+ >
+ {t("scrims:tabs.available")}
+
+
+
+
+
+
+
+
+
+ {data.posts.neutral.length > 0 ? (
+
+ ) : (
+
+ {t("scrims:noneAvailable")}
+
+ )}
+
+
{t("calendar:inYourTimeZone")}{" "}
{Intl.DateTimeFormat().resolvedOptions().timeZone}
diff --git a/app/features/sendouq-match/routes/q.match.$id.tsx b/app/features/sendouq-match/routes/q.match.$id.tsx
index 8e8ec0615..b863eba78 100644
--- a/app/features/sendouq-match/routes/q.match.$id.tsx
+++ b/app/features/sendouq-match/routes/q.match.$id.tsx
@@ -18,12 +18,17 @@ import { Divider } from "~/components/Divider";
import { FormWithConfirm } from "~/components/FormWithConfirm";
import { Image, ModeImage, StageImage, WeaponImage } from "~/components/Image";
import { Main } from "~/components/Main";
-import { NewTabs } from "~/components/NewTabs";
import { SubmitButton } from "~/components/SubmitButton";
import { LinkButton } from "~/components/elements/Button";
import { SendouButton } from "~/components/elements/Button";
import { SendouPopover } from "~/components/elements/Popover";
import { SendouSwitch } from "~/components/elements/Switch";
+import {
+ SendouTab,
+ SendouTabList,
+ SendouTabPanel,
+ SendouTabs,
+} from "~/components/elements/Tabs";
import { ArchiveBoxIcon } from "~/components/icons/ArchiveBox";
import { CrossIcon } from "~/components/icons/Cross";
import { DiscordIcon } from "~/components/icons/Discord";
@@ -677,6 +682,12 @@ function BottomSection({
].filter(Boolean) as ChatProps["rooms"];
}, [data.matchChatCode, data.groupChatCode]);
+ const chatHidden = chatRooms.length === 0;
+
+ const [selectedTabKey, setSelectedTabKey] = React.useState(
+ chatHidden ? "report" : "chat",
+ );
+
const ownWeaponsReported = data.rawReportedWeapons?.some(
(rw) => rw.userId === user?.id,
);
@@ -796,8 +807,6 @@ function BottomSection({
) : null;
- const chatHidden = chatRooms.length === 0;
-
if (!showMid && chatHidden) {
return mapListElement;
}
@@ -816,32 +825,29 @@ function BottomSection({
-
+ setSelectedTabKey(key as string)}
+ >
+
+ {!chatHidden && (
+
+ {t("q:looking.columns.chat")}
+
+ )}
+ {t("q:match.tabs.reportScore")}
+
+ {chatElement}
+
+ {mapListElement}
+
+