Commit Graph

7 Commits

Author SHA1 Message Date
21ea49f7c7 refactor(global): import alias @ 2026-03-26 15:54:42 +09:00
da4c123015 style(ClubSearchTable): adjust search input container flex width and min-width
- Add minWidth: 180 to the main flex container to prevent excessive shrinking.
- Change the search input container width from fixed minWidth: 400 to dynamic width: '100%' with a new minWidth: 200.

This ensures better responsiveness on smaller screens while maintaining usability.
2026-03-26 14:02:16 +09:00
5927861af7 feat(club-management): add club follow/unfollow functionality
Introduce a follow/unfollow feature for clubs in the ClubSummary component.
Users can now toggle their subscription status to a specific club, with
the state persisted locally using zustand.

Changes include:
- Added 'Follow' and 'Unfollow' buttons with corresponding star icons (StarOutlined/StarFilled).
- Updated ClubStore to manage a simplified list of clubs (id and name only).
- Refactored Data type in ClubSearchTable to use Pick<ClubInfo, 'id' | 'name'>.
- Fixed club name in GameSelector clubList to '东华乒乓球俱乐部'.
- Excluded follow buttons for club ID '47' (Donghua).

The implementation ensures a consistent UI state across the application
and persists user preferences.
2026-03-26 13:44:32 +09:00
30339596d7 feat(search): support province and city filtering for club search
- Add CascaderProvinceCity component to ClubSearchTable for selecting province/city.
- Update KaiqiuService.findClub to accept and append province/city parameters to the query URL.
- Update server-side API handler to extract province/city from query parameters.
- Improve date parsing logic in event processing to handle invalid start dates gracefully.
- Refactor uidScoreStore to use a loop instead of map for better performance/clarity.
- Add debug logging for profile caching in xcxApi.

The search functionality now supports filtering clubs by administrative division, providing users with more precise search results.
2026-03-25 20:27:51 +09:00
0f9e80856b refactor(components): optimize event list and search table with pagination persistence
- Refactor ClubEventList to support persistent page state in sessionStorage and dynamic toggle for finished events.
- Move pagination logic to useRunOnce hook for initialization, ensuring correct state restoration.
- Update ClubSearchTable to support "My Favorites" tab, using useRef to cache search results for different club types.
- Enhance EventCard with precise time formatting (HH:mm:ss) and dynamic countdown logic using dayjs timezone.
- Persist club selection in GameSelector using local storage and integrate ClubSummary component.
- Fix geo data handling in KaiqiuService, ensuring coordinates are correctly passed to iCalendar generator.
- Remove unused imports and simplify component structure across affected files.
2026-03-15 02:33:34 +09:00
aef89d2341 feat(club): add club type filtering and optimize event list display
- Add 'Club' vs 'Points Club' filter in `ClubSearchTable` using Radio buttons.
- Update `searchClub` request to accept and pass `clubType` parameter to the backend API.
- Refactor logic in `ClubEventList` to determine "Show All" button visibility based on whether all items are finished or not finished, rather than just a fixed count.
- Add custom CSS (styled-components) to limit the height of the game selector drawer for better UX.
- Update backend service `KaiqiuService` to handle the new query parameters for filtering clubs by type.
2026-03-14 00:11:42 +09:00
99fd5778df feat: search club 2026-03-13 20:15:57 +09:00