Add phone number support for receivers in UI
Added functionality to display a receiver's phone number in the sender-receiver chip if provided. Introduced a new input field in the receiver popup for entering an optional phone number. Updated the `ReceiverDraft` model and `_receivers` list to include and store phone numbers. Modified methods to handle phone number input and saving. Added CSS styles for displaying the phone number in the sender-receiver chip.
This commit is contained in:
@@ -74,6 +74,10 @@
|
|||||||
<div class="sender-receiver-chip__body">
|
<div class="sender-receiver-chip__body">
|
||||||
<div class="sender-receiver-chip__name">@receiver.FullName</div>
|
<div class="sender-receiver-chip__name">@receiver.FullName</div>
|
||||||
<div class="sender-receiver-chip__email">@receiver.Email</div>
|
<div class="sender-receiver-chip__email">@receiver.Email</div>
|
||||||
|
@if (!string.IsNullOrWhiteSpace(receiver.PhoneNumber))
|
||||||
|
{
|
||||||
|
<div class="sender-receiver-chip__phone">@receiver.PhoneNumber</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="pdf-toolbar__btn pdf-toolbar__btn--signature-change sender-toolbar-action-btn sender-toolbar-action-btn--compact"
|
<button class="pdf-toolbar__btn pdf-toolbar__btn--signature-change sender-toolbar-action-btn sender-toolbar-action-btn--compact"
|
||||||
@@ -279,6 +283,16 @@
|
|||||||
CssClass="w-100" />
|
CssClass="w-100" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="sender-receiver-popup__field">
|
||||||
|
<div class="sender-receiver-popup__label">Telefonnummer (optional)</div>
|
||||||
|
<DxTextBox Text="@_receiverDraftPhoneNumber"
|
||||||
|
TextChanged="OnReceiverPhoneNumberChanged"
|
||||||
|
NullText="+49 170 1234567"
|
||||||
|
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto"
|
||||||
|
BindValueMode="BindValueMode.OnInput"
|
||||||
|
CssClass="w-100" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="sender-receiver-popup__field">
|
<div class="sender-receiver-popup__field">
|
||||||
<div class="sender-receiver-popup__label">E-Mail-Adresse</div>
|
<div class="sender-receiver-popup__label">E-Mail-Adresse</div>
|
||||||
<div @onkeydown="OnReceiverEmailKeyDownAsync">
|
<div @onkeydown="OnReceiverEmailKeyDownAsync">
|
||||||
@@ -357,6 +371,7 @@
|
|||||||
bool _receiverPopupVisible;
|
bool _receiverPopupVisible;
|
||||||
string _receiverDraftName = string.Empty;
|
string _receiverDraftName = string.Empty;
|
||||||
string _receiverDraftEmail = string.Empty;
|
string _receiverDraftEmail = string.Empty;
|
||||||
|
string _receiverDraftPhoneNumber = string.Empty;
|
||||||
string? _selectedReceiverEmailSuggestion;
|
string? _selectedReceiverEmailSuggestion;
|
||||||
string? _receiverPopupValidationMessage;
|
string? _receiverPopupValidationMessage;
|
||||||
bool _isReceiverEmailSearchRunning;
|
bool _isReceiverEmailSearchRunning;
|
||||||
@@ -476,6 +491,7 @@
|
|||||||
{
|
{
|
||||||
_receiverDraftName = string.Empty;
|
_receiverDraftName = string.Empty;
|
||||||
_receiverDraftEmail = string.Empty;
|
_receiverDraftEmail = string.Empty;
|
||||||
|
_receiverDraftPhoneNumber = string.Empty;
|
||||||
_selectedReceiverEmailSuggestion = null;
|
_selectedReceiverEmailSuggestion = null;
|
||||||
_receiverPopupValidationMessage = null;
|
_receiverPopupValidationMessage = null;
|
||||||
_receiverEmailSuggestions.Clear();
|
_receiverEmailSuggestions.Clear();
|
||||||
@@ -496,6 +512,12 @@
|
|||||||
_receiverPopupValidationMessage = null;
|
_receiverPopupValidationMessage = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnReceiverPhoneNumberChanged(string? value)
|
||||||
|
{
|
||||||
|
_receiverDraftPhoneNumber = value ?? string.Empty;
|
||||||
|
_receiverPopupValidationMessage = null;
|
||||||
|
}
|
||||||
|
|
||||||
async Task OnReceiverEmailKeyDownAsync(KeyboardEventArgs e)
|
async Task OnReceiverEmailKeyDownAsync(KeyboardEventArgs e)
|
||||||
{
|
{
|
||||||
if (_receiverEmailSuggestions.Count == 0)
|
if (_receiverEmailSuggestions.Count == 0)
|
||||||
@@ -605,6 +627,7 @@
|
|||||||
{
|
{
|
||||||
var fullName = _receiverDraftName.Trim();
|
var fullName = _receiverDraftName.Trim();
|
||||||
var email = _receiverDraftEmail.Trim();
|
var email = _receiverDraftEmail.Trim();
|
||||||
|
var phoneNumber = _receiverDraftPhoneNumber.Trim();
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(fullName))
|
if (string.IsNullOrWhiteSpace(fullName))
|
||||||
{
|
{
|
||||||
@@ -630,7 +653,7 @@
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
_receivers.Add(new ReceiverDraft(Guid.NewGuid(), fullName, email));
|
_receivers.Add(new ReceiverDraft(Guid.NewGuid(), fullName, email, phoneNumber));
|
||||||
CloseAddReceiverPopup();
|
CloseAddReceiverPopup();
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@@ -656,5 +679,5 @@
|
|||||||
|
|
||||||
record OverlayCoords(double RelX, double RelY, double ContainerW, double ContainerH);
|
record OverlayCoords(double RelX, double RelY, double ContainerW, double ContainerH);
|
||||||
|
|
||||||
record ReceiverDraft(Guid Id, string FullName, string Email);
|
record ReceiverDraft(Guid Id, string FullName, string Email, string PhoneNumber);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -735,6 +735,15 @@ body.resizing {
|
|||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sender-receiver-chip__phone {
|
||||||
|
margin-top: 0.15rem;
|
||||||
|
font-size: 0.72rem;
|
||||||
|
color: #64748b;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
.sender-receiver-popup .dxbl-modal {
|
.sender-receiver-popup .dxbl-modal {
|
||||||
border-radius: 18px;
|
border-radius: 18px;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user