diff --git a/js/mailto.js b/js/mailto.js new file mode 100644 index 0000000..d353119 --- /dev/null +++ b/js/mailto.js @@ -0,0 +1,15 @@ +/** + * 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}`; +}