CurrieTechnologies.Razor.SweetAlert2 0.2.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package CurrieTechnologies.Razor.SweetAlert2 --version 0.2.2
                    
NuGet\Install-Package CurrieTechnologies.Razor.SweetAlert2 -Version 0.2.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CurrieTechnologies.Razor.SweetAlert2" Version="0.2.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CurrieTechnologies.Razor.SweetAlert2" Version="0.2.2" />
                    
Directory.Packages.props
<PackageReference Include="CurrieTechnologies.Razor.SweetAlert2" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CurrieTechnologies.Razor.SweetAlert2 --version 0.2.2
                    
#r "nuget: CurrieTechnologies.Razor.SweetAlert2, 0.2.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=CurrieTechnologies.Razor.SweetAlert2&version=0.2.2
                    
Install as a Cake Addin
#tool nuget:?package=CurrieTechnologies.Razor.SweetAlert2&version=0.2.2
                    
Install as a Cake Tool

Build Status Nuget

This package is for Server-side Blazor only. For Client-side Blazor use CurrieTechnologies.Blazor.SweetAlert2

🙌 Includes themes from the Official SweetAlert2 Themes project 🙌

Installation

Install-Package CurrieTechnologies.Razor.SweetAlert2

Or grab from Nuget

Usage

Register the service in your Startup file.

// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
	services.AddSweetAlert2();
...
}

OR

If you want to use one of the Official SweetAlert2 themes

// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
	services.AddSweetAlert2(options => {
		options.Theme = SweetAlertTheme.Dark;
	});
...
}

Add this script tag in your root html file (Likely _Host.cshtml), right under the <script src="_framework/blazor.server.js"></script> tag.

<script src="_content/currietechnologiesrazorsweetalert2/sweetalert2.min.js"></script>

Inject the SweetAlertService into any Blazor component

// Sample.razor
@inject SweetAlertService Swal;
<button class="btn btn-primary"
		@onclick="@(async () => await Swal.FireAsync("Any fool can use a computer"))">
	Try me!
</button>

Examples

The most basic message:

await Swal.FireAsync("Hello world!");

A message signaling an error:

await Swal.FireAsync("Oops...", "Something went wrong!", "error");

Handling the result of SweetAlert2 modal:

// async/await
SweetAlertResult result = await Swal.FireAsync(new SweetAlertOptions
	{
		Title = "Are you sure?",
		Text = "You will not be able to recover this imaginary file!",
		Type = SweetAlertType.Warning,
		ShowCancelButton = true,
		ConfirmButtonText = "Yes, delete it!",
		CancelButtonText = "No, keep it"
	});

if (!string.IsNullOrEmpty(result.Value))
{
	await Swal.FireAsync(
		"Deleted",
		"Your imaginary file has been deleted.",
		SweetAlertType.Success
		);
}
else if (result.Dismiss == DismissReason.Cancel)
{
	await Swal.FireAsync(
		"Cancelled",
		"Your imaginary file is safe :)",
		SweetAlertType.Error
		);
}

// Promise/Task based
Swal.FireAsync(new SweetAlertOptions
	{
		Title = "Are you sure?",
		Text = "You will not be able to recover this imaginary file!",
		Type = SweetAlertType.Warning,
		ShowCancelButton = true,
		ConfirmButtonText = "Yes, delete it!",
		CancelButtonText = "No, keep it"
	}).ContinueWith(swalTask => 
	{
		SweetAlertResult result = swalTask.Result;
		if (!string.IsNullOrEmpty(result.Value))
		{
			Swal.FireAsync(
				"Deleted",
				"Your imaginary file has been deleted.",
				SweetAlertType.Success
				);
		}
		else if (result.Dismiss == DismissReason.Cancel)
		{
			Swal.FireAsync(
				"Cancelled",
				"Your imaginary file is safe :)",
				SweetAlertType.Error
				);
		}
	});


More examples can be found on the SweetAlert2 project site

Notable differences from the JavaScript library

  • No methods that return an HTMLElement are included (e. g. Swal.getContainer())
  • The value of a SweetAlertResult (result.Value) can only be a string (or a collection of strings if returned from a queue request). Numbers and booleans must be converted. Object must be parsed to/from JSON in your code.
  • OnOpenAsync(), OnCloseAsync(), OnBeforeOpenAsync(), and OnAfterCloseAsync() can all take asynchronous callbacks. 🎉 (none will return an HTMLElement though.)
  • Callbacks must be passed inside of objects specifically designed for the given callback property. e.g. the InputValidator property takes an InputValidatorCallback created like so:
new SweetAlertOptions {
	...
	InputValidator = new InputValidatorCallback((string input) => input.Length == 0 ? "Please provide a value" : null, this),
	...
}

this is passed in so that the Blazor EventCallback used behind the scenes can trigger a re-render if the state of the calling component was changed in the callback. If the callback does not require the calling component to re-render, passing in this is optional. These callbacks are necessary because there is currently no way to create an EventCallback in Blazor that isn't a component parameter without using the EventCallbackFactory which is clunky. It also allows the callback to return a value that can be used by the SweetAlert2 library. (e.g. A validation message to show if input validation fails.) Native Blazor EventCallbacks only return generic Tasks.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 is compatible.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 3.0

    • No dependencies.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on CurrieTechnologies.Razor.SweetAlert2:

