aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/helpers/strings.ts
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-12-07 18:48:53 +0100
committerArmand Philippot <git@armandphilippot.com>2023-12-08 19:13:47 +0100
commitd375e5c9f162cbd84a6e6462977db56519d09f75 (patch)
treeaed9bc81c426e3e9fb60292cb244613cb8083dea /src/utils/helpers/strings.ts
parentb8eb008dd5927fb736e56699637f5f8549965eae (diff)
refactor(pages): refine Project pages
* refactor ProjectOverview component to let consumers handle the value * extract project overview depending on Github to avoid fetching Github API if the project is not on Github * wrap dynamic import in a useMemo hook to avoid infinite rerender * fix table of contents by adding a useMutationObserver hook to refresh headings tree (without it useHeadingsTree is not retriggered once the dynamic import is done) * add Cypress tests
Diffstat (limited to 'src/utils/helpers/strings.ts')
-rw-r--r--src/utils/helpers/strings.ts6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/utils/helpers/strings.ts b/src/utils/helpers/strings.ts
index b8af61d..1f40b8f 100644
--- a/src/utils/helpers/strings.ts
+++ b/src/utils/helpers/strings.ts
@@ -23,8 +23,10 @@ export const slugify = (text: string): string =>
* @param {string} text - A text to capitalize.
* @returns {string} The capitalized text.
*/
-export const capitalize = (text: string): string =>
- text.replace(/^\w/, (firstLetter) => firstLetter.toUpperCase());
+export const capitalize = <T extends string>(text: T): Capitalize<T> =>
+ text.replace(/^\w/, (firstLetter) =>
+ firstLetter.toUpperCase()
+ ) as Capitalize<T>;
/**
* Convert a text from kebab case (foo-bar) to camel case (fooBar).