react-obfuscate-email
Advanced tools
Comparing version 1.0.11 to 1.0.12
@@ -1,7 +0,11 @@ | ||
import React, { useState, } from "react"; | ||
import { percentEncodeParams } from "./utils"; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Email = void 0; | ||
const tslib_1 = require("tslib"); | ||
const react_1 = (0, tslib_1.__importStar)(require("react")); | ||
const utils_1 = require("./utils"); | ||
function obfuscateEmail(email) { | ||
const [username, domain] = email.split("@"); | ||
return (React.createElement(React.Fragment, null, | ||
React.createElement("style", { dangerouslySetInnerHTML: { | ||
return (react_1.default.createElement(react_1.default.Fragment, null, | ||
react_1.default.createElement("style", { dangerouslySetInnerHTML: { | ||
__html: ` | ||
@@ -14,9 +18,10 @@ a>span.roe::after { | ||
username, | ||
React.createElement("span", { className: "roe" }), | ||
react_1.default.createElement("span", { className: "roe" }), | ||
domain)); | ||
} | ||
export function Email({ bcc = [], body = "", cc = [], children, email, subject = "", ...props }) { | ||
const [hovered, setHovered] = useState(false); | ||
function Email(_a) { | ||
var { bcc = [], body = "", cc = [], children, email, subject = "" } = _a, props = (0, tslib_1.__rest)(_a, ["bcc", "body", "cc", "children", "email", "subject"]); | ||
const [hovered, setHovered] = (0, react_1.useState)(false); | ||
const emailUrl = new URL(`mailto:${email}`); | ||
emailUrl.search = percentEncodeParams({ bcc, body, cc, subject }); | ||
emailUrl.search = (0, utils_1.percentEncodeParams)({ bcc, body, cc, subject }); | ||
function handleHover() { | ||
@@ -27,3 +32,4 @@ setHovered(true); | ||
const obfuscatedText = children || obfuscateEmail(email); | ||
return (React.createElement("a", { href: hovered ? emailUrl.href : "#", onFocus: handleHover, onMouseOver: handleHover, ...props }, hovered ? displayText : obfuscatedText)); | ||
return (react_1.default.createElement("a", Object.assign({ href: hovered ? emailUrl.href : "#", onFocus: handleHover, onMouseOver: handleHover }, props), hovered ? displayText : obfuscatedText)); | ||
} | ||
exports.Email = Email; |
@@ -1,1 +0,5 @@ | ||
export { Email } from "./Email"; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Email = void 0; | ||
var Email_1 = require("./Email"); | ||
Object.defineProperty(exports, "Email", { enumerable: true, get: function () { return Email_1.Email; } }); |
@@ -0,1 +1,4 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.percentEncodeParams = void 0; | ||
function isValidStringParam(param) { | ||
@@ -8,3 +11,3 @@ const [, value] = param; | ||
} | ||
export function percentEncodeParams(params) { | ||
function percentEncodeParams(params) { | ||
return Object.entries(params) | ||
@@ -16,1 +19,2 @@ .map(paramToStringParam) | ||
} | ||
exports.percentEncodeParams = percentEncodeParams; |
{ | ||
"version": "1.0.11", | ||
"version": "1.0.12", | ||
"license": "MIT", | ||
@@ -4,0 +4,0 @@ "main": "dist/index.js", |
8436
74