Last active
August 11, 2021 04:11
-
-
Save leodutra/4b85e2dfa5649de7ec9f687058e7585e to your computer and use it in GitHub Desktop.
React - replace string by render or component
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const replaceStrByRender = ( | |
str: string, | |
substr: string | RegExp, | |
render: (part: string, i: number) => JSX.Element | |
) => { | |
if (!str || !substr) return str | |
const parts = str.split(substr) | |
const results: Array<string | JSX.Element | null> = [] | |
let index = 0 | |
for (let i = 0; i < parts.length; i++) { | |
if (parts[i]) results.push(parts[i]) | |
if (i + 1 < parts.length) { | |
const rendered = render(parts[i], index++) | |
if (rendered) results.push(rendered) | |
} | |
} | |
return results | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment