Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Add loading states to buttons with async actions

Open
#80 1 comment 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@abhiramvsmg is already working on this.

Since Jul 22, 2026.

Assessment

This issue has not been assessed yet.

Description

good first issue UI UX

Buttons that trigger async actions (form submissions, API calls) should show loading states to provide user feedback.

Examples:

  • Sign in/Sign up buttons
  • Session booking confirmation
  • Profile update submit
  • Goal creation

Requirements:

  • Use a loading spinner (Phosphor Icons: CircleNotch with animate-spin)
  • Disable button while loading
  • Change button text to "Loading..." or keep original text with spinner

Example pattern:

<Button disabled={isLoading}>
  {isLoading && <CircleNotch className="animate-spin mr-2" size={16} />}
  {isLoading ? "Saving..." : "Save"}
</Button>

Files to update:

  • Sign in/up forms in src/app/(marketing)/
  • Booking forms in src/app/(platform)/
  • Settings forms in src/app/(platform)/settings/

Acceptance criteria:

  • Loading states added to all primary action buttons
  • Buttons disabled while loading
  • Visual feedback (spinner or text change)
  • Tested in dev environment
Dominant language
TypeScript
Stars
3
Forks
6
Avg merge
13h 29m
Merged PRs (30d)
56

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from grasshopper-protocol/grsshppr

All issues in grasshopper-protocol/grsshppr

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.