Skip to content

Conversation

@ArgoZhang
Copy link
Member

@ArgoZhang ArgoZhang commented May 30, 2025

Link issues

fixes #6116

Summary By Copilot

Regression?

  • Yes
  • No

Risk

  • High
  • Medium
  • Low

Verification

  • Manual (required)
  • Automated

Packaging changes reviewed?

  • Yes
  • No
  • N/A

☑️ Self Check before Merge

⚠️ Please check all items below before review. ⚠️

  • Doc is updated/provided or not needed
  • Demo is updated/provided or not needed
  • Merge the latest code from the main branch

Summary by Sourcery

Introduce a ShowErrorLoggerToast option to configure the display of error logger toasts, update the ShowToast parameter to be nullable and fallback to this new option, and adjust the root component and tests accordingly.

New Features:

  • Add ShowErrorLoggerToast property to BootstrapBlazorOptions for controlling error toast display

Enhancements:

  • Make ShowToast parameter nullable and default its value from the new ShowErrorLoggerToast option
  • Update BootstrapBlazorRoot component to use the new configuration fallback for error logger toasts

Tests:

  • Include ShowErrorLoggerToast in the BootstrapBlazorOptions unit test

@bb-auto bb-auto bot added the enhancement New feature or request label May 30, 2025
@bb-auto bb-auto bot added this to the 9.7.0 milestone May 30, 2025
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented May 30, 2025

Reviewer's Guide

This PR introduces a new ShowErrorLoggerToast option to BootstrapBlazorOptions and refactors the BootstrapBlazorRoot component to make its ShowToast parameter nullable and default to the new option, updating related private value resolution and tests accordingly.

Sequence Diagram for ShowToast Logic in BootstrapBlazorRoot

sequenceDiagram
    participant BBR as BootstrapBlazorRoot
    participant Opts as BootstrapBlazorOptions

    BBR->>BBR: Initialize / Resolve _showToast
    activate BBR
    BBR->>BBR: Read ShowToast parameter value
    alt ShowToast parameter has a value
        BBR->>BBR: _showToast = ShowToast parameter value
    else ShowToast parameter is null
        BBR->>Opts: Get Options.CurrentValue.ShowErrorLoggerToast
        activate Opts
        Opts-->>BBR: Return ShowErrorLoggerToast value
        deactivate Opts
        BBR->>BBR: _showToast = Options.ShowErrorLoggerToast value
    end
    BBR->>BBR: Use _showToast for ErrorLogger component's ShowToast input
    deactivate BBR
Loading

Class Diagram for BootstrapBlazorOptions and BootstrapBlazorRoot Changes

classDiagram
    class BootstrapBlazorOptions {
      +bool ShowErrorLoggerToast
    }
    class BootstrapBlazorRoot {
      +bool? ShowToast
      +bool? EnableErrorLogger
      -bool _showToast
      -bool _enableErrorLoggerValue
    }
    BootstrapBlazorRoot ..> BootstrapBlazorOptions : uses
Loading

File-Level Changes

Change Details Files
Add ShowErrorLoggerToast configuration option
  • Define new ShowErrorLoggerToast property on BootstrapBlazorOptions with default true and XML docs
  • Extend BootstrapBlazorOptions test to set and verify ShowErrorLoggerToast
src/BootstrapBlazor/Options/BootstrapBlazorOptions.cs
test/UnitTest/Options/BootstrapBlazorOptionsTest.cs
Refactor ShowToast parameter to use new option
  • Change ShowToast type from bool to bool? and remove default value
  • Update its XML summary to reference BootstrapBlazorOptions.ShowErrorLoggerToast
  • Add private computed field _showToast to resolve ShowToast or options value
  • Rename private EnableErrorLoggerValue to _enableErrorLoggerValue for consistency
src/BootstrapBlazor/Components/BaseComponents/BootstrapBlazorRoot.razor.cs
Wire up new computed fields in Razor markup
  • Replace EnableErrorLoggerValue and ShowToast bindings with _enableErrorLoggerValue and _showToast in the component
  • Ensure ErrorLogger uses the updated parameters
src/BootstrapBlazor/Components/BaseComponents/BootstrapBlazorRoot.razor

Assessment against linked issues

