react-obfuscate

An intelligent React component to obfuscate any contact link!

How it works

The user passes the contact link as an email, tel, sms, or facetime prop. The component obfuscates href data until an onClick event. Links are given their proper URL schemes (mailto, facetime, etc.) The link is rendered in reverse in the dom, but reversed again with css. This making the link useless for spammers, but user friendly on screen.

Why

The world needs obfuscated links that display the link in a friendly way.

Installation

npm install --save react-obfuscate

Input

import React from 'react'
import Obfuscate from 'react-obfuscate'

export default () => (
  <p>
    Phone: <Obfuscate tel="205-454-1234" />
    <br />
    Email:{' '}
    <Obfuscate
      email="[email protected]"
      headers={{
        subject: 'Question from the website',
        cc: '[email protected]',
      }}
    />
  </p>
)

Output

Robot Interaction

<p>
  Phone: <a href="obfuscated" style="direction: rtl; unicode-bidi: bidi-override;">4321-454-502</a><br>
  Email: <a href="obfuscated" style="direction: rtl; unicode-bidi: bidi-override;">looc.notsoc@olleh</a>
</p>

Human Interaction

<p>
  Phone: <a href="tel:205-454-1234">205-454-1234</a><br>
  Email: <a href="mailto:[email protected]&subject=Question%20from%20the%20website&[email protected]">[email protected]</a>
</p>

Options

Prop Type Argument Default Description
email string <optional> null email address of the intended recipient
tel string <optional> null telephone number of the intended recipient
sms string <optional> null sms number of the intended recipient
facetime string <optional> null facetime address of the intended recipient
headers object <optional> null subject, cc, bcc, body, etc
obfuscate boolean <optional> true set to false to disable obfuscation
linkText string <optional> obfuscated add custom obfuscated link text, like 'Email Me'

Development

npm run build

GitHub