π¨ Palette: [UX improvement] λ°°μΉ νμΌ μ λ‘λ ν¬κΈ° κ²μ¦ λ° λμ μλ¬ λ©μμ§ κ°μ #282
Conversation
- saas_web.pyμ λμ νκ³ ν¬κΈ°(MAX_UPLOAD_BYTES) ν¬λ§·ν μΆκ°νμ¬ μλ¬ λ©μμ§μ νμ© - μΌκ΄ μ λ‘λ μ ν΄λΌμ΄μΈνΈ λ¨μμ μ΄ν© νμΌ ν¬κΈ°λ₯Ό κ²μ¦νμ¬ UIμ μ¦κ°μ μΈ νΌλλ°±(setCustomValidity, aria-invalid) μ 곡 - tests/test_saas_web.py κ°±μ λ° 100% μ½λ 컀λ²λ¦¬μ§ 보μ₯ - CHANGELOG λ° .jules/palette.md μΆκ°
|
π Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a π emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
Pull request overview
This PR improves the FastAPI upload UI (saas_web.py) by making the client-side upload size error messaging derive from the configured size limit constant, and by adding batch-upload total-size validation to provide immediate inline feedback when a selection exceeds the limit.
Changes:
- Updated file-size validation messages to dynamically format the limit text from
MAX_UPLOAD_BYTESinstead of hardcoding5 GiB. - Added client-side validation for batch uploads to reject selections whose combined file size exceeds the configured limit, with inline preview +
setCustomValidity+aria-invalid. - Updated UI snapshot-style tests to assert the new dynamic error-message construction.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
saas_web.py |
Formats upload-limit text dynamically and adds total-size validation for batch file selections. |
tests/test_saas_web.py |
Updates assertions to match the new dynamic validation/error-message strings. |
CHANGELOG.md |
Adds an entry documenting the UX improvement. |
.jules/palette.md |
Records a UX/accessibility learning/action note related to dynamic limit formatting and batch validation. |
π‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ### Added | ||
| - λ€μ€ νμΌ μ λ‘λ μ ν μ μ¦κ°μ μΈ νμΌ κ°μ νΌλλ°± λ° μ ν μ΄κ³Ό κ²½κ³ λ©μμ§ μΆκ° | ||
| - μΌκ΄ μ λ‘λ νΌμ λμ λ°μ΄νΈ ν리μ λ²νΌκ³Ό μ΄ νμΌ ν¬κΈ° 미리보기λ₯Ό μΆκ°νμ¬ μ¬μ©μ±μ κ°μ νμ΅λλ€. | ||
| * π¨ Palette: [UX improvement] λ°°μΉ μ λ‘λ μ μ 체 νμΌ ν¬κΈ° κ²μ¦ μΆκ° λ° λμ μλ¬ λ©μμ§ ν¬λ§·ν μ μ© |
π‘ What
saas_web.pyλ΄μ νμΌ μ λ‘λ νΌ(λ¨μΌ λ° μΌκ΄ μ λ‘λ)μμ νλμ½λ©λ '5 GiB' μλ¬ λ©μμ§λ₯Ό λ°±μλμMAX_UPLOAD_BYTESκ°μ λ§μΆ° λμ μΌλ‘ μμ±λλλ‘ κ°μ νμ΅λλ€. νΉν, μΌκ΄ νμΌ μ λ‘λ νΌμ λν΄μλ μ νλ λͺ¨λ νμΌμ μ΄ ν¬κΈ°λ₯Ό ν©μ°νμ¬ μλ² μ νμ μ΄κ³Όν κ²½μ° μ¦κ°μ μΈ μΈλΌμΈ μλ¬ νΌλλ°±μ μ 곡νλλ‘ ν΄λΌμ΄μΈνΈ λ¨ κ²μ¦ λ‘μ§μ μΆκ°νμ΅λλ€.π― Why
μ¬μ©μκ° μ¬λ¬ κ°μ λμ©λ νμΌμ μΌκ΄ μ λ‘λν λ μ΄ νμΌ ν¬κΈ°λ₯Ό νμ νμ§ λͺ»ν΄ μ λ‘λ μ νμ μ΄κ³Όνκ±°λ κΈ΄ μ λ‘λ λκΈ° μκ° νμμΌ μλ² μΈ‘ μλ¬λ₯Ό λ°κ²¬νλ λ΅λ΅ν μν©μ λ°©μ§νκΈ° μν¨μ λλ€. νλ‘ νΈμλ λ¨μμ μ€μκ° νΌλλ°±μ μ€μΌλ‘μ¨ μ λ°μ μΈ μ¬μ©μ±μ ν¬κ² ν₯μμν΅λλ€.
πΈ Before/After
Before:
After:
βΏ Accessibility
setCustomValidityμ λλΆμ΄ μκ° μ₯μ λ₯Ό κ°μ§ μ¬μ©μμ μ€ν¬λ¦° 리λμμ μ½ν μ μλλ‘ λμ μΌλ‘aria-invalid='true'μμ±μ μλ²½ν μ°λμμΌ°μ΅λλ€. μλ¬ λ©μμ§λ λΆμμ(dc3545) ν μ€νΈλ‘ λͺ νν μκ°μ νΌλλ°±μ μ 곡ν©λλ€.PR created automatically by Jules for task 1972778485267174059 started by @seonghobae