Skip to content

fix(Upload): IsDisabled not work#7556

Merged
ArgoZhang merged 7 commits into
mainfrom
upload-disabled
Jan 22, 2026
Merged

fix(Upload): IsDisabled not work#7556
ArgoZhang merged 7 commits into
mainfrom
upload-disabled

Conversation

@Tony-ST0754

@Tony-ST0754 Tony-ST0754 commented Jan 21, 2026

Copy link
Copy Markdown
Collaborator

修改上传组件IsDisabled为true时,还能选择文件的问题

Link issues

fixes #7555

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 the upload file chooser does not open when the upload button is marked as disabled.

修改上传组件IsDisabled为true时,还能选择文件的问题
@bb-auto

bb-auto Bot commented Jan 21, 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.

@bb-auto bb-auto Bot requested a review from ArgoZhang January 21, 2026 09:45
@sourcery-ai

sourcery-ai Bot commented Jan 21, 2026

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

Reviewer's Guide

This PR fixes the upload component so that when it is disabled (IsDisabled = true), clicking the browse button no longer opens the file selector by adding a guard in the click handler for the browser button in the JavaScript module.

Sequence diagram for upload button click handling with disabled check

sequenceDiagram
  actor User
  participant UploadComponent as UploadComponent_el
  participant BtnBrowser as Button_btn_browser
  participant UploadModule as upload_js_module
  participant InputFile as inputFile

  User->>BtnBrowser: click
  BtnBrowser->>UploadModule: click event
  UploadModule->>UploadComponent: querySelector btn-browser
  alt Button has class disabled
    UploadModule-->>BtnBrowser: return without action
  else Button is enabled
    UploadModule->>InputFile: click
    InputFile-->>User: open file selector
  end
Loading

File-Level Changes

Change Details Files
Guard the upload browse button click handler to no-op when the button is disabled so the file dialog cannot be opened while the component is disabled.
  • Retrieve the .btn-browser element from the upload component container within the click handler
  • Check whether the browse button has the 'disabled' CSS class before triggering the file input click
  • Return early from the click handler when the button is disabled to prevent opening the file chooser
src/BootstrapBlazor/wwwroot/modules/upload.js

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

@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:

  • In the click handler, instead of querying el.querySelector('.btn-browser') each time, cache the button element once during init and reuse it for both the disabled check and binding.
  • Relying solely on the disabled CSS class to block interaction may be brittle; consider checking the actual disabled attribute/state on the button or a single source of truth flag on el so the JavaScript behavior cannot drift from the visual state.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In the click handler, instead of querying `el.querySelector('.btn-browser')` each time, cache the button element once during `init` and reuse it for both the disabled check and binding.
- Relying solely on the `disabled` CSS class to block interaction may be brittle; consider checking the actual `disabled` attribute/state on the button or a single source of truth flag on `el` so the JavaScript behavior cannot drift from the visual state.

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 Jan 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (c14b931) to head (5a7a8b8).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #7556   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          748       748           
  Lines        33000     33004    +4     
  Branches      4588      4589    +1     
=========================================
+ Hits         33000     33004    +4     
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 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Tony-ST0754 Tony-ST0754 changed the title 修改正传组件IsDisabled为true时,还能选择文件的问题 #7555 修正传组件IsDisabled为true时,还能选择文件的问题 #7555 Jan 21, 2026
@Tony-ST0754 Tony-ST0754 changed the title 修正传组件IsDisabled为true时,还能选择文件的问题 #7555 修正上传组件IsDisabled为true时,还能选择文件的问题 #7555 Jan 21, 2026
Tony-ST0754 and others added 3 commits January 21, 2026 21:45
UploadBase基类两个已弃用的参数注释中加以说明,以备文档自动化能读取
@ArgoZhang ArgoZhang changed the title 修正上传组件IsDisabled为true时,还能选择文件的问题 #7555 fix(Upload): IsDisabled not work Jan 22, 2026
@bb-auto bb-auto Bot added the enhancement New feature or request label Jan 22, 2026
@bb-auto bb-auto Bot added this to the v10.2.0 milestone Jan 22, 2026
@ArgoZhang ArgoZhang merged commit c237053 into main Jan 22, 2026
4 checks passed
@ArgoZhang ArgoZhang deleted the upload-disabled branch January 22, 2026 02:03
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.

bug(UploadFile): 设置 IsDisabled 为 true 时组件未禁用

2 participants