16 lines
569 B
JavaScript
16 lines
569 B
JavaScript
/**
|
|
* Build a `mailto:` URL from an address, subject, and body.
|
|
* Subject and body are URL-encoded so the visitor's mail client
|
|
* opens pre-filled with the submitted values.
|
|
*
|
|
* @param {{to?: string, subject?: string, body?: string}} options
|
|
* @returns {string}
|
|
*/
|
|
export function buildMailtoUrl({ to = "", subject = "", body = "" } = {}) {
|
|
const params = new URLSearchParams();
|
|
if (subject) params.set("subject", subject);
|
|
if (body) params.set("body", body);
|
|
const query = params.toString();
|
|
return query ? `mailto:${to}?${query}` : `mailto:${to}`;
|
|
}
|