Skip to content

fix(CardUpload):修正CardUpload、AvatarUpload这两个组件表单验证时提示信息不能正确移除的Bug - #8330

Open
Tony-ST0754 wants to merge 11 commits into
mainfrom
fix-CardUpload-Tooltip-remove
Open

fix(CardUpload):修正CardUpload、AvatarUpload这两个组件表单验证时提示信息不能正确移除的Bug#8330
Tony-ST0754 wants to merge 11 commits into
mainfrom
fix-CardUpload-Tooltip-remove

Conversation

@Tony-ST0754

@Tony-ST0754 Tony-ST0754 commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

fix:修正CardUpload、AvatarUpload这两个组件表单验证时,这两个组件上已正确上传文件,提示信息不能正确移除的Bug

Link issues

fixes #8329

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

Bug Fixes:

  • Ensure validation tooltips are properly disposed when uploaded files make CardUpload and AvatarUpload validation errors obsolete.

fix:修正CardUpload、AvatarUpload这两个组件表单验证时,这两个组件上已正确上传文件,提示信息不能正确移除的Bug
@bb-auto

bb-auto Bot commented Aug 15, 2026

Copy link
Copy Markdown

Thanks for your PR, @Tony-ST0754. Someone from the team will get assigned to your PR shortly and we'll get it reviewed.

@sourcery-ai

sourcery-ai Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Adjusts CardUpload and AvatarUpload add-button rendering so that validation messages are correctly cleared when files are uploaded, by always rendering the add-button fragment and controlling visibility via the ShowAddButton flag.

Flow diagram for updated CardUpload and AvatarUpload add button rendering

flowchart TD
    A[Start render component] --> B{IsUploadButtonAtFirst}
    B -->|true| C[Render RenderAdd at first position]
    B -->|false| D[Render RenderAdd at last position]
    C --> E{ShowAddButton}
    D --> E
    E -->|true| F[Render add button with hidden=false]
    E -->|false| G[Render add button with hidden=true]
    F --> H[Validation passes and message cleared]
    G --> H
Loading

File-Level Changes

Change Details Files
Refactor CardUpload add-button rendering to always instantiate the RenderAdd fragment and control its visibility via the ShowAddButton flag instead of gating it with conditional blocks.
  • Removed ShowAddButton() checks from the IsUploadButtonAtFirst and !IsUploadButtonAtFirst conditional blocks, so the add button render fragment is always invoked when position conditions are met.
  • Updated the RenderAdd fragment container div to bind a hidden attribute driven by the inverse of ShowAddButton(), ensuring the button is visually toggled without affecting layout or validation logic.
src/BootstrapBlazor/Components/Upload/CardUpload.razor
Align AvatarUpload add-button rendering behavior with CardUpload by always rendering the add-button fragment and using the ShowAddButton flag to toggle its visibility via the hidden attribute.
  • Removed ShowAddButton() checks from the IsUploadButtonAtFirst and !IsUploadButtonAtFirst conditional blocks, making the add button fragment consistently rendered based on position only.
  • Added a hidden attribute to the add button container div that is set according to the inverse of ShowAddButton(), keeping DOM structure stable while hiding the button when not needed.
src/BootstrapBlazor/Components/Upload/AvatarUpload.razor

Assessment against linked issues

Issue Objective Addressed Explanation
#8329 Fix the bug where CardUpload and AvatarUpload components do not correctly remove validation/error messages after the user successfully uploads a file.

Possibly linked issues


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

@bb-auto
bb-auto Bot requested a review from ArgoZhang August 15, 2026 05:40
@bb-auto bb-auto Bot added the bug Something isn't working label Aug 15, 2026
@bb-auto bb-auto Bot added this to the v10.9.0 milestone Aug 15, 2026

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've left some high level feedback:

  • Since both CardUpload and AvatarUpload now share the same pattern for always rendering the add button and toggling visibility via hidden, consider extracting this into a shared helper/component to avoid divergence and ease future maintenance.
  • Using the hidden attribute changes both visual and accessibility behavior; if the intent is only to hide the button visually, consider using a CSS class instead (e.g., class="... @(ShowAddButton() ? "" : "d-none")") so you can more easily control layout and accessibility semantics.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Since both CardUpload and AvatarUpload now share the same pattern for always rendering the add button and toggling visibility via `hidden`, consider extracting this into a shared helper/component to avoid divergence and ease future maintenance.
- Using the `hidden` attribute changes both visual and accessibility behavior; if the intent is only to hide the button visually, consider using a CSS class instead (e.g., `class="... @(ShowAddButton() ? "" : "d-none")"`) so you can more easily control layout and accessibility semantics.

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.

@codecov

codecov Bot commented Aug 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (06ad5c0) to head (82ac8da).

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #8330   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          771       771           
  Lines        34546     34544    -2     
=========================================
- Hits         34546     34544    -2     
Flag Coverage Δ
BB 100.00% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(CardUpload): 修正CardUpload、AvatarUpload这两个组件表单验证时提示信息不能正确移除的Bug

2 participants