diff --git a/.beans/sendou.ink-0q9m--my-calendar-page-and-components.md b/.beans/sendou.ink-0q9m--my-calendar-page-and-components.md index 4495fb80c..b2e73b957 100644 --- a/.beans/sendou.ink-0q9m--my-calendar-page-and-components.md +++ b/.beans/sendou.ink-0q9m--my-calendar-page-and-components.md @@ -1,21 +1,22 @@ --- # sendou.ink-0q9m -title: My calendar page and components +title: My Events page and components status: todo type: task +priority: normal created_at: 2026-01-11T11:45:35Z -updated_at: 2026-01-11T11:45:35Z +updated_at: 2026-01-11T12:50:56Z parent: sendou.ink-om3i --- ## Summary -Build the `/my-calendar` page with list view and event card components. +Build the `/my-events` page with list view and event card components. ## Details **Page requirements:** -- Route: `/my-calendar` +- Route: `/my-events` - Login required (redirect if not authenticated) - List view grouped by day (chronological) - Empty state with links to /calendar and /scrims @@ -28,7 +29,7 @@ Build the `/my-calendar` page with list view and event card components. - Click navigates directly to tournament/scrim page **Component sharing:** -- Build components that can be reused by sidebar My Calendar section +- Build components that can be reused by sidebar Events section - Handle both tournament and scrim event types ## Checklist diff --git a/.beans/sendou.ink-1kb8--show-times-on-mobile-my-calendar-panel.md b/.beans/sendou.ink-1kb8--show-times-on-mobile-my-calendar-panel.md index 4cbb70a99..4aab090d6 100644 --- a/.beans/sendou.ink-1kb8--show-times-on-mobile-my-calendar-panel.md +++ b/.beans/sendou.ink-1kb8--show-times-on-mobile-my-calendar-panel.md @@ -1,19 +1,19 @@ --- # sendou.ink-1kb8 -title: Show times on mobile My Calendar panel +title: Show times on mobile Events panel status: todo type: task priority: normal tags: - - my-calendar-epic + - my-events-epic created_at: 2026-01-11T09:48:18Z -updated_at: 2026-01-11T11:45:42Z +updated_at: 2026-01-11T12:51:46Z parent: sendou.ink-6eko --- ## Summary -The mobile My Calendar panel currently only shows tournament names without any time information. Add day headers and event times to help players know when things are happening. +The mobile Events panel currently only shows tournament names without any time information. Add day headers and event times to help players know when things are happening. ## Current state diff --git a/.beans/sendou.ink-36dp--check-if-pagination-styles-can-be-improved.md b/.beans/sendou.ink-36dp--check-if-pagination-styles-can-be-improved.md new file mode 100644 index 000000000..ed18d8686 --- /dev/null +++ b/.beans/sendou.ink-36dp--check-if-pagination-styles-can-be-improved.md @@ -0,0 +1,11 @@ +--- +# sendou.ink-36dp +title: Check if pagination styles can be improved +status: todo +type: task +created_at: 2026-01-11T12:35:22Z +updated_at: 2026-01-11T12:35:22Z +parent: sendou.ink-1l22 +--- + +Review the current pagination component styling and identify potential improvements that align with the CSS rework goals (modern practices, theming, accessibility). \ No newline at end of file diff --git a/.beans/sendou.ink-3hgl--fix-black-background-on-datetime-inputs-in-chrome.md b/.beans/sendou.ink-3hgl--fix-black-background-on-datetime-inputs-in-chrome.md new file mode 100644 index 000000000..2094ff444 --- /dev/null +++ b/.beans/sendou.ink-3hgl--fix-black-background-on-datetime-inputs-in-chrome.md @@ -0,0 +1,22 @@ +--- +# sendou.ink-3hgl +title: Fix black background on date/time inputs in Chrome +status: todo +type: bug +created_at: 2026-01-11T12:36:28Z +updated_at: 2026-01-11T12:36:28Z +parent: sendou.ink-1l22 +--- + +Some native input types (time, datetime-local, week, month) display with black backgrounds or styling issues in Chrome. Need to investigate the root cause and apply a consistent fix across all affected input types. + +## Details +- Affected inputs: time, datetime-local, week, month (and possibly others) +- Browser: Chrome +- The icons and placeholder text appear correctly but there seems to be a color scheme conflict + +## Checklist +- [ ] Identify which CSS rules cause the black background +- [ ] Check if it's related to color-scheme property or browser defaults +- [ ] Apply a fix that works for all affected input types at once +- [ ] Test in Chrome and other browsers \ No newline at end of file diff --git a/.beans/sendou.ink-d6vh--my-calendar-data-layer.md b/.beans/sendou.ink-d6vh--my-calendar-data-layer.md index b0025be2a..26a676d87 100644 --- a/.beans/sendou.ink-d6vh--my-calendar-data-layer.md +++ b/.beans/sendou.ink-d6vh--my-calendar-data-layer.md @@ -1,16 +1,17 @@ --- # sendou.ink-d6vh -title: My calendar data layer +title: My Events data layer status: todo type: task +priority: normal created_at: 2026-01-11T11:45:35Z -updated_at: 2026-01-11T11:45:35Z +updated_at: 2026-01-11T12:51:07Z parent: sendou.ink-om3i --- ## Summary -Create the data fetching layer for the My Calendar page that combines tournaments and scrims into a unified event list. +Create the data fetching layer for the My Events page that combines tournaments and scrims into a unified event list. ## Details @@ -28,7 +29,7 @@ Create the data fetching layer for the My Calendar page that combines tournament ## Technical approach -- Create loader at `/my-calendar` route +- Create loader at `/my-events` route - Repository functions to fetch user tournaments and scrims - Merge and sort by start time - Design data structure that works for both page and sidebar (shared) diff --git a/.beans/sendou.ink-kw6u--show-scrims-in-my-calendar.md b/.beans/sendou.ink-kw6u--show-scrims-in-my-calendar.md index ef77290ee..11b35494f 100644 --- a/.beans/sendou.ink-kw6u--show-scrims-in-my-calendar.md +++ b/.beans/sendou.ink-kw6u--show-scrims-in-my-calendar.md @@ -1,23 +1,23 @@ --- # sendou.ink-kw6u -title: Show scrims in My calendar +title: Show scrims in Events status: todo type: task priority: normal tags: - - my-calendar-epic + - my-events-epic created_at: 2026-01-11T09:44:26Z -updated_at: 2026-01-11T11:45:42Z +updated_at: 2026-01-11T12:51:46Z parent: sendou.ink-6eko --- ## Summary -Display scrims (both scheduled and looking-for-match) in the sidebar's "My calendar" section. +Display scrims (both scheduled and looking-for-match) in the sidebar's "Events" section. ## Details -The My calendar section currently shows tournament calendar entries. It should also include: +The Events section currently shows tournament calendar entries. It should also include: 1. **Scheduled scrims** - Scrims where the user's team has a confirmed match scheduled 2. **Looking-for-match scrims** - Active scrim postings where user's team is still searching for opponents @@ -27,6 +27,6 @@ This gives competitive players visibility into their upcoming scrim commitments ## Checklist - [ ] Identify where scrim data is fetched/stored -- [ ] Add scrim entries to My calendar data source +- [ ] Add scrim entries to Events data source - [ ] Distinguish between scheduled vs looking-for-match scrims visually - [ ] Test with various scrim states \ No newline at end of file diff --git a/.beans/sendou.ink-n3wk--rename-mobile-menu-tab-from-calendar-to-avoid-conf.md b/.beans/sendou.ink-n3wk--rename-mobile-menu-tab-from-calendar-to-avoid-conf.md index 770f396b0..e093bd820 100644 --- a/.beans/sendou.ink-n3wk--rename-mobile-menu-tab-from-calendar-to-avoid-conf.md +++ b/.beans/sendou.ink-n3wk--rename-mobile-menu-tab-from-calendar-to-avoid-conf.md @@ -1,10 +1,11 @@ --- # sendou.ink-n3wk title: Rename mobile menu tab from Calendar to avoid confusion -status: todo +status: completed type: bug +priority: normal created_at: 2026-01-11T09:38:36Z -updated_at: 2026-01-11T09:38:36Z +updated_at: 2026-01-11T12:48:03Z parent: sendou.ink-6eko --- diff --git a/.beans/sendou.ink-oiw2--my-calendar-navigation-links.md b/.beans/sendou.ink-oiw2--my-calendar-navigation-links.md index e19e9b5c0..ac3948fe9 100644 --- a/.beans/sendou.ink-oiw2--my-calendar-navigation-links.md +++ b/.beans/sendou.ink-oiw2--my-calendar-navigation-links.md @@ -1,31 +1,32 @@ --- # sendou.ink-oiw2 -title: My calendar navigation links +title: My Events navigation links status: todo type: task +priority: normal created_at: 2026-01-11T11:45:36Z -updated_at: 2026-01-11T11:45:36Z +updated_at: 2026-01-11T12:50:48Z parent: sendou.ink-om3i --- ## Summary -Add links to My Calendar page in sidebar (desktop) and mobile menu. +Add links to My Events page in sidebar (desktop) and mobile menu. ## Details **Desktop sidebar:** -- Add "My Calendar" link +- Add "My Events" link - Placement TBD (near existing Calendar link?) - Only show when logged in **Mobile menu:** -- Add "My Calendar" link in appropriate location +- Add "My Events" link in appropriate location - Only show when logged in ## Checklist -- [ ] Add My Calendar link to desktop sidebar -- [ ] Add My Calendar link to mobile menu +- [ ] Add My Events link to desktop sidebar +- [ ] Add My Events link to mobile menu - [ ] Ensure links only appear when authenticated - [ ] Add translations for link text \ No newline at end of file diff --git a/.beans/sendou.ink-om3i--my-calendar-page.md b/.beans/sendou.ink-om3i--my-calendar-page.md index 2b44bc212..180f7f9fa 100644 --- a/.beans/sendou.ink-om3i--my-calendar-page.md +++ b/.beans/sendou.ink-om3i--my-calendar-page.md @@ -1,16 +1,16 @@ --- # sendou.ink-om3i -title: My calendar page +title: My Events page status: todo type: epic priority: normal created_at: 2026-01-11T09:45:51Z -updated_at: 2026-01-11T10:37:00Z +updated_at: 2026-01-11T12:50:40Z --- ## Summary -A dedicated page (`/my-calendar`) for viewing the user's personal calendar with all their upcoming commitments in one centralized view. +A dedicated page (`/my-events`) for viewing the user's personal events with all their upcoming commitments in one centralized view. ## Why @@ -44,7 +44,7 @@ Users struggle to see all their commitments (tournaments, scrims) in one place. **Interaction:** Clicking an event navigates directly to the tournament/scrim page -**URL:** `/my-calendar` (login required) +**URL:** `/my-events` (login required) **Empty state:** Simple message ("No upcoming events") with links to /calendar and /scrims @@ -52,7 +52,7 @@ Users struggle to see all their commitments (tournaments, scrims) in one place. ## Technical Notes -- Share components and data fetching logic with sidebar "My Calendar" section +- Share components and data fetching logic with sidebar "Events" section - Related tasks: `sendou.ink-kw6u` (scrims in sidebar), `sendou.ink-1kb8` (times on mobile panel) ## Navigation diff --git a/.beans/sendou.ink-svz2--inline-function-in-notificationpopover.md b/.beans/sendou.ink-svz2--inline-function-in-notificationpopover.md index 6957505ec..b1233795c 100644 --- a/.beans/sendou.ink-svz2--inline-function-in-notificationpopover.md +++ b/.beans/sendou.ink-svz2--inline-function-in-notificationpopover.md @@ -1,10 +1,11 @@ --- # sendou.ink-svz2 title: Inline function in NotificationPopover -status: todo +status: completed type: task +priority: normal created_at: 2026-01-11T08:58:55Z -updated_at: 2026-01-11T08:58:55Z +updated_at: 2026-01-11T12:41:51Z parent: sendou.ink-6eko --- diff --git a/.beans/sendou.ink-v42i--check-brackets-ui-design.md b/.beans/sendou.ink-v42i--check-brackets-ui-design.md new file mode 100644 index 000000000..653bd087d --- /dev/null +++ b/.beans/sendou.ink-v42i--check-brackets-ui-design.md @@ -0,0 +1,20 @@ +--- +# sendou.ink-v42i +title: Check brackets UI design +status: todo +type: task +created_at: 2026-01-11T12:34:21Z +updated_at: 2026-01-11T12:34:21Z +parent: sendou.ink-6eko +--- + +## Description + +Review the brackets UI and decide on design questions: + +## Checklist + +- [ ] Should tabs (Main/Underground) be "attached" to brackets outline? +- [ ] Should "Add sub" link to a different page? +- [ ] Compactify button restyle needed? +- [ ] Do we need "Go to match" button when match info is already in the sidebar? diff --git a/.beans/sendou.ink-yyzj--my-calendar-ical-export.md b/.beans/sendou.ink-yyzj--my-calendar-ical-export.md index cee1943a1..2905d01e3 100644 --- a/.beans/sendou.ink-yyzj--my-calendar-ical-export.md +++ b/.beans/sendou.ink-yyzj--my-calendar-ical-export.md @@ -1,16 +1,17 @@ --- # sendou.ink-yyzj -title: My calendar iCal export +title: My Events iCal export status: todo type: task +priority: normal created_at: 2026-01-11T11:45:35Z -updated_at: 2026-01-11T11:45:35Z +updated_at: 2026-01-11T12:51:39Z parent: sendou.ink-om3i --- ## Summary -Add .ics file export for the user's personal calendar, allowing subscription in external calendar apps. +Add .ics file export for the user's personal events, allowing subscription in external calendar apps. ## Details @@ -28,8 +29,8 @@ Add .ics file export for the user's personal calendar, allowing subscription in ## Checklist - [ ] Research existing /calendar iCal implementation -- [ ] Create endpoint for personal calendar .ics +- [ ] Create endpoint for personal events .ics - [ ] Generate iCal events from user's tournaments - [ ] Generate iCal events from user's scrims -- [ ] Add subscription URL/button to My Calendar page +- [ ] Add subscription URL/button to My Events page - [ ] Test subscription in external calendar app \ No newline at end of file diff --git a/app/components/MobileNav.tsx b/app/components/MobileNav.tsx index d6b85794e..400ac21f8 100644 --- a/app/components/MobileNav.tsx +++ b/app/components/MobileNav.tsx @@ -117,7 +117,7 @@ function MobileTabBar({ /> } - label={t("common:pages.calendar")} + label={t("front:sideNav.myCalendar")} isActive={activePanel === "tourneys"} onPress={() => onTabPress("tourneys")} /> diff --git a/app/components/layout/NotificationPopover.tsx b/app/components/layout/NotificationPopover.tsx index 94f57686d..58042d12c 100644 --- a/app/components/layout/NotificationPopover.tsx +++ b/app/components/layout/NotificationPopover.tsx @@ -1,4 +1,3 @@ -import clsx from "clsx"; import { Bell, RefreshCcw } from "lucide-react"; import * as React from "react"; import { useTranslation } from "react-i18next"; @@ -37,12 +36,6 @@ export function useNotifications() { return { notifications, unseenIds }; } -export function notificationPopoverClassName(notificationsLength: number) { - return clsx(styles.popoverContainer, { - [styles.noNotificationsContainer]: notificationsLength === 0, - }); -} - export function NotificationContent({ notifications, unseenIds, diff --git a/app/components/layout/index.tsx b/app/components/layout/index.tsx index 83c618b63..909a69c7c 100644 --- a/app/components/layout/index.tsx +++ b/app/components/layout/index.tsx @@ -36,11 +36,8 @@ import { Footer } from "./Footer"; import styles from "./index.module.css"; import { LogInButtonContainer } from "./LogInButtonContainer"; import { NavDialog } from "./NavDialog"; -import { - NotificationContent, - notificationPopoverClassName, - useNotifications, -} from "./NotificationPopover"; +import { NotificationContent, useNotifications } from "./NotificationPopover"; +import notificationPopoverStyles from "./NotificationPopover.module.css"; import { TopNavMenus } from "./TopNavMenus"; import { TopRightButtons } from "./TopRightButtons"; @@ -386,8 +383,12 @@ function SideNavUserPanel() { } - popoverClassName={notificationPopoverClassName( - notifications.length, + popoverClassName={clsx( + notificationPopoverStyles.popoverContainer, + { + [notificationPopoverStyles.noNotificationsContainer]: + notifications.length === 0, + }, )} >