Skip to content

fix: add load more button to dashboard campaign lists - #740

Closed
TheShnider wants to merge 24 commits into
Iris-IV:mainfrom
TheShnider:fix/dashboard-load-more
Closed

fix: add load more button to dashboard campaign lists#740
TheShnider wants to merge 24 commits into
Iris-IV:mainfrom
TheShnider:fix/dashboard-load-more

Conversation

@TheShnider

Copy link
Copy Markdown
Contributor

closes #633

@sshdopey

sshdopey commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

@sshdopey

sshdopey commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

@sshdopey

sshdopey commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

@sshdopey

sshdopey commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

@sshdopey

sshdopey commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

@davidmaronio davidmaronio left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

the load-more logic in DashboardClient.tsx is correct, but a few things beyond the title need addressing:

  1. CausesClient.tsx removes the !isLoading && !error guard around the category-filter chips, so chips now render during loading/error states. intended? if not, restore the guard.
  2. it rewrites the Voting.needMoreVotes/needMoreApproval keys in messages/en.json/es.json into ICU {count, plural, ...} form. that collides with #739 which adds duplicate non-plural keys for the same strings. pick one representation (the ICU form here is cleaner) and coordinate so we don't end up with contradictory keys.
  3. it adds a block of Donation.* validation keys that nothing in this PR consumes. drop them or wire them up.

keep the load-more change, just split or justify the rest.

@sshdopey

sshdopey commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

@TheShnider
TheShnider requested a review from davidmaronio July 6, 2026 17:09
@sshdopey

sshdopey commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

@sshdopey

sshdopey commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

TheShnider and others added 11 commits July 6, 2026 18:55
- Iris-IV#607: raise HSTS max-age to 63072000 (2 years) in next.config.ts
- Iris-IV#611: self-host Inter via next/font/google with font-display swap,
  eliminating render-blocking font fetch
- Iris-IV#606: add onRefetch polling (10s) to DonationModal so concurrent
  donations update progress bar while input is open
- Iris-IV#605: multi-language campaign descriptions via [lang:en]/[lang:es]
  encoding; detail page resolves viewer locale with English fallback
Issue Iris-IV#651 — Multi-signature withdrawal for creator dashboard
- Add `useMultiSigProposals` hook managing proposals via localStorage
- Add `MultiSigWithdrawalPanel` component: creators set co-signers and
  a threshold; co-signers approve; withdrawal executes once threshold met
- Integrate panel into dashboard submitted-campaigns section
- Add i18n strings (en + es) under `MultiSigPanel` namespace

Issue Iris-IV#668 — Pagination Next button disabled correctly on last page
- Add reusable `Pagination` component: Next disabled when
  currentPage === totalPages, Prev disabled when currentPage === 1
- Apply to admin pending-campaigns list (5 per page)

Issue Iris-IV#601 — Storybook with stories for all reusable UI components
- Add @storybook/nextjs + addons to devDependencies
- Add `storybook` and `build-storybook` npm scripts
- Add `.storybook/main.ts` and `.storybook/preview.tsx` with
  NextIntlClientProvider decorator
- Add stories for: CauseCard, DonationModal, VotingComponent,
  ShareButtons, DeadlineCountdown, FundingProgressBar, Skeleton

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Regenerates the lock file after adding @storybook/nextjs, @storybook/react,
@storybook/addon-essentials, @storybook/addon-interactions, and storybook
devDependencies in the previous commit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove non-existent isOpen prop from DonationModal.stories.tsx
- Use conditional render pattern to control modal open state in stories
- Rename onDonationSuccess arg to onSuccess to match component interface
- Run Prettier on .storybook/main.ts, AdminClient, DashboardClient, MultiSigWithdrawalPanel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix isConnected()/isAllowed() destructuring (Freighter API v6 returns
  objects, not primitives) — was causing disconnect branch to never be reached
- Replace WatchWalletChanges with 5s polling + visibilitychange listener
  (WatchWalletChanges only fires on address/network changes, not disconnection)
- Fix isAllowed() handling in connectWallet — 'not authorized' warning was
  unreachable
- Update test mocks to match v6 API shape, add external disconnect test
- Add optional latitude/longitude fields to Campaign type
- Create CampaignMap component with valid-coordinate filtering
- Create MapErrorBoundary for map-specific error handling
- Add list/map view toggle to Causes page with dynamic leaflet import
- Update mock campaigns with sample coordinates (some with, some without)
- Add i18n keys for listView/mapView
- Write tests for helpers, filter, and error boundary
…le waitForLoadState calls

- smoke.spec.ts: use goto for all page transitions instead of clicking
  links and waiting for URL changes (avoids race with CausesClient
  router.replace on webkit/firefox)
- journeys.spec.ts: remove waitForLoadState('networkidle') calls that
  can hang on webkit when CausesClient keeps the page busy
spartan124 and others added 4 commits July 6, 2026 18:58
…ationModal

    - Implemented active polling (every 2s) for campaign status and `amount_raised` while the
  DonationModal is open.
    - Added client-side validation to reject contributions exceeding the remaining goal or
  when campaign is already fully funded.
    - Updated Next-intl translation namespace from "Donation" to "DonationModal" for input
  validation errors.
    - Resolved type-checking errors and updated mock structures in Jest tests to cover
  polling, remaining goal validation, and fully funded states.
    - Formatted files with Prettier.
    - Removed unused  variable binding in DonationModal's polling catch block to resolve
  ESLint  warning.
@sshdopey

sshdopey commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Auto-review failed (API error). Leaving PR for human review.

@TheShnider TheShnider closed this Jul 7, 2026
@TheShnider
TheShnider deleted the fix/dashboard-load-more branch July 7, 2026 19:57
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.

[Bug] 'Load More' button missing on dashboard, resulting in truncated campaign list

7 participants