fix(ui): update landing/welcome page - #230
Open
v7ncentng wants to merge 3 commits into
Open
Conversation
replace default dropdown UI from mac/windows to a custom designed one
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.
Summary
<select>styling) in the CSV import "Map columns" step with a custom-built, fully themed listbox component that matches the rest of the app's design.Motivation
<select>elements, so they rendered with the OS's default styling (system font, native borders/colors) instead of matching the app's design system used everywhere else in the popup.position: fixed) could open partially or fully below the visible viewport for rows near the bottom of the table, making the "Notes" option impossible to reach — a real workflow blocker when mapping the last column.Changes
src/app/edit/components/address/CSVUploadOverlay.tsx<select>inStepColumnMapperwith a newMappingFieldSelectcomponent: a button styled with the sameOVERLAY_SELECT_WRAPPER/VALUE/ICONtokens used by other "Select" boxes in the app, plus a customrole="listbox"menu built fromOVERLAY_AUTOCOMPLETE_*tokens.maxHeightwhen there isn't enough room below, so it never renders outside the visible viewport.ArrowUp/ArrowDownto move anactiveIndexhighlight,Enter/Spaceto commit,Escapeto close), synced with mouse hover, and auto-scrolls the highlighted option into view.CSV_UPLOAD_OVERLAY_PANEL_TALLvariant (90dvh) for the mapping and row-review steps only.src/app/edit/formStyles.v2.tsCSV_UPLOAD_OVERLAY_PANEL_TALL(90dvh variant of the existing panel) and propagatedflex-1 min-h-0through the inner/content/top wrapper tokens so the taller panel's scrollable regions correctly fill the available height instead of leaving empty space.CSV_UPLOAD_SELECT_PLACEHOLDERtoken (--edit-stone-600) so the "Select" placeholder text is darker than the app-wide default, without changing the sharedOVERLAY_SELECT_PLACEHOLDERtoken used by other overlays (VehicleDetailsOverlay,AddressOverlay).Validation
Frontend
npm --prefix app/ui run lintnpm --prefix app/ui run format:checknpm --prefix app/ui run typecheck(ran asnpx tsc --noEmit -p ., clean)npm --prefix app/ui run testnpm --prefix app/ui run buildnpm --prefix app/mobile run lintnpm --prefix app/mobile run typecheckBackend
Note: No live browser verification was performed — the Chrome automation extension was not connected in this environment. Manual QA in a real browser (especially scrolling/arrow-keying to the "Notes" option, and confirming the dropdown flips correctly near the bottom of the modal) is recommended before merge.
Risk
CSVUploadOverlay.tsx) and its dedicated style tokens; no shared components were changed except additive tokens informStyles.v2.ts.<select>provided for free — worth a manual accessibility pass (screen reader, tab order) since this isn't covered by typecheck/lint.Rollout and Recovery