Skip to content

Merge#2

Draft
KieranMcL12 wants to merge 121 commits into
timberwolves1153:mainfrom
FRC2713:main
Draft

Merge#2
KieranMcL12 wants to merge 121 commits into
timberwolves1153:mainfrom
FRC2713:main

Conversation

@KieranMcL12

Copy link
Copy Markdown

No description provided.

Owen-Morgan825 and others added 30 commits September 2, 2025 12:49
Fix QR modal being impossible to close on some small screens by defining its height as a percentage, and making the overflow mode of the flexbox containing the QR code's info to scroll
Add floating text box- Implement #85
It was annoying me
1. Prefill match data information for your team prior to the event.
   - Before scouting an event, click the new "Prefill Match Data"
     button.
   - This will fetch all events for the current year for your team based
     on the config file and provide you with a dialog to choose which
     event to use for match data.
   - Once the event is selected, it will fetch and store all matches for
     that event into our local storage-backed state.
   - If no internet is available, we display an error to the user but no
     state is lost.
2. DynamicMatchNumberInput Component:
   - Shows a dropdown select menu with all qualification match numbers when match data is available.
   - Falls back to a standard number input when no match data is available.
   - Maintains all other features of the original NumberInput component.
3. DynamicTeamNumberInput Component:
   - Automatically populates based on the selected match number and robot position ("R1", "B2", etc.).
   - Shows a dropdown with the correct team number when available.
   - Automatically sets the team number value when a valid option is found.
   - Falls back to a standard number input when no match data is available or no robot position is selected.
4. Updated ConfigurableInput:
   - Special case handling for "matchNumber" and "teamNumber" fields.
   - Uses the dynamic input components for these fields.
   - Maintains the original components for all other fields.

This implementation:
- Shows a dropdown select input for match number only when there's match data in the state
- Shows a dropdown select input for team number when both match data is available and a match is selected
- Automatically populates the team number based on the robot position from the dropdown
- Preserves existing functionality when no match data is available
- Fails gracefully if the form doesn't have match number or team number inputs

The code is designed to respect the existing patterns and structure of the application while adding the new functionality in a clean, maintainable way.
1. Self-contained functionality:
  - The MatchDataFetcher now includes its own button and dialog handling
  - It no longer requires a render prop or children function pattern
  - No need for external refs or state handling by the parent component
2. Clearer separation of concerns:
  - Each component is now responsible for its own domain
  - ConfigSection is responsible for layout and general section functionality
  - MatchDataFetcher is solely responsible for the TBA data fetching workflow
3. Simplified parent component:
  - Removed unnecessary state, refs, and effect hooks from ConfigSection
  - Reduced the number of imports in ConfigSection
  - Eliminated complex prop-passing and render prop patterns
- Add `TBA-match-number` input type for selecting qualification matches
- Add `TBA-team-and-robot` input type for selecting teams with robot positions
- Replace dynamic field overrides with proper configurable input types
- Teams can now control Blue Alliance integration through JSON config
- Remove old DynamicMatchNumberInput and DynamicTeamNumberInput components
- Update cmdk dependency to fix missing component issue

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit refines the Blue Alliance integration by renaming components for better clarity and adding extensive documentation to help teams understand and configure the TBA features.

The original TeamAndRobotInput has been renamed to TBATeamAndRobotInput to make its purpose immediately clear - it's specifically designed for The Blue Alliance integration, not just any team selection. We also updated all the schema names to use the "tba" prefix consistently throughout the codebase.

We encountered an interesting challenge when trying to reuse the existing NumberInput component for fallback scenarios. The NumberInput expects a full ConfigurableInputProps interface including a type field, but our TBA components need to manage their own state and behavior differently. Rather than forcing an awkward integration, we opted to implement clean, focused fallback inputs that maintain the same validation logic but don't try to share code where it doesn't naturally fit.

The documentation has been significantly expanded to match the quality and depth of the existing input type documentation. The new TBA section in the README explains both input types, provides complete configuration examples, covers the data formats teams can expect in their QR codes, and includes practical FRC scouting scenarios. We also made sure to link to the detailed API setup guide we created earlier, giving teams a complete picture of how to get started with TBA integration.

This approach follows QRScout's philosophy of giving users control - the TBA inputs enhance the experience when match data is available, but gracefully fall back to manual entry when needed. Teams can start using these inputs immediately and add the API integration later when they're ready.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
luanzeba and others added 11 commits March 6, 2026 13:21
Replaced by the multi-counter input in #102.
Remove old single-increment fuel counter
Teams often assign scouts to focus on the same driver station across
matches. This PR adds support for a special "driverStation" field value
that, when set, automatically selects the team number based on their
assigned driver station position.

The impact of this change is that scouts can "set and forget" their
assigned driver stations. As soon as the form as reset and the match
number is incremented, the correct team number is automatically
selected. This saves scouts time and significantly reduces the
likelihood of error, leading to more reliable scouting data for alliance
selection.
Automate match team based on driver station
Fix teleop fuel field being listed under Auto
@KieranMcL12 KieranMcL12 marked this pull request as draft March 11, 2026 23:50
luanzeba and others added 18 commits March 12, 2026 16:04
…-final

Update 2026 config to Week 2 final version
Set Week 4 Updated Config as the default
Add checkbox-select input type for ease of use on tablets
Update Red Hawk Robotics logo assets (2026 red)
Change field type from multi-select to checkbox-select
Sanitize newlines in QR serialized text fields
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.

6 participants