Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,18 @@ private async Task OnStart()
{
if (!string.IsNullOrEmpty(InputText))
{
await SynthesizerService.SynthesizerOnceAsync(InputText, Synthesizer);
try
{
await SynthesizerService.SynthesizerOnceAsync(InputText, Synthesizer);
}
catch (Exception)
{
}
}
else
{
await SynthesizerService.CloseAsync(Synthesizer);
}
}
else
{
await SynthesizerService.CloseAsync(Synthesizer);
}
}

Expand Down
4 changes: 4 additions & 0 deletions src/BootstrapBlazor.Server/Components/Samples/Uploads.razor
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@

<Pre class="no-highlight">builder.Services.Configure&lt;HubOptions&gt;(option => option.MaximumReceiveMessageSize = null);</Pre>

<DemoBlock Title="@Localizer["DropUploadTitle"]" Introduction="@Localizer["DropUploadIntro"]" Name="DropUpload">
<DropUpload TValue="string"></DropUpload>
</DemoBlock>

<DemoBlock Title="@Localizer["UploadNormalTitle"]"
Introduction="@Localizer["UploadNormalIntro"]"
Name="Normal">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace BootstrapBlazor.Components;

/// <summary>
///
/// 头像上传组件
/// </summary>
public partial class AvatarUpload<TValue>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace BootstrapBlazor.Components;

