summaryrefslogtreecommitdiff
path: root/src-migrate/libs/whatsappUrl.ts
blob: a3fcf8adb3394d8d55c405daf54e310fb174d260 (plain)
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
import { getAuth } from './auth';

const TEMPLATES = {
  default: 'Bisa tolong bantu kebutuhan saya?',
  product:
    'Saya mencari barang berikut:\n\n{{url}}\n\n```Brand: {{manufacture}}\nName: {{productName}}```',
};

interface WhatsappUrlProps {
  template: keyof typeof TEMPLATES;
  payload: any;
  greeting?: boolean;
  needLogin?: boolean;
  fallbackUrl?: string;
}

export const whatsappUrl = ({
  template,
  payload,
  greeting = true,
  needLogin = true,
  fallbackUrl,
}: WhatsappUrlProps) => {
  const auth = getAuth();

  let greetingText = '';

  if (needLogin && !auth) {
    return fallbackUrl
      ? `/login?next=${encodeURIComponent(fallbackUrl)}`
      : '/login';
  }

  let result = TEMPLATES[template].replace(
    /{{(.*?)}}/g,
    (match, key) => payload[key] || ''
  );

  if (greeting && typeof auth === 'object') {
    greetingText = `Halo Indoteknik.com, Saya ${auth.name} `;
    if (auth.parentName) greetingText += `dari ${auth.parentName}`;
    greetingText += '.\n\n';

    result = greetingText + result;
  }

  return `https://wa.me/6281717181922?text=${encodeURIComponent(result)}`;
};