Repository navigation
Conversation
…r primary CTAs on mobile v Closes stellar-vortex-protocol#621
…e support for toast notifi Closes stellar-vortex-protocol#622
…L" action to SavedViews Closes stellar-vortex-protocol#623
…to SavedViews entries Closes stellar-vortex-protocol#624
|
@jhayniffy 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! 🚀 |
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
Mobile sticky CTA, toast viewport, view import, and saved-view timestamps
What was solved
#621 — [Trivial] Add a sticky action bar for primary CTAs on mobile viewports
Add a reusable StickyActionBar component that pins a single primary CTA to the bottom of the viewport on mobile widths (using the existing max-sm:/sm: breakpoint convention), respects iOS safe-area insets via env(safe-area-inset-bottom), and wire it into VotePanel's "Submit Vote" action as the first real consumer. Keep the action reachable by the same selector/label so existing tests pass.
Addressed:
#622 — [Medium] Add swipe-to-dismiss gesture support for toast notifications on touch devices
Implement the currently empty
src/components/ToastViewport.tsxas the toast queue integration point, rendering toasts fromuseToastStorewith pointer/touch swipe-to-dismiss (respectingprefers-reduced-motion/data-motion="reduce") plus a visible, keyboard-operable close button fallback. Satisfy the existingToastViewport.test.tsxexpectations and add pointer-event and keyboard-dismiss tests. KeepuseToastStorequeue/dedup semantics untouched.Addressed:
#623 — [Medium] Add an "import view from URL" action to SavedViews
Add an "Import view" action to SavedViews that accepts a pasted URL or query string, validates it through the existing sanitizeViewParams/viewParamsToSearch path (with degraded notice on partial sanitization), and saves it via saveView, respecting MAX_VIEWS. New user-facing strings go through the i18n catalog (en.ts and es.ts).
Addressed:
#624 — [Trivial] Add a last-used indicator to SavedViews entries
Add optional createdAt/lastUsedAt timestamps to SavedView, migrate persisted views safely via sanitizeViews, update lastUsedAt when a view is applied in SavedViews.tsx, and render a small relative-time label per entry using i18n strings.
Addressed:
Changes
src/components/VotePanel.tsx(modify)src/store/views.ts(modify)src/components/ToastViewport.tsx(create)src/components/StickyActionBar.tsx(create)src/components/SavedViews.tsx(modify)Approach
Issues
Closes #621
Closes #622
Closes #623
Closes #624