Collect the graduation year and country on the profile - #383
Merged
Conversation
A competition has to know where to place a student before it can place them, and the country is the one thing nobody can reconstruct after the fact. Both are asked for now, while there is a form to ask in, and nothing reads either yet. Being past high school is its own answer rather than an old year: somebody who left years ago has no reason to remember which year it was. The two are exclusive, so saying one clears the other. Nothing bounds the column, and the years the form offers start at the current one. The profile splits on privacy. Email and member-since are the account's own business; the year and the country are what a results listing shows. Saving happens on the pick, so there is no Save button, and the sign-out button is gone from the page since the avatar menu already carries it. The country needs search over 250 options, so SearchableSelect joins the shared set on a HeadlessUI Combobox, with the reader's own country first. Both selects now share their panel, option row and chevron, and both take their height cap through --anchor-max-height, since the anchor writes an inline max-height that no class can beat. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PatrikBak
enabled auto-merge
August 22, 2026 16:08
SELECT_PANEL_GAP arrived in the previous commit by mistake, along with a docblock describing a positioner this branch does not have. Nothing imports it, so knip refuses the build. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the two competition fields to the profile page, alongside the username that shipped in #382. Nothing reads either column yet.
Schema. Three columns on
User:GraduationYear,HasLeftHighSchool,CountryCode. All nullable or defaulted, nobody backfilled, and all three join the webhook upsert's exclude list so a Clerk avatar change cannot wipe them.Being past school is an answer, not a missing year. Somebody who left years ago has no reason to remember which year it was, so they say so outright. The two are exclusive: setting one clears the other. Nothing bounds the year column, and the form offers the current year onward.
The page splits on privacy. Email and member-since are the account's own business; the year and the country are what a results listing shows. Both save on the pick, so neither has a Save button. The sign-out button is gone: the avatar menu already carries one on every page, and a lone red button under a divider reads as "delete account".
Controls.
SearchableSelectjoins the shared set, built on a HeadlessUI Combobox with accent-folding prefix-first matching, and puts the reader's own country first. It shares its panel, option row and chevron withSelect, and both now live undershared/components/select/.Two fixes fell out of building it. Both panels carried a
max-hclass that never applied, because HeadlessUI's anchor writes its own inlinemax-height; the cap goes through--anchor-max-heightnow. And macOS hides overlay scrollbars at rest, so a 250-row list looked like it ended after seven items until the housescrollbar-visibleutility went on.🤖 Generated with Claude Code