Skip to content

Commit e30d3da

Browse files
committed
Use mobile section picker for competition tabs
1 parent d9576cd commit e30d3da

1 file changed

Lines changed: 24 additions & 3 deletions

File tree

‎src/layouts/CompetitionLayout/CompetitionLayout.tsx‎

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import classNames from 'classnames';
22
import { useEffect, useRef } from 'react';
33
import { ErrorBoundary } from 'react-error-boundary';
4-
import { Outlet, useLocation, useParams } from 'react-router-dom';
4+
import { Outlet, useLocation, useNavigate, useParams } from 'react-router-dom';
55
import { BarLoader } from 'react-spinners';
66
import { ErrorFallback, LastFetchedAt, NoteBox, NotifyCompRemoteBar } from '@/components';
77
import { Container } from '@/components/Container';
@@ -15,6 +15,7 @@ export function CompetitionLayout() {
1515
const { online } = useApp();
1616
const { competitionId } = useParams();
1717
const { pathname } = useLocation();
18+
const navigate = useNavigate();
1819

1920
const ref = useRef<HTMLDivElement>(null);
2021

@@ -31,8 +32,28 @@ export function CompetitionLayout() {
3132

3233
const Header = (
3334
<nav className="z-10 flex justify-center w-full shadow-md shadow-tertiary-dark print:hidden bg-panel">
34-
<Container className="justify-between md:flex-row">
35-
<div className="flex">
35+
<Container className="justify-between md:flex-row space-y-2 md:space-y-0">
36+
<div className="flex md:hidden w-full p-2">
37+
<label className="flex w-full items-center space-x-2" htmlFor="competition-section-nav">
38+
<span className="type-meta text-muted">Section</span>
39+
<select
40+
className="w-full rounded-md border border-tertiary-weak bg-panel p-2"
41+
id="competition-section-nav"
42+
onChange={(event) => {
43+
void navigate(event.target.value);
44+
}}
45+
value={pathname}>
46+
{tabs
47+
.filter((tab) => !tab.hiddenOnMobile)
48+
.map((tab) => (
49+
<option key={tab.href} value={tab.href}>
50+
{tab.text}
51+
</option>
52+
))}
53+
</select>
54+
</label>
55+
</div>
56+
<div className="hidden md:flex">
3657
{tabs.map((i) => (
3758
<StyledNavLink
3859
key={i.href}

0 commit comments

Comments
 (0)