Skip to content

Release v1.7.0#118

Merged
ianpaschal merged 34 commits intomasterfrom
release-v1.7.0
Jul 18, 2025
Merged

Release v1.7.0#118
ianpaschal merged 34 commits intomasterfrom
release-v1.7.0

Conversation

@ianpaschal
Copy link
Owner

@ianpaschal ianpaschal commented Jul 16, 2025

Summary by CodeRabbit

  • New Features

    • Introduced a sortable grid component for drag-and-drop item reordering.
    • Added a pulsating visual indicator component.
    • Added a reusable warning message component.
    • Added context and hooks for centralized tournament action management and confirmation dialogs.
  • Enhancements

    • Improved confirmation dialog flexibility with new props and simplified styling.
    • Enhanced flag display with custom circular flag support and improved styling.
    • Info popovers now support configurable orientation.
    • Table components now provide row indices to cell renderers for advanced customization.
    • Tournament page titles now update dynamically in the browser tab.
  • Bug Fixes

    • Corrected match submission progress calculation in tournament rounds.
    • Fixed grammar in certain match outcome messages.
  • Removals

    • Removed the interactive tournament pairings grid and related drag-and-drop pairing UI.
    • Removed unused or obsolete pairing utility files and styles.
    • Eliminated deprecated pairing-related dependencies.
  • Refactor

    • Centralized and streamlined tournament action logic and context menu rendering.
    • Updated type definitions and improved prop handling for several components.
  • Style

    • Added or updated styles for new components (sortable grid, warning, pulsar, flag circle).
    • Removed obsolete SCSS modules related to the old pairings grid and details layouts.
  • Chores

    • Updated and reorganized error messages for improved clarity.
    • Adjusted exports and type definitions for better modularity and maintainability.
  • Documentation

    • Updated tournament lifecycle documentation for clarity and consistency.

ianpaschal and others added 30 commits June 23, 2025 21:30
…titorsByTournament.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* refactor: Improve tournament actions

* chore: Clean-up Convex errors

* fix: Do not try to clean up current round timer on tournament end

* fix: Don't allow players to be removed from tournament

* chore: Update test tournament banner image

* Update TournamentCard.tsx

* fix: Ensure round 0 rankings can be included

* fix: Fix end tournament round context menu behavior
@vercel
Copy link

vercel bot commented Jul 16, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
combat-command ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 18, 2025 6:47am

@coderabbitai
Copy link

coderabbitai bot commented Jul 16, 2025

Important

Review skipped

More than 25% of the files skipped due to max files limit. The review is being skipped to prevent a low-quality review.

37 files out of 144 files are above the max files limit of 100. Please upgrade to Pro plan to get higher limits.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This update introduces substantial refactoring and feature changes to tournament round management, pairing generation, and UI components. The drag-and-drop grid-based pairing interface and related styles are removed, replaced by a new sortable grid component utilizing @dnd-kit. Tournament round actions are centralized via a new provider and context, with validation and warning utilities for round configuration. The confirmation dialog is simplified and made more flexible. Numerous backend changes add stricter validation, new pairing mutations, and improved error messages. Several UI components and styles are added or replaced, including new warning and pulsar components, and flag display logic is updated to use CSS modules and support custom flags.

Changes