Package Downloads
OneLine.Blazor

OneLine.Blazor is a set of components and utilities to be used in blazor context.

Tuic

Web front-end components package for use in Blazor WASM. The components utilize Bootstrap 5.0 and based on Tabler.

TucComponents

Web front-end components package for use in Blazor WASM. The components utilize Bootstrap 5.0.

Zoy.Core.App.Web

Package Description

MoonlightPluginBase

Use this package to install all dependencies a moonlight plugins needs

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
5.6.0 119,699 3/19/2024
5.5.0 90,831 3/29/2023
5.4.0 28,455 12/14/2022
5.3.0 10,265 10/11/2022
5.2.1 53,177 4/13/2022
5.2.0 10,547 3/16/2022
5.1.0 69,625 11/8/2021
5.0.3 8,254 10/6/2021
5.0.2 2,915 9/10/2021
5.0.1 8,458 6/23/2021
5.0.0 4,175 6/16/2021
5.0.0-preview.1 220 6/16/2021
4.5.0 8,244 5/7/2021
4.4.0 4,439 4/7/2021
4.3.1 23,337 11/20/2020
4.3.0 8,478 11/5/2020
4.2.0 9,765 11/2/2020
4.1.0 2,101 10/22/2020
4.0.0 5,973 10/14/2020
3.0.0 2,935 9/17/2020
2.10.1 6,080 8/10/2020
2.10.0 5,700 7/14/2020
2.9.1 1,949 7/14/2020
2.9.0 2,766 6/26/2020
2.8.2 2,633 6/16/2020
2.8.1 3,094 6/8/2020
2.8.0 2,063 6/5/2020
2.7.0 4,428 5/21/2020
2.6.7 2,233 5/13/2020
2.6.6 30,854 4/20/2020
2.6.5 3,693 4/6/2020
2.6.4 2,256 4/1/2020
2.6.3 2,104 3/25/2020
2.6.2 2,076 3/23/2020
2.6.1 2,009 3/19/2020
2.6.0 3,652 3/9/2020
2.5.4 2,613 2/24/2020
2.5.3 2,077 2/19/2020
2.5.2 2,563 2/7/2020
2.5.1 2,192 1/30/2020
2.5.0 2,088 1/22/2020
2.4.1 2,088 1/21/2020
2.4.0 2,139 1/15/2020
2.3.2 2,063 1/15/2020
2.3.1 2,074 12/31/2019
2.3.0 4,672 12/12/2019
2.2.2 2,059 12/10/2019
2.2.1 2,249 12/6/2019
2.2.0 2,166 12/3/2019
2.1.14 1,975 12/3/2019
2.1.13 2,069 12/3/2019
2.1.12 2,024 12/2/2019
2.1.11 2,081 11/25/2019
2.1.10 1,950 11/21/2019
2.1.9 1,988 11/19/2019
2.1.8 2,006 11/19/2019
2.1.7 1,991 11/18/2019
2.1.6 1,967 11/15/2019
2.1.5 2,008 11/15/2019
2.1.4 1,925 11/15/2019
2.1.3 1,997 11/14/2019
2.1.2 1,992 11/13/2019
2.1.1 2,284 11/12/2019
2.1.0 2,027 11/11/2019
2.0.2 2,074 11/8/2019
2.0.1 2,033 11/6/2019
2.0.0 2,127 11/5/2019
1.2.4 2,110 11/4/2019
1.2.3 2,049 11/1/2019
1.2.2 2,041 10/23/2019
1.2.1 2,064 10/18/2019
1.2.0 2,040 10/17/2019
1.1.1 2,037 10/16/2019
1.1.0 2,062 10/11/2019
1.0.4 2,008 10/10/2019
1.0.3 1,946 10/9/2019
1.0.2 2,027 10/7/2019
1.0.1 2,087 9/30/2019
1.0.0 2,073 9/23/2019
0.10.2 414 9/19/2019
0.10.1 434 9/17/2019
0.10.0 399 9/16/2019
0.9.1 389 9/16/2019
0.9.0 411 9/4/2019
0.8.5 394 9/4/2019
0.8.0 392 9/3/2019
0.7.1 420 8/22/2019
0.7.0 416 8/19/2019
0.6.1 403 8/16/2019
0.6.0 398 8/13/2019
0.5.0 396 8/12/2019
0.4.5 414 8/9/2019
0.4.4 413 8/5/2019
0.4.3 411 8/2/2019
0.4.2 410 8/2/2019
0.4.1 406 7/29/2019
0.4.0 416 7/23/2019
0.3.1 2,041 7/18/2019
0.3.0 2,104 7/18/2019
0.2.9 2,100 7/17/2019
0.2.2 2,008 7/15/2019
0.2.1 2,113 7/9/2019
0.2.0 2,082 6/17/2019
0.1.3 2,132 6/14/2019
0.1.2 2,067 6/14/2019
0.1.0 2,181 6/14/2019

- Update to SweetAlert2 v8.13.5

- Upgrade lodash dependency to patch Prototype Pollution vulnerability