mailto:
link).email
, subject
and body
props to create a <a>
element with an appropriate href
attribute.encodeURIcomponent
to safely encode the subject
and body
into the link URL.children
as its content.const Mailto = ({ email, subject = '', body = '', children }) => {
let params = subject || body ? '?' : '';
if (subject) params += `subject=${encodeURIComponent(subject)}`;
if (body) params += `${subject ? '&' : ''}body=${encodeURIComponent(body)}`;
return <a href={`mailto:${email}${params}`}>{children}</a>;
};
ReactDOM.render( <Mailto email="foo@bar.baz" subject="Hello & Welcome" body="Hello world!"> Mail me! </Mailto>, document.getElementById('root') );
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️