1 min read

Open WhatsApp Link

react react-native
import { parsePhoneNumber } from "awesome-phonenumber";
import { Linking } from "react-native";

const whatsappApiOpenContactUrl = "https://wa.me";

type OpenWhatsAppParams = {
  phoneNumber: string;
  regionCode?: string;
  message?: string;
};

export const openWhatsapp = ({
  phoneNumber,
  regionCode = "ID",
  message,
}: OpenWhatsAppParams) => {
  const parsedPhoneNumber = parsePhoneNumber(phoneNumber, { regionCode });
  const destinedPhoneNumber =
    parsedPhoneNumber.number?.international.replace(/[+\s-]/g, "") ??
    phoneNumber;
  const url = new URL(`${whatsappApiOpenContactUrl}/${destinedPhoneNumber}`);

  if (message) {
    url.searchParams.set("text", message);
  }

  Linking.openURL(url.toString()); // react native
  // window.open(url.toString(), "_blank"); // web
};