fix(hackathons): issue 4275 follow-ups for submission and team UX#4293
Draft
navillanueva wants to merge 2 commits into
Draft
fix(hackathons): issue 4275 follow-ups for submission and team UX#4293navillanueva wants to merge 2 commits into
navillanueva wants to merge 2 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Follow-up fixes from #4275 (everything except the staged-hackathon items, which went into #4243). The country lock is intentionally kept as requested.
Changelog
MultiSelectgains anallowCreateprop (taken verbatim from thefeat/events-stagesbranch so the two PRs merge cleanly): typing a value that isn't in the list shows a Create "…" row, and Enter adds it as a free-form tag. Enabled on thetech_stack_tagsfield in the submission form, mirroring how the skills picker allows custom entries. The Zod schemas already accept free strings, so no server change.GeneralSecure(closed-submissions banner) andTeamFormation(all copy) now go through the existingt()dictionary inlib/events/i18n.ts, with newsubmission.status.closed*andreg.team.*keys in both languages.EmailListInput—TeamFormationdrops its per-slot email inputs for the shared tag-styleEmailListInputcomponent (added in feat(events): enhanced event creation #4241 but never wired up). Emails are validated/deduped on entry, team size auto-bumps as emails are added, and the count stays capped atteam_size_max − 1.SendInvitationProjectMemberno longer embeds whatever is inhackathon.banner: only absolutehttp(s)URLs are used. Base64 data-URIs (which most clients block and which push the HTML past Gmail's ~102KB clipping limit, causing "[Message clipped]" + an empty black box), relative paths, or missing banners fall back to the generic hosted hackathon banner already used by the event page. The banner URL is parsed withnew URL()and attribute-escaped, and the title/inviter/project-name interpolations into the email HTML are now escaped too (security review).Test plan
Refs #4275