Files
TaskHybrid/salesbook.Shared/Components/SingleElements/Card/AttachCard.razor
2025-12-30 17:40:08 +01:00

58 lines
2.0 KiB
Plaintext

@using salesbook.Shared.Components.Layout.Spinner
@using salesbook.Shared.Core.Dto
@using salesbook.Shared.Core.Interface
@using salesbook.Shared.Core.Interface.IntegryApi
@inject IIntegryApiService IntegryApiService
@inject IAttachedService AttachedService
<div @onclick="OpenAttached" class="activity-card">
<div class="activity-left-section">
<div class="activity-body-section">
<div class="title-section">
<MudText Class="activity-title" Typo="Typo.body1" HtmlTag="h3">
@(Attached.Description.IsNullOrEmpty() ? Attached.FileName : Attached.Description)
</MudText>
<div class="activity-hours-section">
<span class="activity-hours">@($"{Attached.DateAttached:g}")</span>
</div>
</div>
</div>
</div>
<div class="activity-info-section">
@if (Attached.IsActivity)
{
<MudChip T="string" Color="Color.Primary" Variant="Variant.Outlined" Icon="@IconConstants.Chip.Tag" Size="Size.Small">
@Attached.RefAttached
</MudChip>
}
else
{
<MudChip T="string" Color="Color.Warning" Variant="Variant.Outlined" Icon="@IconConstants.Chip.FileTextLine" Size="Size.Small">
@Attached.RefAttached
</MudChip>
}
</div>
</div>
<OverlayLayout Visible="VisibleOverlay" />
@code {
[Parameter] public CRMAttachedResponseDTO Attached { get; set; } = new();
private bool VisibleOverlay { get; set; }
private async Task OpenAttached()
{
VisibleOverlay = true;
StateHasChanged();
await using var file = await IntegryApiService.DownloadFileFromRefUuid(Attached.RefUuid, Attached.FileName);
var path = await AttachedService.SaveToTempStorage(file, Attached.FileName);
VisibleOverlay = false;
StateHasChanged();
await AttachedService.OpenFile(Attached.FileName, path);
}
}