Skip to content

🎨 Palette: Add loading spinners to project dialogs - #1

Closed
seonghobae wants to merge 1 commit into
mainfrom
palette-ux-loading-spinners-10756574501519691107
Closed

🎨 Palette: Add loading spinners to project dialogs#1
seonghobae wants to merge 1 commit into
mainfrom
palette-ux-loading-spinners-10756574501519691107

Conversation

@seonghobae

Copy link
Copy Markdown

πŸ’‘ What: Added Loader2 loading spinners to the submit buttons of three project-related dialogs (DeleteProjectDialog, RenameProjectDialog, NewProjectDialog).
🎯 Why: To provide immediate, clear visual feedback to the user when an asynchronous operation (like creating, renaming, or deleting a project) is in progress, preventing confusion or double-clicks.
β™Ώ Accessibility: Included aria-hidden="true" on the Loader2 icon so screen readers do not redundantly announce the decorative spinner, since the button text already changes to indicate the loading state.


PR created automatically by Jules for task 10756574501519691107 started by @seonghobae

This commit adds a small `Loader2` spinner to the submit/delete buttons
of the `DeleteProjectDialog`, `RenameProjectDialog`, and `NewProjectDialog`
when their state is pending. This provides immediate visual feedback to the user
during asynchronous operations.
@google-labs-jules

Copy link
Copy Markdown

πŸ‘‹ 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented May 31, 2026

Copy link
Copy Markdown

Review Change Stack

πŸ“ Walkthrough

κ°œμš”

μ„Έ 개의 ν”„λ‘œμ νŠΈ 관리 λŒ€ν™” μƒμž(μ‚­μ œ, 생성, 이름 λ³€κ²½)에 lucide-react의 Loader2 μŠ€ν”Όλ„ˆλ₯Ό μΆ”κ°€ν•˜μ—¬, 폼이 pending μƒνƒœμΌ λ•Œ λ²„νŠΌμ— λ‘œλ”© ν‘œμ‹œκΈ°λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. νŒ¨ν„΄μ€ 섀계 κ°€μ΄λ“œ λ¬Έμ„œμ—λ„ κΈ°λ‘λ©λ‹ˆλ‹€.

λ³€κ²½ 사항

λ‘œλ”© μƒνƒœ UI κ°œμ„ 

λ ˆμ΄μ–΄ / 파일(λ“€) μš”μ•½
λ‘œλ”© μŠ€ν”Όλ„ˆ νŒ¨ν„΄ κ°€μ΄λ“œ
.Jules/palette.md
async λ²„νŠΌμ˜ pending μƒνƒœμ—μ„œ Loader2 μŠ€ν”Όλ„ˆλ₯Ό μ‚¬μš©ν•˜λŠ” 방법을 λ¬Έμ„œν™”ν•©λ‹ˆλ‹€.
ν”„λ‘œμ νŠΈ μ•‘μ…˜ λŒ€ν™” μƒμžμ— λ‘œλ”© μŠ€ν”Όλ„ˆ μΆ”κ°€
apps/app/app/(app)/components/DeleteProjectDialog.tsx, apps/app/app/(app)/components/NewProjectDialog.tsx, apps/app/app/(app)/components/RenameProjectDialog.tsx
μ„Έ λŒ€ν™” μƒμž κ°κ°μ—μ„œ Loader2λ₯Ό importν•˜κ³ , λ²„νŠΌμ˜ pending μƒνƒœμ— 따라 μŠ€ν”Όλ„ˆ μ•„μ΄μ½˜κ³Ό λ‘œλ”© ν…μŠ€νŠΈ("μ‚­μ œ 쀑...", "λ§Œλ“œλŠ” 쀑...", "μ €μž₯ 쀑...")λ₯Ό μ‘°κ±΄λΆ€λ‘œ λ Œλ”λ§ν•©λ‹ˆλ‹€.

μ˜ˆμƒ μ½”λ“œ 리뷰 μ†Œμš” μ‹œκ°„

🎯 2 (λ‹¨μˆœ) | ⏱️ ~10λΆ„

ν† λΌμ˜ μΆ•ν•˜ μ‹œ

🐰 λ‘œλ”© 바퀴λ₯Ό κ΅΄λ €, μ•‘μ…˜ 쀑에도
μ‚¬μš©μžλŠ” 기닀림을 μ•Œκ² λ„€,
μŠ€ν”Όλ„ˆ 돌며 진행을 μ•Œλ €μ£Όλ‹ˆ,
λ²„νŠΌ ν•˜λ‚˜, μƒνƒœ λ°± κ°€μ§€,
μ‹œκ°„μ΄ 흐λ₯Έλ‹€λŠ” μ‹ ν˜Έ, ✨


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Docstring Coverage ❌ Error Docstring coverage is 0.00% which is insufficient. The required threshold is 100.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
βœ… Passed checks (4 passed)
Check name Status Explanation
Title check βœ… Passed Pull request 제λͺ©μ΄ λ³€κ²½ μ‚¬ν•­μ˜ μ£Όμš” λ‚΄μš©μ„ λͺ…ν™•ν•˜κ²Œ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ„Έ 개의 ν”„λ‘œμ νŠΈ λŒ€ν™” μƒμžμ— λ‘œλ”© μŠ€ν”Όλ„ˆλ₯Ό μΆ”κ°€ν•œ λ‚΄μš©μ„ μ •ν™•νžˆ λ°˜μ˜ν•©λ‹ˆλ‹€.
Description check βœ… Passed Pull request μ„€λͺ…이 λ³€κ²½ 사항과 관련이 있으며, λ³€κ²½μ˜ λͺ©μ (μ‚¬μš©μž ν”Όλ“œλ°±), 영ν–₯을 λ°›λŠ” μ»΄ν¬λ„ŒνŠΈ, 그리고 μ ‘κ·Όμ„± 고렀사항을 ν¬ν•¨ν•©λ‹ˆλ‹€.
Linked Issues check βœ… Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check βœ… Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
πŸ“ Generate docstrings
  • Create stacked PR
  • Commit on current branch
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch palette-ux-loading-spinners-10756574501519691107
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch palette-ux-loading-spinners-10756574501519691107

Comment @coderabbitai help to get the list of available commands and usage tips.

seonghobae pushed a commit that referenced this pull request Jun 12, 2026
Meta-audit checkpoint #1 (cycle 260602-01): the exact `toHaveBeenCalledWith`
RequestInit object asserted header-construction form, not behavior. Behavior
is already covered by the written-config assertion; keep the endpoint check
with expect.anything() for the request init. Records audit conclusions in
learnings (gates LOC already reviewed; session heartbeat schema deferred).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@seonghobae

Copy link
Copy Markdown
Author

톡합 PRμ—μ„œ 유효 λ³€κ²½λ§Œ 선별해 λ‹€μ‹œ 닀루고 μžˆμ–΄ 이 쀑볡/μž”μ—¬ PR은 μ •λ¦¬ν•©λ‹ˆλ‹€. #39 및 vibemafiaclub/vooster#34λ₯Ό κΈ°μ€€μœΌλ‘œ 후속 κ²€ν† λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.

@seonghobae seonghobae closed this Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant