Skip to content

Commit 82e9e86

Browse files
authored
PasswordField DisablePaste (#329)
1 parent 9e625f4 commit 82e9e86

File tree

5 files changed

+72
-28
lines changed

5 files changed

+72
-28
lines changed

CodeBeam.MudBlazor.Extensions/Base/MudBaseInputExtended.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,10 @@ protected virtual async Task InvokeKeyDown(KeyboardEventArgs obj)
322322
[Category(CategoryTypes.FormComponent.Behavior)]
323323
public bool KeyDownPreventDefault { get; set; }
324324

325+
[Parameter]
326+
[Category(CategoryTypes.FormComponent.Behavior)]
327+
public bool DisablePaste { get; set; }
328+
325329

326330
/// <summary>
327331
/// Fired on the KeyPress event.

CodeBeam.MudBlazor.Extensions/Components/InputExtended/MudInputExtended.razor

Lines changed: 56 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -56,30 +56,62 @@
5656
}
5757

5858
<div class="mud-input" style="flex-basis: 20px; flex-grow: 1">
59-
<input class="@InputClassname"
60-
@ref="ElementReference"
61-
@attributes="UserAttributes"
62-
type="@InputTypeString"
63-
value="@_internalText"
64-
@oninput="OnInputHandler"
65-
@onchange="OnChangeHandler"
66-
placeholder="@Placeholder"
67-
disabled=@Disabled
68-
readonly="@ReadOnly"
69-
@onblur="@OnBlurredAsync"
70-
inputmode="@InputMode.ToString()"
71-
pattern="@Pattern"
72-
@onkeydown="@InvokeKeyDown"
73-
@onkeypress="@InvokeKeyPress"
74-
@onkeyup="@InvokeKeyUp"
75-
maxlength="@MaxLength"
76-
@onkeydown:preventDefault="KeyDownPreventDefault"
77-
@onkeypress:preventDefault="@KeyPressPreventDefault"
78-
@onkeyup:preventDefault="@KeyUpPreventDefault"
79-
@onmousewheel="@OnMouseWheel"
80-
@onwheel="@OnMouseWheel"
81-
aria-invalid="@Error.ToString().ToLower()"
82-
aria-describedby="@ErrorId" />
59+
@if (DisablePaste)
60+
{
61+
<input class="@InputClassname"
62+
@ref="ElementReference"
63+
@attributes="UserAttributes"
64+
type="@InputTypeString"
65+
value="@_internalText"
66+
@oninput="OnInputHandler"
67+
@onchange="OnChangeHandler"
68+
placeholder="@Placeholder"
69+
disabled=@Disabled
70+
readonly="@ReadOnly"
71+
@onblur="@OnBlurredAsync"
72+
inputmode="@InputMode.ToString()"
73+
pattern="@Pattern"
74+
@onkeydown="@InvokeKeyDown"
75+
@onkeypress="@InvokeKeyPress"
76+
@onkeyup="@InvokeKeyUp"
77+
maxlength="@MaxLength"
78+
@onkeydown:preventDefault="KeyDownPreventDefault"
79+
@onkeypress:preventDefault="@KeyPressPreventDefault"
80+
@onkeyup:preventDefault="@KeyUpPreventDefault"
81+
onpaste="return false"
82+
@onmousewheel="@OnMouseWheel"
83+
@onwheel="@OnMouseWheel"
84+
aria-invalid="@Error.ToString().ToLower()"
85+
aria-describedby="@ErrorId" />
86+
}
87+
else
88+
{
89+
<input class="@InputClassname"
90+
@ref="ElementReference"
91+
@attributes="UserAttributes"
92+
type="@InputTypeString"
93+
value="@_internalText"
94+
@oninput="OnInputHandler"
95+
@onchange="OnChangeHandler"
96+
placeholder="@Placeholder"
97+
disabled=@Disabled
98+
readonly="@ReadOnly"
99+
@onblur="@OnBlurredAsync"
100+
inputmode="@InputMode.ToString()"
101+
pattern="@Pattern"
102+
@onkeydown="@InvokeKeyDown"
103+
@onkeypress="@InvokeKeyPress"
104+
@onkeyup="@InvokeKeyUp"
105+
maxlength="@MaxLength"
106+
@onkeydown:preventDefault="KeyDownPreventDefault"
107+
@onkeypress:preventDefault="@KeyPressPreventDefault"
108+
@onkeyup:preventDefault="@KeyUpPreventDefault"
109+
@onmousewheel="@OnMouseWheel"
110+
@onwheel="@OnMouseWheel"
111+
aria-invalid="@Error.ToString().ToLower()"
112+
aria-describedby="@ErrorId" />
113+
}
114+
83115
</div>
84116

