Skip to content

fix(dashpay): add back navigation to notifications - #991

Merged
QuantumExplorer merged 1 commit into
developfrom
codex/fix-notifications-back-button
Aug 11, 2026
Merged

fix(dashpay): add back navigation to notifications#991
QuantumExplorer merged 1 commit into
developfrom
codex/fix-notifications-back-button

Conversation

@llbartekll

@llbartekll llbartekll commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Issue being fixed or feature implemented

The Notifications screen is pushed from Home inside a SwiftUI hosting controller whose UIKit navigation bar is hidden, leaving no visible way to return to Home.

What was done?

  • added the standard in-content back button and centered Notifications title
  • wired Back to pop the existing Home navigation stack through a weak callback
  • prevented rapid taps from stacking duplicate Notifications screens
  • left Home profile navigation and shared navigation-bar behavior unchanged

How Has This Been Tested?

  • dashpay Debug build for an arm64 iOS Simulator succeeded
  • git diff --check passed
  • verified the final commit changes only NotificationsScreen and its Home entry point

Breaking Changes

None.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation

The dashpay scheme has no configured test target; this UI-only change was verified with a full build and navigation-flow audit.

Summary by CodeRabbit

  • UI Improvements
    • Added a custom Notifications screen header with a centered title and back button.
    • Improved back navigation from the Notifications screen.
    • Prevented notification navigation when the Home screen is not currently active.

@llbartekll
llbartekll requested a review from romchornyi August 11, 2026 20:39
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b0cc1dd8-1d92-48cf-a6b1-5335bfc0971d

📥 Commits

Reviewing files that changed from the base of the PR and between 916ac4a and eb9b9d8.

📒 Files selected for processing (2)
  • DashWallet/Sources/UI/DashPay/Contacts/SwiftUI/NotificationsScreen.swift
  • DashWallet/Sources/UI/Home/HomeViewController.swift

📝 Walkthrough

Walkthrough

NotificationsScreen now uses a custom navigation bar and back callback. HomeViewController validates its navigation context before pushing the hosted notifications screen.

Changes

Notifications navigation

Layer / File(s) Summary
Custom notifications header
DashWallet/Sources/UI/DashPay/Contacts/SwiftUI/NotificationsScreen.swift
NotificationsScreen now requires an onBack callback and renders a custom back button with a centered localized “Notifications” title.
Validated notifications presentation
DashWallet/Sources/UI/Home/HomeViewController.swift
The notification action now requires HomeViewController to be the navigation stack top, supplies a pop callback, and pushes the hosted screen through the validated navigation controller.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: romchornyi, quantumexplorer

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding back navigation to the DashPay notifications screen.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/fix-notifications-back-button

Comment @coderabbitai help to get the list of available commands.

@QuantumExplorer
QuantumExplorer merged commit ae879a8 into develop Aug 11, 2026
3 checks passed
QuantumExplorer added a commit that referenced this pull request Aug 28, 2026
)

* feat(masternodes): unban a PoSe-banned masternode/evonode from the app

An "Unban masternode" action on both masternode detail screens,
riding the ProUpServTx orchestration that shipped in platform #4507
(rust-dashcore #991 underneath): the app broadcasts a provider update
signed with the operator key, re-asserting the node's current service
values, which revives it in the masternode list.

- Wallet-owned nodes gate on operatorInWallet and sign through the
  mnemonic resolver at the record's resolved operator key index;
  tracked nodes gate on the shared canUpdateService capability and sign
  with the vaulted operator key text. Both fund the fee from the
  wallet's core funds.
- The confirm sheet collects the evonode Platform P2P port (the
  masternode list doesn't carry it; defaults to the standard 26656) and
  — only when the SDK reports the node pays an operator reward — the
  operator payout address, which the payload replaces on-chain and must
  therefore never default.
- Guided shielded top-up: with no spendable DASH for the fee, one tap
  withdraws 0.001 DASH from the shielded balance to the wallet's own
  address. The withdrawal settles through the network withdrawal queue
  minutes later, so the intent persists (PendingMasternodeUnbanStore,
  per wallet) and "Complete unban" resumes the flow — across app
  relaunches — once the funds land.
- An unconfirmed broadcast is terminal (never retried), matching the
  send path's ambiguous-outcome discipline; the v3 extended-net-info
  refusal from the SDK gets its own explanatory copy.
- Status copy for a list entry flagged invalid is now "PoSe banned"
  (it was "Inactive") — that is what the state means.

Builds against swift-sdk at platform v4.2-dev 52e8d4ec68 or later.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(wallet): review — persist pending unban only after submission, guard duplicate submits, reject port 0, suppress the row post-broadcast

- The pending-unban record now persists only once the shielded
  withdrawal was actually submitted (or its outcome is ambiguous) — an
  app killed during the authentication prompt no longer leaves a
  phantom "Complete unban" waiting for a payout that never comes.
- submit() leaves .ready before suspending on authentication, so a
  second tap during the PIN prompt can't start a duplicate ProUpServTx.
- Port 0 parses as a UInt16 but is not a usable service port — rejected.
- After a successful broadcast both detail screens show "Unban
  submitted…" instead of re-offering the button while the DML entry is
  still banned for a few more blocks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.

2 participants