-
-
Notifications
You must be signed in to change notification settings - Fork 362
feat(CardUpload): add BeforeActionButtonTemplate parameter #7030
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR introduces a BeforeActionButtonTemplate parameter to the CardUpload component, updates its rendering logic to display this template before existing action buttons, and extends unit tests to cover the new feature. Class diagram for updated CardUpload componentclassDiagram
class CardUpload {
+RenderFragment<UploadFile>? IconTemplate
+RenderFragment<UploadFile>? BeforeActionButtonTemplate
+RenderFragment<UploadFile>? ActionButtonTemplate
}
CardUpload <|-- UploadFile
Flow diagram for CardUpload action button rendering logic updateflowchart TD
A["Check BeforeActionButtonTemplate"] -->|If not null| B["Render BeforeActionButtonTemplate(item)"]
B --> C["Check ShowZoomButton"]
C -->|If true| D["Render Zoom Button"]
D --> E["Check ShowCancelButton"]
C -->|If false| E
E -->|If true| F["Render Cancel Button"]
F --> G["Check ActionButtonTemplate"]
E -->|If false| G
G -->|If not null| H["Render ActionButtonTemplate(item)"]
H --> I["Check ShowDeleteButton"]
G -->|If null| I
I -->|If true| J["Render Delete Button"]
File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey there - I've reviewed your changes and they look great!
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location> `test/UnitTest/Components/UploadCardTest.cs:232` </location>
<code_context>
[
new() { FileName = "test.png" }
]);
+ pb.Add(a => a.BeforeActionButtonTemplate, file => pb =>
+ {
+ pb.AddMarkupContent(0, "<button class=\"before-action-button-test\"></button>");
</code_context>
<issue_to_address>
**suggestion (testing):** Consider adding tests for edge cases with BeforeActionButtonTemplate.
Please add tests for cases where BeforeActionButtonTemplate is null and when it renders more complex content to ensure all scenarios are covered.
</issue_to_address>
### Comment 2
<location> `test/UnitTest/Components/UploadCardTest.cs:242-243` </location>
<code_context>
});
});
+ cut.Contains("before-action-button-test");
cut.Contains("action-button-test");
}
</code_context>
<issue_to_address>
**suggestion (testing):** Use more specific assertions for rendered content.
Instead of 'cut.Contains', use assertions that verify the presence of the button by its class or tag to improve test reliability and reduce false positives.
```suggestion
// Assert that a button with the expected class exists
Assert.NotNull(cut.Find("button.before-action-button-test"));
Assert.NotNull(cut.Find("button.action-button-test"));
```
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7030 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 743 743
Lines 32458 32463 +5
Branches 4499 4500 +1
=========================================
+ Hits 32458 32463 +5
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a new BeforeActionButtonTemplate parameter to the CardUpload component, allowing users to render custom buttons before the existing action buttons (zoom, download, cancel). The existing ActionButtonTemplate is repositioned to render after these built-in buttons.
Key changes:
- Added new
BeforeActionButtonTemplateparameter to allow custom action buttons before built-in buttons - Moved existing
ActionButtonTemplateto render after built-in action buttons for better positioning - Added test coverage for both templates
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/BootstrapBlazor/Components/Upload/CardUpload.razor.cs | Added BeforeActionButtonTemplate parameter with documentation |
| src/BootstrapBlazor/Components/Upload/CardUpload.razor | Repositioned template rendering logic to place custom templates before and after built-in action buttons |
| test/UnitTest/Components/UploadCardTest.cs | Added test coverage for both BeforeActionButtonTemplate and ActionButtonTemplate |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @if (ActionButtonTemplate != null) | ||
| { | ||
| @ActionButtonTemplate(item) | ||
| } |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent indentation detected. Lines 57-60 use tabs instead of spaces, while the rest of the file uses spaces for indentation. Convert tabs to spaces to match the file's indentation style.
| @if (ActionButtonTemplate != null) | |
| { | |
| @ActionButtonTemplate(item) | |
| } | |
| @if (ActionButtonTemplate != null) | |
| { | |
| @ActionButtonTemplate(item) | |
| } |
| public RenderFragment<UploadFile>? IconTemplate { get; set; } | ||
|
|
||
| /// <summary> | ||
| /// 获得/设置 操作按钮模板 |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation comment for BeforeActionButtonTemplate is identical to ActionButtonTemplate (line 70). Update the comment to clarify that this template renders action buttons before the built-in buttons, e.g., '获得/设置 操作按钮前置模板' or '获得/设置 在内置操作按钮之前渲染的操作按钮模板'.
| /// 获得/设置 操作按钮模板 | |
| /// 获得/设置 在内置操作按钮之前渲染的操作按钮模板 |
Link issues
fixes #7029
Summary By Copilot
Regression?
Risk
Verification
Packaging changes reviewed?
☑️ Self Check before Merge
Summary by Sourcery
Support custom pre-action buttons in the CardUpload component by introducing BeforeActionButtonTemplate, adjusting its rendering order, and adding corresponding unit tests
New Features:
Enhancements:
Tests: