Conversation
…ch, and other field support - Add PhoneInput component with country code dropdown and auto-formatting - Add UniversityCombobox with Hipo API search and popular universities list - Add SelectWithOther component for dropdowns with custom 'Other' text input - Add AgreementsSection to admin review panels for better visibility - Change 'Major' label to 'Field(s) of Study' across application forms - Add missing Race field to PersonalInfoStep - Fix .air.toml for Windows compatibility
|
|
||
| [build] | ||
| args_bin = [] | ||
| bin = "./tmp/main" |
| *.out | ||
| vendor/ | ||
|
|
||
| # Air live reload |
There was a problem hiding this comment.
remove this as well. If you want have it set in your own global .gitignore
balebbae
left a comment
There was a problem hiding this comment.
Mainly removing backend fmt commits.
There was a problem hiding this comment.
Remove any changes to the backend. It seems to be formatting issues with tabs and spaces which I'm not getting maybe its a mac vs windows thing. I'll look into it but it shouldn't be here for this pr.
| } | ||
| } | ||
|
|
||
| export const POPULAR_UNIVERSITIES = [ |
There was a problem hiding this comment.
Remove populate univs. just have them search for their univ
There was a problem hiding this comment.
loll just realized theres 2 applications details panel will fix later dw about it for now
| state_province: string | null; | ||
| } | ||
|
|
||
| const HIPO_API_BASE = "http://universities.hipolabs.com"; |
…or university API, remove popular universities list Made-with: Cursor
…ckutd/harp into feat/frontend-ux-improvements
Made-with: Cursor
|
I'll wait on merging this. I want to completely change the current implementation for applications. |
Description
This PR addresses multiple frontend UX issues on the hacker application and admin review pages, focusing on improved data entry, better form accessibility, and enhanced admin visibility.
Changes
1. Phone Number Auto-Formatting
Problem: The phone number field was a plain text input requiring users to manually type country codes and format numbers, leading to inconsistent data and poor UX.
Solution: Created a custom
PhoneInputcomponent (components/ui/phone-input.tsx) that:(555) 123-4567+15551234567) for backend compatibilitySelectandInputcomponents for consistent stylingFiles:
client/web/src/components/ui/phone-input.tsx(NEW)client/web/src/pages/hacker/apply/steps/PersonalInfoStep.tsx(MODIFIED)2. University Searchable Dropdown
Problem: University was a free-text input allowing inconsistent entries (e.g., "UTD", "UT Dallas", "University of Texas at Dallas").
Solution: Created
UniversityComboboxcomponent (pages/hacker/apply/components/UniversityComboBox.tsx) that:Command+Popoverfor searchable dropdown patternFiles:
client/web/src/pages/hacker/apply/components/UniversityComboBox.tsx(NEW)client/web/src/pages/hacker/apply/api.ts(MODIFIED - added university search API)client/web/src/pages/hacker/apply/steps/SchoolInfoStep.tsx(MODIFIED)3. "Other" Option with Custom Text Input
Problem: Dropdown fields (Gender, Country, Level of Study, Heard About) had fixed options with no way to enter custom values.
Solution: Created reusable
SelectWithOthercomponent (pages/hacker/apply/components/SelectWithOther.tsx) that:gender = "Non-conforming")Applied to:
Files:
client/web/src/pages/hacker/apply/components/SelectWithOther.tsx(NEW)client/web/src/pages/hacker/apply/steps/PersonalInfoStep.tsx(MODIFIED)client/web/src/pages/hacker/apply/steps/SchoolInfoStep.tsx(MODIFIED)client/web/src/pages/hacker/apply/steps/ExperienceStep.tsx(MODIFIED)4. "Major" → "Field(s) of Study" Label Change
Problem: "What is your major?" was too narrow for students with multiple fields of study or non-traditional backgrounds.
Solution: Updated labels across the application:
Files:
client/web/src/pages/hacker/apply/steps/SchoolInfoStep.tsx(MODIFIED)client/web/src/pages/hacker/apply/steps/ReviewStep.tsx(MODIFIED)5. Agreements & Acknowledgments Section (Admin View)
Problem: Admin review pages didn't display applicants' agreement status (MLH Code of Conduct, Privacy Policy, etc.), making compliance verification difficult.
Solution: Created
AgreementsSectioncomponent with:Displays:
Added to:
Files:
client/web/src/pages/admin/all-applicants/components/detail-sections/AgreementsSection.tsx(NEW)client/web/src/pages/admin/all-applicants/components/detail-sections/index.ts(MODIFIED)client/web/src/pages/admin/all-applicants/components/ApplicationDetailPanel.tsx(MODIFIED)client/web/src/pages/admin/_shared/grading/GradingDetailsPanel.tsx(MODIFIED)client/web/src/pages/admin/assigned/components/ApplicationDetailsPanel.tsx(MODIFIED)Testing
npm run lint)npm run build)Checklist
pages/hacker/apply/api.ts)