/// <summary>
///
/// 按钮上传组件
/// </summary>
public partial class ButtonUpload<TValue>
{
Expand Down
39 changes: 39 additions & 0 deletions src/BootstrapBlazor/Components/Upload/DropUpload.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
@namespace BootstrapBlazor.Components
@typeparam TValue
@inherits SingleUploadBase<TValue>

@if (IsShowLabel)
{

Check warning on line 6 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L6

Added line #L6 was not covered by tests
<BootstrapLabel required="@Required" ShowLabelTooltip="ShowLabelTooltip" Value="@DisplayText"/>
}

Check warning on line 8 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L8

Added line #L8 was not covered by tests
<div @attributes="@AdditionalAttributes" class="@DropUploadClassString" id="@Id">
<div class="upload-drop-body">
@if (BodyTemplate != null)
{

Check warning on line 12 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L12

Added line #L12 was not covered by tests
@BodyTemplate
}

Check warning on line 14 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L14

Added line #L14 was not covered by tests
else
{

Check warning on line 16 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L16

Added line #L16 was not covered by tests
<div class="upload-drop-icon">
<i class="fa-solid fa-cloud-arrow-up"></i>
</div>
<div class="upload-drop-text">
Drop file here or <em>click to upload</em>
</div>
}

Check warning on line 23 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L23

Added line #L23 was not covered by tests
</div>
@if (ShowFooter)
{

Check warning on line 26 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L26

Added line #L26 was not covered by tests
<div class="upload-drop-footer">
@if (FooterTemplate != null)
{

Check warning on line 29 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L29

Added line #L29 was not covered by tests
@FooterTemplate
}

Check warning on line 31 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L31

Added line #L31 was not covered by tests
else
{

Check warning on line 33 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L33

Added line #L33 was not covered by tests
@FooterString
}

Check warning on line 35 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L35

Added line #L35 was not covered by tests
</div>
}

Check warning on line 37 in src/BootstrapBlazor/Components/Upload/DropUpload.razor

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor#L37

Added line #L37 was not covered by tests
<InputFile AdditionalAttributes="@GetUploadAdditionalAttributes()" OnChange="OnFileChange"/>
</div>
59 changes: 59 additions & 0 deletions src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone

namespace BootstrapBlazor.Components;

/// <summary>
/// DropUpload 组件
/// </summary>
public partial class DropUpload<TValue>
{
/// <summary>
/// 获得/设置 Body 模板 默认 null
/// </summary>
[Parameter]
public RenderFragment? BodyTemplate { get; set; }

Check warning on line 17 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L17

Added line #L17 was not covered by tests

/// <summary>
///获得/设置 图标模板 默认 null
/// </summary>
public RenderFragment? IconTemplate { get; set; }

Check warning on line 22 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L22

Added line #L22 was not covered by tests

/// <summary>
/// 获得/设置 文字模板 默认 null
/// </summary>
public RenderFragment? TextTemplate { get; set; }

Check warning on line 27 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L27

Added line #L27 was not covered by tests

/// <summary>
/// 获得/设置 是否显示 Footer 默认 false 不显示
/// </summary>
public bool ShowFooter { get; set; }

Check warning on line 32 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L32

Added line #L32 was not covered by tests

/// <summary>
/// 获得/设置 Footer 字符串信息 默认 null 未设置
/// </summary>
public RenderFragment? FooterTemplate { get; set; }

Check warning on line 37 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L37

Added line #L37 was not covered by tests

/// <summary>
///
/// </summary>
public string? FooterString { get; set; }

Check warning on line 42 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L42

Added line #L42 was not covered by tests

private string? DropUploadClassString => CssBuilder.Default(ClassString)
.AddClass("is-drop")
.AddClassFromAttributes(AdditionalAttributes)
.Build();

Check warning on line 47 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L44-L47

Added lines #L44 - L47 were not covered by tests

/// <summary>
/// <inheritdoc/>
/// </summary>
protected override void OnParametersSet()
{
base.OnParametersSet();

Check warning on line 54 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L53-L54

Added lines #L53 - L54 were not covered by tests

FooterString ??= "just a test footer string";
ShowFooter = true;
}

Check warning on line 58 in src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs#L57-L58

Added lines #L57 - L58 were not covered by tests
}
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Upload/InputUpload.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
namespace BootstrapBlazor.Components;

/// <summary>
///
/// InputUpload 组件
/// </summary>
public partial class InputUpload<TValue>
{
Expand Down
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Upload/SingleUploadBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace BootstrapBlazor.Components;

/// <summary>
///
/// SingleUploadBase 基类
/// </summary>
/// <typeparam name="TValue"></typeparam>
public abstract class SingleUploadBase<TValue> : MultipleUploadBase<TValue>
Expand Down
35 changes: 35 additions & 0 deletions src/BootstrapBlazor/Components/Upload/UploadBase.razor.scss
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
--bb-upload-card-padding: #{$bb-upload-card-padding};
--bb-upload-card-margin: #{$bb-upload-card-margin};
--bb-upload-card-item-width: #{$bb-upload-card-item-width};
--bb-upload-drop-height: #{$bb-upload-drop-height};
--bb-upload-drop-footer-font-size: #{$bb-upload-drop-footer-font-size};
--bb-upload-drop-footer-margin-top: #{$bb-upload-drop-footer-margin-top};
}

.upload .upload-body {
Expand Down Expand Up @@ -296,3 +299,35 @@
.btn-group .upload .upload-body {
display: none;
}

.upload.is-drop {
.upload-drop-body {
border: 2px dashed var(--bs-primary);
border-radius: var(--bs-border-radius);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: var(--bb-upload-drop-height);
cursor: pointer;

.upload-drop-icon > i {
font-size: 3em;
color: var(--bs-secondary);
}

.upload-drop-text {
margin-top: 1rem;
}

em {
color: var(--bs-primary);
font-style: normal;
}
}

.upload-drop-footer {
font-size: var(--bb-upload-drop-footer-font-size);
margin-top: var(--bb-upload-drop-footer-margin-top);
}
}
4 changes: 4 additions & 0 deletions src/BootstrapBlazor/wwwroot/modules/upload.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ export function init(id) {
inputFile.click()
})

EventHandler.on(el, 'click', '.upload-drop-body', () => {
inputFile.click()
})

EventHandler.on(document, "dragleave", preventHandler)
EventHandler.on(document, 'drop', preventHandler)
EventHandler.on(document, 'dragenter', preventHandler)
Expand Down
3 changes: 3 additions & 0 deletions src/BootstrapBlazor/wwwroot/scss/theme/bootstrapblazor.scss
Original file line number Diff line number Diff line change
Expand Up @@ -690,6 +690,9 @@ $bb-upload-card-shadow: 0 0 10px 0 rgba(0,0,0,.2);
$bb-upload-card-padding: 1rem;
$bb-upload-card-margin: 0 1rem 1rem 0;
$bb-upload-card-item-width: 168px;
$bb-upload-drop-height: 140px;
$bb-upload-drop-footer-font-size: 12px;
$bb-upload-drop-footer-margin-top: .25rem;

// ValidateForm
$bb-form-control-padding: 0.375rem 0.75rem;
Expand Down