react-process-string icon indicating copy to clipboard operation
react-process-string copied to clipboard

Replace react-router-dom in string

Open Pedroxam opened this issue 5 years ago • 2 comments

In your example code, i want to replace user link with react-router-dom.

let users = ourStore.users;
let stringWithUsername = "Hello @efog, how do you feel today?";

let processed = processString([{
    regex: /\@([a-z0-9_\-]+?)( |\,|$|\.)/gim, //regex to match a username
    fn: (key, result) => {
        let username = result[1];
        let foundUsers = users.filter(user => user.username === username);

        if (!foundUsers.length)
            return result[0]; //@username

    //return this =>
        return <Link to={{
            pathname: '/user/' + username,
        }}> @{username} </Link>;

       // return <a key={key} href={`/user/${username}`}>@{username}</a>;
    }
}]); 

How can do this ?

Pedroxam avatar Apr 25 '20 16:04 Pedroxam

@Pedroxam Nothing works for me except this package https://www.npmjs.com/package/regexify-string

regexifyString({
        pattern: /\[.*?\]/gim,
        decorator: (match, index) => {
            return (
                <Link
                    to={SOME_ROUTE}
                    onClick={onClick}
                >
                    {match}
                </Link>
            );
        },
        input: 'Some text with [link]',
    });

kas-elvirov avatar Jul 09 '20 16:07 kas-elvirov

SOME_ROUTE

Thanks, i will check

Pedroxam avatar Jul 10 '20 12:07 Pedroxam