Skip to content

Transaction Flow Screens: Modern Tile-Based Layout Revamp#475

Merged
StuartFerguson merged 6 commits intomainfrom
copilot/revamp-transaction-flow-screens
Mar 6, 2026
Merged

Transaction Flow Screens: Modern Tile-Based Layout Revamp#475
StuartFerguson merged 6 commits intomainfrom
copilot/revamp-transaction-flow-screens

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 5, 2026

Transaction flow screens used a flat list of colored buttons with no visual hierarchy. This replaces them with a tile-based card layout consistent with the existing HomePage design.

TransactionsPage

  • Gradient header (primary → #2B4A8C) with icon + title
  • 2×2 Grid of HomeCardFrame tiles; Admin spans full width (row 3)
  • Each tile color-coded by category: green (topup), blue (bill payment), purple (voucher), red (admin)

SelectOperator / SelectProduct Pages (6 pages)

  • Category-colored gradient headers per transaction type
  • VerticalStackLayout of ButtonFlexLayout of Frame tiles with TapGestureRecognizer
  • Back button extracted from dynamic list to static XAML StandardButton
// Before: plain buttons added to VerticalStackLayout
Button button = new Button { Text = modelOperator.OperatorName };
button.SetDynamicResource(StyleProperty, "MobileTopupButtonStyle");
button.Behaviors.Add(new EventToCommandBehavior { EventName = "Clicked", ... });
this.OperatorList.Children.Add(button);

// After: Frame tiles added to FlexLayout
Frame tile = new Frame();
tile.SetDynamicResource(StyleProperty, "SelectionTileFrame");
tile.AutomationId = modelOperator.OperatorName;
tile.Content = new VerticalStackLayout { Children = { icon, nameLabel } };
tile.GestureRecognizers.Add(tapGesture); // TapGestureRecognizer with command binding
this.OperatorList.Children.Add(tile);

Form Pages (PerformTopup, GetAccount, GetMeter, PayBill, PerformIssue)

  • Category-colored gradient header replaces TitleLabel
  • Form fields wrapped in TransactionFormCard (white card with shadow)

Success / Failed Pages (6 pages)

  • Gradient header + StatusCardFrame containing status icon + message
  • Image references corrected from .png.svg (matching actual assets)

AdminPage

  • Red gradient header; Reconciliation action rendered as HomeCardFrame tile

New Styles (LightTheme.xaml)

Key Purpose
SelectionTileFrame Fixed 150×110dp tile for operator/product selection
TransactionFormCard White rounded card for form fields
StatusCardFrame White rounded card for success/failure status
StatusMessageLabel Centered status message text
SectionTitleLabel Section heading label

All existing AutomationId values are preserved for UI test compatibility.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • f.feedz.io
    • Triggering command: /usr/bin/dotnet dotnet restore TransactionProcessor.Mobile.BusinessLogic.Tests/TransactionProcessor.Mobile.BusinessLogic.Tests.csproj --configfile Nuget.config (dns block)
    • Triggering command: /opt/hostedtoolcache/CodeQL/2.24.2/x64/codeql/csharp/tools/linux64/Semmle.Autobuild.CSharp /opt/hostedtoolcache/CodeQL/2.24.2/x64/codeql/csharp/tools/linux64/Semmle.Autobuild.CSharp (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Transaction Flow Screens Revamp</issue_title>
<issue_description>I would like the Transactions Screens to have a more modern tile based layout.

See the parent issue for additional guidance.</issue_description>

Comments on the Issue (you are @copilot in this section)


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Copilot AI and others added 2 commits March 5, 2026 20:12
- TransactionsPage: Replace simple buttons with 2×2 tile grid with gradient header
- SelectOperator pages (MobileTopup, BillPayment, Voucher): FlexLayout tile grid with gradient header
- SelectProduct pages (MobileTopup, BillPayment, Voucher): FlexLayout tile grid with gradient header
- Form pages (PerformTopup, GetAccount, GetMeter, PayBill, PerformIssue): Gradient header + card form
- Success/Failed pages (all 6): Gradient header + status card with SVG icons
- AdminPage: Gradient header + card tile for Reconciliation
- LightTheme.xaml: Add OperatorTileFrame, TransactionFormCard, StatusCardFrame, StatusMessageLabel, SectionTitleLabel styles

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
The style is used for both operator and product selection tiles,
so a more generic name is more appropriate.

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Copilot AI changed the title [WIP] Revamp transaction flow screens to modern tile layout Transaction Flow Screens: Modern Tile-Based Layout Revamp Mar 5, 2026
@StuartFerguson StuartFerguson marked this pull request as ready for review March 5, 2026 20:49
@StuartFerguson StuartFerguson merged commit 108f80c into main Mar 6, 2026
13 checks passed
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.

Transaction Flow Screens Revamp

2 participants