Skip to content

Commit ac394b2

Browse files
committed
refactor: update validateUsername function to use ValidateFunctions type and enhance documentation
1 parent e4f56a5 commit ac394b2

File tree

2 files changed

+34
-13
lines changed

2 files changed

+34
-13
lines changed

src/app/[locale]/(doc-session)/documentation/js/functions/validateUsername/page.tsx

+29-8
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,21 @@ export default async function ValidateUsername({
5454

5555
<h2 className="subtitle">{t("Function Signature")}</h2>
5656

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 {
5969
minLength?: number;
6070
maxLength?: number;
61-
cbValidate?: (username: string) => boolean;
71+
cbValidate?: (username: string) => ValidateFunctions;
6272
errorMsg?: (string | null)[];
6373
}
6474
@@ -77,7 +87,7 @@ function validateUsername(
7787
cbValidate,
7888
errorMsg,
7989
}: OptionsParams = defaultOptionsParams,
80-
): { isValid: boolean, errorMsg: string | null };`}
90+
): ValidateFunctions {}`}
8191
</SyntaxHighlighter>
8292

8393
<h2 className="subtitle">{t("Parameters")}</h2>
@@ -99,9 +109,9 @@ function validateUsername(
99109
)}
100110
</li>
101111
<li>
102-
<code>cbValidate</code> ((username: string) -&gt; boolean){" "}
112+
<code>cbValidate</code> ((username: string) -&gt; ValidateFunctions){" "}
103113
[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.
105115
</li>
106116
<li>
107117
<code>errorMsg</code> (string[]){" "}
@@ -118,7 +128,6 @@ function validateUsername(
118128
"Username cannot be empty",
119129
"Username too short",
120130
"This username is too long",
121-
"Invalid username",
122131
];`}
123132
</SyntaxHighlighter>
124133

@@ -145,7 +154,19 @@ console.log(validateUsername('user123', { minLength: 5, maxLength: 10 }));
145154
// Output: { isValid: true, errorMsg: null }
146155
147156
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+
},
149170
})); // Output: { isValid: false, errorMsg: 'Invalid username' }`}
150171
</SyntaxHighlighter>
151172
</div>

src/app/[locale]/(doc-session)/documentation/js/subComponents/MainPageSyntexHightlighter.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export function UsageCDNExample() {
6868
return (
6969
<SyntaxHighlighter language="html" style={a11yDark}>
7070
{`<script type="module">
71-
import { isEmail, cpfIsValid } from "https://cdn.jsdelivr.net/npm/multiform-validator@2.3.1/+esm";
71+
import { isEmail, cpfIsValid } from "https://cdn.jsdelivr.net/npm/multiform-validator@2.4.0/+esm";
7272
const emailResult = isEmail("123456");
7373
const cpfResult = cpfIsValid("123456");
7474
@@ -85,21 +85,21 @@ export function Cdns() {
8585
<div className="mb-4">
8686
<h3 className="mb-2">jsDelivr</h3>
8787
<SyntaxHighlighter language="bash" style={a11yDark}>
88-
https://cdn.jsdelivr.net/npm/multiform-validator@2.3.1/+esm
88+
https://cdn.jsdelivr.net/npm/multiform-validator@2.4.0/+esm
8989
</SyntaxHighlighter>
9090
<SyntaxHighlighter language="html" style={a11yDark}>
9191
{`<script type="module">
92-
import multiformValidator from "https://cdn.jsdelivr.net/npm/multiform-validator@2.3.1/+esm"
92+
import multiformValidator from "https://cdn.jsdelivr.net/npm/multiform-validator@2.4.0/+esm"
9393
</script>`}
9494
</SyntaxHighlighter>
9595
</div>
9696
<div className="mb-4">
9797
<h3 className="mb-2">unpkg</h3>
9898
<SyntaxHighlighter language="bash" style={a11yDark}>
99-
https://unpkg.com/multiform-validator@2.3.1/dist/cjs/index.cjs
99+
https://unpkg.com/multiform-validator@2.4.0/dist/cjs/index.cjs
100100
</SyntaxHighlighter>
101101
<SyntaxHighlighter language="html" style={a11yDark}>
102-
{`<script src="https://unpkg.com/multiform-validator@2.3.1/dist/cjs/index.cjs"></script>`}
102+
{`<script src="https://unpkg.com/multiform-validator@2.4.0/dist/cjs/index.cjs"></script>`}
103103
</SyntaxHighlighter>
104104
</div>
105105
</>

0 commit comments

Comments
 (0)