@@ -54,11 +54,21 @@ export default async function ValidateUsername({
54
54
55
55
< h2 className = "subtitle" > { t ( "Function Signature" ) } </ h2 >
56
56
57
- < SyntaxHighlighter language = "javascript" style = { a11yDark } >
58
- { `interface OptionsParams {
57
+ < SyntaxHighlighter language = "typescript" style = { a11yDark } >
58
+ { `type ValidateFunctions =
59
+ | {
60
+ isValid: true;
61
+ errorMsg: null;
62
+ }
63
+ | {
64
+ isValid: false;
65
+ errorMsg: string;
66
+ };
67
+
68
+ interface OptionsParams {
59
69
minLength?: number;
60
70
maxLength?: number;
61
- cbValidate?: (username: string) => boolean ;
71
+ cbValidate?: (username: string) => ValidateFunctions ;
62
72
errorMsg?: (string | null)[];
63
73
}
64
74
@@ -77,7 +87,7 @@ function validateUsername(
77
87
cbValidate,
78
88
errorMsg,
79
89
}: OptionsParams = defaultOptionsParams,
80
- ): { isValid: boolean, errorMsg: string | null }; ` }
90
+ ): ValidateFunctions {} ` }
81
91
</ SyntaxHighlighter >
82
92
83
93
< h2 className = "subtitle" > { t ( "Parameters" ) } </ h2 >
@@ -99,9 +109,9 @@ function validateUsername(
99
109
) }
100
110
</ li >
101
111
< li >
102
- < code > cbValidate</ code > ((username: string) -> boolean ){ " " }
112
+ < code > cbValidate</ code > ((username: string) -> ValidateFunctions ){ " " }
103
113
[optional] - A custom validation function that takes the username as
104
- an argument and returns a boolean . Default is undefined.
114
+ an argument and returns a ValidateFunctions . Default is undefined.
105
115
</ li >
106
116
< li >
107
117
< code > errorMsg</ code > (string[]){ " " }
@@ -118,7 +128,6 @@ function validateUsername(
118
128
"Username cannot be empty",
119
129
"Username too short",
120
130
"This username is too long",
121
- "Invalid username",
122
131
];` }
123
132
</ SyntaxHighlighter >
124
133
@@ -145,7 +154,19 @@ console.log(validateUsername('user123', { minLength: 5, maxLength: 10 }));
145
154
// Output: { isValid: true, errorMsg: null }
146
155
147
156
console.log(validateUsername('user1', {
148
- cbValidate: (value) => value.length > 5
157
+ cbValidate: (username: string) => {
158
+ if (username !== "User123") {
159
+ return {
160
+ isValid: false,
161
+ errorMsg: "Invalid username",
162
+ };
163
+ }
164
+
165
+ return {
166
+ isValid: true,
167
+ errorMsg: null,
168
+ };
169
+ },
149
170
})); // Output: { isValid: false, errorMsg: 'Invalid username' }` }
150
171
</ SyntaxHighlighter >
151
172
</ div >
0 commit comments