Files
.circleci
.github
.run
.vscode
BTCPayServer
Components
AppSales
AppTopItems
Icon
LabelManager
MainLogo
MainNav
Notifications
Pager
QRCode
StoreLightningBalance
StoreLightningServices
StoreNumbers
StoreRecentInvoices
StoreRecentTransactions
StoreSelector
StoreWalletBalance
ThemeSwitch
TruncateCenter
Default.cshtml
TruncateCenter.cs
TruncateCenterViewModel.cs
UiExtensionPoint
WalletNav
Configuration
Controllers
Data
Events
Extensions
Fido2
Filters
Forms
HostedServices
Hosting
JsonConverters
Logging
ModelBinders
Models
PaymentRequest
Payments
PayoutProcessors
Plugins
Properties
SSH
Security
Services
Storage
TagHelpers
Validation
Views
wwwroot
BTCPayServer.csproj
BTCPayServer.ruleset
BitpayHttpException.cs
BufferizedFormFile.cs
ColorPalette.cs
CorsPolicies.cs
CurrencyValue.cs
DerivationSchemeParser.cs
DerivationSchemeSettings.cs
EventAggregator.cs
ExplorerClientProvider.cs
Extensions.cs
FileTypeDetector.cs
GitCommitAttribute.cs
HwiWebSocketTransport.cs
IDelay.cs
IHasAdditionalData.cs
JsonHttpException.cs
Program.cs
Roles.cs
SearchString.cs
StorePolicies.cs
TransactionComparer.cs
UserManagerExtensions.cs
WalletId.cs
WebSocketHelper.cs
WebsocketExtensions.cs
ZoneLimits.cs
_ViewImports.cshtml
BTCPayServer.Abstractions
BTCPayServer.Client
BTCPayServer.Common
BTCPayServer.Data
BTCPayServer.PluginPacker
BTCPayServer.Rating
BTCPayServer.Tests
Build
Plugins
docs
.dockerignore
.editorconfig
.gitattributes
.gitignore
Changelog.md
LICENSE
README.md
RELEASE-CHECKLIST.md
SECURITY.md
amd64.Dockerfile
arm32v7.Dockerfile
arm64v8.Dockerfile
btcpayserver.sln
build.ps1
build.sh
docker-entrypoint.sh
nuget.config
publish-docker.ps1
run.ps1
run.sh
btcpayserver/BTCPayServer/Components/TruncateCenter/TruncateCenter.cs
d11n de9ac9fd43 Receipt: Add payment proof ()
* Receipt: Add payment proof

Closes .

* shice

* Add truncate-center component

* Improve view

* Hide button and link when printed

* Describe component

* Remove transaction ID from UI

* Remove modification to interface

---------

Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2023-03-27 14:07:12 +09:00

30 lines
1.1 KiB
C#

using Microsoft.AspNetCore.Mvc;
namespace BTCPayServer.Components.TruncateCenter;
/// <summary>
/// Truncates long strings in the center with ellipsis: Turns e.g. a BOLT11 into "lnbcrt7…q2ns60y"
/// </summary>
/// <param name="text">The full text, e.g. a Bitcoin address or BOLT11</param>
/// <param name="link">Optional link, e.g. a block explorer URL</param>
/// <param name="classes">Optional additional CSS classes</param>
/// <param name="padding">The number of characters to show on each side</param>
/// <param name="copy">Display a copy button</param>
/// <returns>HTML with truncated string</returns>
public class TruncateCenter : ViewComponent
{
public IViewComponentResult Invoke(string text, string link = null, string classes = null, int padding = 7, bool copy = true)
{
var vm = new TruncateCenterViewModel
{
Classes = classes,
Padding = padding,
Copy = copy,
Text = text,
Link = link,
Truncated = text.Length > 2 * padding ? $"{text[..padding]}…{text[^padding..]}" : text
};
return View(vm);
}
}