Fix: InvoiceFilterBar Date Range Picker, OfflineBanner SW Integration, LPYieldComparison Historical Data, VoteProgressBar Animation#393
Merged
Conversation
…and threshold color change - Suppress transition on initial load using useRef; only enable after first vote update - Add ease-in-out easing to all progress bar transitions (500ms compact, 700ms full) - Shift For bar and label color from emerald-500 to emerald-600 when votes cross 50% threshold
… or funded date
- Add DateFilterType union type ('due' | 'funded')
- Add dateType to InvoiceFilters shape with default 'due'
- Serialize/deserialize dateType in URL search params
- Update applyInvoiceFilters to filter by invoice.funded_at when dateType is 'funded'
…ype selector (Invoice-Liquidity-Network#366) - Replace bare date inputs with a full date range picker panel - Add Due Date / Funded Date toggle to filter by the correct Invoice field - Add Today, This Week, This Month quick-preset buttons (toggle off when active) - Add inline Clear date button when a date range is set - Constrain min/max on date inputs to prevent invalid ranges
…trend lines, CSV export (Invoice-Liquidity-Network#364) - Add range selector (7D / 30D / 90D) that drives the buildYieldTimeSeries window - Replace single-token line chart with all-token comparative chart using Legend - Highlight selected token line (full opacity) while dimming others (45%) - Add Export CSV button that downloads date/USDC/EURC/XLM/total data for the active range - Import Legend from recharts for the comparative chart
…nc on reconnect (Invoice-Liquidity-Network#365) - Detect SW registration via navigator.serviceWorker.ready and controllerchange events - Show 'Offline cache active' indicator when SW is registered (invoices/portfolio available) - Show 'No offline cache' when SW is unavailable so users know the limitation - On reconnect, attempt SyncManager.register('sync-queued-requests') and post SYNC_ON_RECONNECT message to SW - Add role=alert and aria-live=assertive for screen reader announcement - Add ShieldCheck icon from lucide-react for cache status indicator
|
@MethelyDev Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Levi-Ojukwu
merged commit Jun 27, 2026
c1a0c77
into
Invoice-Liquidity-Network:main
0 of 9 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements four features across the governance, LP, invoice, and offline UX areas.
Closes #363
closes #364
closes #365
closes #366
#366 — InvoiceFilterBar Date Range Picker
min/maxconstraints on the custom date inputs to prevent invalid ranges.useInvoiceFilterswith adateTypefield ('due' | 'funded') serialised to URL search params;applyInvoiceFiltersnow filters byinvoice.funded_atwhendateType === 'funded'.#365 — OfflineBanner Service Worker Integration
navigator.serviceWorker.readyand thecontrollerchangeevent.SyncManager.register('sync-queued-requests')(where supported) and posts aSYNC_ON_RECONNECTmessage to the active SW worker, in addition to the existing React Query resume/refetch.role="alert"andaria-live="assertive"for screen-reader announcement of the offline state.#364 — LPYieldComparison Historical Data
buildYieldTimeSeries; updatedYieldRangetype to include7.yield-comparison-<range>.csvwith date, per-token yield, and total columns.#363 — VoteProgressBar Animation
useRef+useEffect; bars fill instantly on mount and only animate on subsequent vote data changes.ease-in-outon all bars (500 ms in compact mode, 700 ms in full mode).emerald-500toemerald-600when votes for exceed 50 %, providing a clear winning-state signal.Test plan
funded_at.