File(s) / Group Change Summary
.vscode/settings.json Added "Landsknechte" to spell-checker words.
convex/_fixtures/fowV4/createMockFowV4MatchResultData.ts Added utility for generating mock Flames of War V4 match result data.
convex/_model/fowV4/calculateFowV4MatchResultScore.ts,
convex/_model/fowV4/extractFowV4MatchResultBaseStats.ts
Updated functions to accept both Doc<'matchResults'> and DeepMatchResult types as input.
convex/_model/matchResults/_helpers/checkMatchResultBattlePlanVisibility.ts Added function to determine battle plan visibility for a user.
convex/_model/matchResults/_helpers/deepenMatchResult.ts Battle plan fields now conditionally included based on new visibility check.
convex/_model/matchResults/fields.ts Added comment on tournamentId, changed playedAt type to `string
convex/_model/matchResults/index.ts Explicitly exported CreateMatchResultArgs type.
convex/_model/matchResults/mutations/createMatchResult.ts Introduced and exported CreateMatchResultArgs type alias, updated function parameter type.
convex/_model/matchResults/queries/getMatchResults.ts,
convex/_model/matchResults/queries/getMatchResultsByTournament.ts,
convex/_model/matchResults/queries/getMatchResultsByTournamentPairing.ts,
convex/_model/matchResults/queries/getMatchResultsByTournamentRound.ts
Added descending order to match result queries.
convex/_model/tournamentCompetitors/_helpers/deepenTournamentCompetitor.ts Accepts optional results parameter for additional tournament data.
convex/_model/tournamentCompetitors/_helpers/sortTournamentCompetitorsByName.ts Added function to sort competitors by team name or player name.
convex/_model/tournamentCompetitors/mutations/updateTournamentCompetitor.ts Prevents removing players from competitors in active tournaments.
convex/_model/tournamentCompetitors/queries/getTournamentCompetitors.ts Uses new sort helper for sorting competitors.
convex/_model/tournamentCompetitors/queries/getTournamentCompetitorsByTournament.ts Accepts optional includeRankings arg, fetches rankings if present, uses sort helper.
convex/_model/tournamentPairings/_helpers/generateDraftPairings.ts Renamed type alias to CompetitorPair, updated all references.
convex/_model/tournamentPairings/_helpers/generateTableAssignments.ts Deleted file; removed all exports and logic for table assignment.
convex/_model/tournamentPairings/_helpers/sortCompetitorPairs.ts Added comparator function for sorting CompetitorPair arrays.
convex/_model/tournamentPairings/_helpers/sortPairingsByTable.ts Added utility to sort pairings by table number, handling nulls.
convex/_model/tournamentPairings/index.ts Refined exports: added ShallowTournamentPairing, removed table assignment exports, reorganized mutation/type exports.
convex/_model/tournamentPairings/mutations/createTournamentPairings.ts New mutation for batch-creating pairings with validation and authorization.
convex/_model/tournamentPairings/queries/getDraftTournamentPairings.ts Unified competitor ordering, added type, output is structured array.
convex/_model/tournamentPairings/queries/getTournamentPairingsByTournament.ts Now sorts pairings by table number before returning.
convex/_model/tournamentTimers/mutations/createTournamentTimer.ts Timer now starts immediately upon creation, not paused.
convex/_model/tournaments/README.md Updated round lifecycle trigger names for clarity.
convex/_model/tournaments/_helpers/deepenTournament.ts Inline computation of derived properties, added nextRound property.
convex/_model/tournaments/index.ts Added TournamentActionKey enum, reorganized round mutation exports.
convex/_model/tournaments/mutations/endTournament.ts Removed timer cleanup, added check to prevent ending mid-round.
convex/_model/tournaments/mutations/endTournamentRound.ts Renamed from closeTournamentRound, updated export names.
convex/_model/tournaments/mutations/startTournamentRound.ts Renamed from openTournamentRound, removed pairing assignment logic.
convex/_model/tournaments/queries/getTournamentOpenRound.ts Corrected submitted/required fields, added remaining.
convex/_model/utils/createTestTournament.ts Updated test tournament banner storage ID.
convex/_model/utils/createTestTournamentMatchResults.ts Now avoids reusing players, uses mock data generator, respects existing results.
convex/common/errors.ts Expanded and reorganized error messages, especially for pairing and lifecycle constraints.
convex/tournamentPairings.ts Added mutation for creating tournament pairings.
convex/tournaments.ts Renamed round mutations to match backend changes.
package.json Removed edmonds-blossom and its types from dependencies.
src/api.ts Exported ShallowTournamentPairing, removed UnassignedTournamentPairing, exported TournamentActionKey.
src/components/ConfirmationDialog/ConfirmationDialog.hooks.ts Now imports dialog data type, makes id parameter optional.
src/components/ConfirmationDialog/ConfirmationDialog.module.scss Simplified dialog styles, removed warning-specific blocks, added conditional padding.
src/components/ConfirmationDialog/ConfirmationDialog.tsx Refactored: props imported from types file, added flexible labels, simplified content rendering.
src/components/ConfirmationDialog/ConfirmationDialog.types.ts Added new type definitions for dialog props and data.
src/components/ConfirmationDialog/index.ts Re-exported types from types file.
src/components/FowV4MatchResultDetails/FowV4MatchResultDetails.utils.ts Removed plural "(s)" from "formation(s)" in outcome strings.
src/components/FowV4MatchResultForm/FowV4MatchResultForm.schema.ts playedAt schema now accepts string or number.
src/components/PageWrapper/PageWrapper.tsx Added hideTitle prop, updates document title on change.
src/components/ToastProvider/ToastProvider.store.ts description now allows string or string array.
src/components/TournamentActionsProvider/… (all new files) Added context, hooks, provider, and validation utility for centralizing tournament actions and warnings.
src/components/TournamentCard/TournamentCard.tsx Wrapped card content in new TournamentActionsProvider.
src/components/TournamentCompetitorForm/TournamentCompetitorForm.schema.ts Ensures players array matches competitor size, fills missing entries.
src/components/TournamentContextMenu/TournamentContextMenu.tsx Refactored to use new tournament actions hook, removed internal state/mutation logic.
src/components/TournamentContextMenu/TournamentContextMenu.utils.ts Deleted utility for calculating remaining match results.
src/components/TournamentPairingRow/TournamentPairingRow.tsx Removed UnassignedTournamentPairing from prop types.
src/components/TournamentPairingRow/TournamentPairingRow.utils.tsx Removed draft pairing type guard, updated badge prop logic.
src/components/TournamentPairingsGrid/… (all files) Entire drag-and-drop grid pairing component and related types, styles, and utilities deleted.
src/components/generic/Dialog/DialogDescription.module.scss Added font weight for strong elements.
src/components/generic/FlagCircle/FlagCircle.module.scss Added new CSS module for circular flag, custom flag support.
src/components/generic/FlagCircle/FlagCircle.scss Deleted old global flag circle style.
src/components/generic/FlagCircle/FlagCircle.tsx Switched to CSS modules, supports multiple custom flag codes.
src/components/generic/InfoPopover/InfoPopover.module.scss Set max-width for popover content.
src/components/generic/InfoPopover/InfoPopover.tsx Added orientation prop to control popover placement.
src/components/generic/Pulsar/… (all new files) Added new Pulsar animated indicator component and styles.
src/components/generic/SortableGrid/… (all new files) Added new sortable grid component using @dnd-kit with item/overlay support and styles.
src/components/generic/Table/Table.tsx Passed explicit index prop to each row.
src/components/generic/Table/Table.types.ts renderCell now receives row index as second parameter.
src/components/generic/Table/TableCell.tsx Added index prop, passed to cell renderer.
src/components/generic/Table/TableRow.tsx Added optional index prop, passed to cells.
src/components/generic/Warning/… (all new files) Added new Warning component with styles and exports.
src/modals.ts useModal now accepts optional key, generates ID if not provided.
src/pages/MatchResultDetailPage/components/MatchResultDetails.* Deleted detailed match result component, styles, and formatting utility.
src/pages/TournamentAdvanceRoundPage/TournamentAdvanceRoundPage.* Deleted wizard-based tournament advance round page and hooks.

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Join our Discord community for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@ianpaschal ianpaschal changed the base branch from develop to master July 16, 2025 17:56
@ianpaschal
Copy link
Owner Author

@coderabbitai full review

@coderabbitai
Copy link

coderabbitai bot commented Jul 16, 2025

✅ Actions performed

Full review triggered.

@ianpaschal
Copy link
Owner Author

ianpaschal commented Jul 18, 2025

@coderabbitai full review

@coderabbitai
Copy link

coderabbitai bot commented Jul 18, 2025

✅ Actions performed

Full review triggered.

@ianpaschal
Copy link
Owner Author

@coderabbitai summary

@coderabbitai
Copy link

coderabbitai bot commented Jul 18, 2025

✅ Actions performed

Summary regeneration triggered.

@ianpaschal ianpaschal merged commit b06edc9 into master Jul 18, 2025
3 checks passed
@ianpaschal ianpaschal deleted the release-v1.7.0 branch July 18, 2025 14:40
@ianpaschal ianpaschal restored the release-v1.7.0 branch July 18, 2025 17:20
@ianpaschal ianpaschal deleted the release-v1.7.0 branch July 18, 2025 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant