-
-
Notifications
You must be signed in to change notification settings - Fork 100
/
Mailto.tsx
48 lines (44 loc) · 942 Bytes
/
Mailto.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
* Copyright (c) 2017-present Jared Palmer
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import * as qs from 'qs';
export interface MailtoProps extends React.HTMLAttributes<HTMLAnchorElement> {
/** Email address */
email: string;
/** Subject */
subject?: string;
/** List of email addresses to CC */
cc?: string[];
/** List of email addresses to Bcc */
bcc?: string[];
/** Email body text */
body?: string;
}
export const Mailto: React.SFC<MailtoProps> = ({
email,
subject,
cc,
bcc,
body,
children,
...props,
}) => {
return (
<a
href={`mailto:${email}?${qs.stringify({
subject,
cc: cc && cc.join(', '),
bcc: bcc && bcc.join(', '),
body,
})}`}
{...props}
>
{children}
</a>
);
};
Mailto.displayName = 'Mailto';