Issue Objective Addressed Explanation
#6116 Add a ShowErrorLoggerToast parameter to BootstrapBlazorOptions to control whether error logger toasts are displayed.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@ArgoZhang ArgoZhang requested a review from Copilot May 30, 2025 01:10
@ArgoZhang ArgoZhang merged commit c06050c into main May 30, 2025
3 checks passed
@ArgoZhang ArgoZhang deleted the feat-errorlogger-toast branch May 30, 2025 01:10
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a new configuration flag for showing error-toasts and updates the root component to support an optional per-component override.

  • Introduce ShowErrorLoggerToast in BootstrapBlazorOptions (default true)
  • Change BootstrapBlazorRoot.ShowToast to nullable and fall back to ShowErrorLoggerToast
  • Update tests to cover the new options flag

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
test/UnitTest/Options/BootstrapBlazorOptionsTest.cs Set ShowErrorLoggerToast in the options test
src/BootstrapBlazor/Options/BootstrapBlazorOptions.cs Add ShowErrorLoggerToast property with XML documentation
src/BootstrapBlazor/Components/BaseComponents/BootstrapBlazorRoot.razor.cs Make ShowToast nullable, rename internal logic for defaulting, and add _showToast / _enableErrorLoggerValue
src/BootstrapBlazor/Components/BaseComponents/BootstrapBlazorRoot.razor Bind the ErrorLogger component to the new private properties
Comments suppressed due to low confidence (3)

src/BootstrapBlazor/Components/BaseComponents/BootstrapBlazorRoot.razor.cs:68

  • [nitpick] Private computed properties should follow PascalCase and avoid underscore prefixes. Rename _enableErrorLoggerValue to EnableErrorLoggerValue or similar.
private bool _enableErrorLoggerValue => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger;

src/BootstrapBlazor/Components/BaseComponents/BootstrapBlazorRoot.razor.cs:70

  • [nitpick] Rename _showToast to ShowToastValue (PascalCase, no underscore) to match .NET naming conventions for properties.
private bool _showToast => ShowToast ?? Options.CurrentValue.ShowErrorLoggerToast;

src/BootstrapBlazor/Components/BaseComponents/BootstrapBlazorRoot.razor.cs:70

  • New fallback logic for ShowToast isn’t covered by existing tests. Add unit tests for when ShowToast is null (uses option) and when it’s explicitly set.
private bool _showToast => ShowToast ?? Options.CurrentValue.ShowErrorLoggerToast;

public bool EnableErrorLogger { get; set; } = true;

/// <summary>
/// Gets or sets whether to enable show toast popup when global exception capture, default is true
Copy link

Copilot AI May 30, 2025

Choose a reason for hiding this comment

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

The XML comment is awkwardly phrased. Consider: "Gets or sets whether a toast popup is shown when a global exception is captured; default is true."

Copilot uses AI. Check for mistakes.
@codecov
Copy link

codecov bot commented May 30, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (7065ff2) to head (4fcf618).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #6117   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          703       703           
  Lines        31022     31024    +2     
  Branches      4386      4387    +1     
=========================================
+ Hits         31022     31024    +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey @ArgoZhang - I've reviewed your changes and they look great!

Here's what I looked at during the review
  • 🟡 General issues: 2 issues found
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

public bool? EnableErrorLogger { get; set; }

private bool EnableErrorLoggerValue => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger;
private bool _enableErrorLoggerValue => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger;
Copy link
Contributor

Choose a reason for hiding this comment

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

suggestion: Private property naming deviates from conventions

Properties should use PascalCase without a leading underscore. Please rename to follow this convention.

Suggested implementation:

    private bool EnableErrorLoggerValue => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger;

    private bool ShowToastValue => ShowToast ?? Options.CurrentValue.ShowErrorLoggerToast;

If these properties are referenced elsewhere in the file, update all usages of _enableErrorLoggerValue to EnableErrorLoggerValue and _showToast to ShowToastValue.

private bool EnableErrorLoggerValue => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger;
private bool _enableErrorLoggerValue => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger;

private bool _showToast => ShowToast ?? Options.CurrentValue.ShowErrorLoggerToast;
Copy link
Contributor

Choose a reason for hiding this comment

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

suggestion: Rename private property for clarity and consistency

Consider renaming to EffectiveShowToast or ShowToastValue in PascalCase for better readability and consistency.

Suggested change
private bool _showToast => ShowToast ?? Options.CurrentValue.ShowErrorLoggerToast;
private bool ShowToastValue => ShowToast ?? Options.CurrentValue.ShowErrorLoggerToast;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(BootstrapBlazorOptions): add ShowErrorLoggerToast parameter

2 participants