85117
@*Note: double mouse wheel handlers needed for Firefox because it doesn't know onmousewheel*@

CodeBeam.MudBlazor.Extensions/Components/PasswordField/MudPasswordField.razor

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@
5353
HideSpinButtons="true"
5454
Clearable="@Clearable"
5555
OnClearButtonClick="@OnClearButtonClick"
56-
Pattern="@Pattern">
56+
Pattern="@Pattern"
57+
DisablePaste="@DisablePaste">
5758
<AdornmentStart>
5859
@AdornmentStart
5960
</AdornmentStart>
@@ -103,7 +104,8 @@
103104
HideSpinButtons="true"
104105
Clearable="@Clearable"
105106
OnClearButtonClick="@OnClearButtonClick"
106-
Pattern="@Pattern">
107+
Pattern="@Pattern"
108+
DisablePaste="@DisablePaste">
107109
<AdornmentEnd>
108110
@if (CustomAdornment != null)
109111
{

CodeBeam.MudBlazor.Extensions/Components/PasswordField/MudPasswordField.razor.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ public partial class MudPasswordField<T> : MudDebouncedInput<T>
3939
[Category(CategoryTypes.FormComponent.Behavior)]
4040
public bool Clearable { get; set; } = false;
4141

42+
[Parameter]
43+
[Category(CategoryTypes.FormComponent.Behavior)]
44+
public bool DisablePaste { get; set; }
45+
4246
/// <summary>
4347
/// If true, adornment button accepts tab stop. Default is false.
4448
/// </summary>

ComponentViewer.Docs/Pages/Examples/PasswordFieldExample1.razor

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,23 @@
22
<MudItem xs="12" sm="8" Class="d-flex align-center">
33
@if (_adornmentStart)
44
{
5-
<MudPasswordField @bind-Value="@_password" @bind-PasswordMode="@_passwordMode" Variant="Variant.Outlined" IconSize="_size">
5+
<MudPasswordField @bind-Value="@_password" @bind-PasswordMode="@_passwordMode" Variant="Variant.Outlined" IconSize="_size" DisablePaste="_disablePaste">
66
<AdornmentStart>
77
<MudIcon Icon="@Icons.Material.Filled.Key"/>
88
</AdornmentStart>
99
</MudPasswordField>
1010
}
1111
else
1212
{
13-
<MudPasswordField @bind-Value="@_password" @bind-PasswordMode="@_passwordMode" Variant="Variant.Outlined" IconSize="_size" />
13+
<MudPasswordField @bind-Value="@_password" @bind-PasswordMode="@_passwordMode" Variant="Variant.Outlined" IconSize="_size" DisablePaste="_disablePaste" />
1414
}
1515
</MudItem>
1616

1717
<MudItem xs="12" sm="4">
1818
<MudStack>
1919
<MudSwitchM3 @bind-Checked="_passwordMode" Color="Color.Secondary">Password Mode</MudSwitchM3>
2020
<MudSwitchM3 @bind-Checked="_adornmentStart" Color="Color.Secondary">Adornment Start</MudSwitchM3>
21+
<MudSwitchM3 @bind-Checked="_disablePaste" Color="Color.Secondary">Disable Paste</MudSwitchM3>
2122
<MudSelectExtended @bind-Value="_size" ItemCollection="Enum.GetValues<Size>()" Label="Icon Size" Variant="Variant.Outlined"/>
2223
</MudStack>
2324
</MudItem>
@@ -27,5 +28,6 @@
2728
string _password = "asdf";
2829
bool _passwordMode;
2930
bool _adornmentStart;
31+
bool _disablePaste;
3032
Size _size = Size.Medium;
3133
}

0 commit comments

Comments
 (0)