Skip to content

fix: use finally block to always reset creating state in handleCreate#1244

Open
akhilmodi29 wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
akhilmodi29:fix/goal-create-button-always-disabled
Open

fix: use finally block to always reset creating state in handleCreate#1244
akhilmodi29 wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
akhilmodi29:fix/goal-create-button-always-disabled

Conversation

@akhilmodi29
Copy link
Copy Markdown

What does this PR fix?

Closes #1243

The "Add goal" submit button in the Goal Tracker widget gets permanently
stuck in a disabled "Creating..." state if the post-create sync or
reload throws an error.

Root Cause

setCreating(false) was only called at the end of the success path.
Any error after a successful POST meant it never ran.

Changes Made

  • Moved form field resets inside the try block (only runs on success)
  • Removed setCreating(false) from catch block
  • Added finally { setCreating(false) } — button always re-enables

Files Changed

  • src/components/GoalTracker.tsx

Testing Done

  1. Open dashboard → Goal Tracker
  2. Fill the goal form
  3. Disconnect network → click "Add goal"
  4. ✅ Button returns to enabled state after failure
  5. Reconnect → try again → ✅ goal creates successfully

@vercel
Copy link
Copy Markdown

vercel Bot commented May 27, 2026

@akhilmodi29 is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix labels May 27, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your first PR on DevTrack! 🎉

A maintainer will review it within 48 hours. While you wait:

  • Make sure CI is passing (type-check + lint)
  • Double-check the PR description is filled out and the issue is linked
  • Feel free to ask questions in Discussions if you need help

If you find DevTrack useful, a ⭐ star on the repo is always appreciated — it helps the project grow and attract more contributors!

@akhilmodi29
Copy link
Copy Markdown
Author

@Priyanshu-byte-coder can you please review and apply the appropriate labels?

Suggested labels:

Difficulty:

  • level:beginner — single file, ~10 line change, standard JS pattern

Quality:

  • quality:clean — minimal fix, no side effects, clean diff

Type:

  • type:bug — confirmed broken behaviour (button permanently disabled)
  • type:fix — direct fix to broken state management
  • type:ux — directly impacts user experience (stuck UI)

Validation:

  • gssoc:approved — if the fix looks good to you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Goal form submit button stays disabled after a failed create attempt

1 participant