Skip to content

Commit 98b3839

Browse files
feat: add new option for getInitials
1 parent e82a5d0 commit 98b3839

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# [Versions](https://github.com/Tracktor/react-utils/releases)
22

3-
## v1.18.0
4-
- **[feat]** : export `phoneNumberAdapter` function
3+
## v1.19.0
4+
- **[feat]** : add `getInitials` option to capitalize name

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@tracktor/react-utils",
33
"description": "React data table and react data grid",
4-
"version": "1.18.0",
4+
"version": "1.19.0",
55
"private": false,
66
"license": "ISC",
77
"type": "module",

src/utils/adapter/getInitials/getInitials.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,30 @@ interface getInitialParamsWithLastNameOnly {
2222
fullName?: never;
2323
}
2424

25+
interface getInitialParamsWithNoName {
26+
firstName?: never;
27+
lastName?: never;
28+
fullName?: never;
29+
}
30+
2531
type getInitialParams =
2632
| getInitialParamsWithFullName
2733
| getInitialParamsWithFirstAndLastName
2834
| getInitialParamsWithFirstNameOnly
29-
| getInitialParamsWithLastNameOnly;
35+
| getInitialParamsWithLastNameOnly
36+
| getInitialParamsWithNoName;
3037

3138
/**
3239
* Get initial from first name and last name or full name
3340
* @param name
41+
* @param capitalize
3442
*/
35-
export const getInitials = (name: getInitialParams): string => {
43+
export const getInitials = (name: getInitialParams, capitalize?: boolean): string => {
3644
const [firstName, lastName] = name.fullName ? name.fullName.split(" ") : [name.firstName || "", name.lastName || ""];
3745

38-
return `${firstName?.charAt(0)}${lastName?.charAt(0)}`;
46+
return capitalize
47+
? `${firstName?.charAt(0).toUpperCase()}${lastName?.charAt(0).toUpperCase()}`
48+
: `${firstName?.charAt(0)}${lastName?.charAt(0)}`;
3949
};
4050

4151
export default getInitials;

src/utils/adapter/getInitials/test/getInitials.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,14 @@ describe("formatCreditCardNumber", () => {
2626
const initial = getInitials({ firstName: "Doe" });
2727
expect(initial).toEqual("D");
2828
});
29+
30+
test("with capitalize option", () => {
31+
const initial = getInitials({ firstName: "john", lastName: "doe" }, true);
32+
expect(initial).toBe("JD");
33+
});
34+
35+
test("with capitalize false option", () => {
36+
const initial = getInitials({ firstName: "john", lastName: "doe" }, false);
37+
expect(initial).toBe("jd");
38+
});
2939
});

0 commit comments

Comments
 (0)