summaryrefslogtreecommitdiff
path: root/src-migrate/libs
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2024-01-15 13:54:30 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2024-01-15 13:54:30 +0700
commitc42f03768e4c009a247d5cacbecaf4ac952752c9 (patch)
tree9199f9b7fae77e1988724159380567b8046c94a9 /src-migrate/libs
parentf62b2345f463695ef0f8f79830cd76b6e0332821 (diff)
Improve product detail performance
Diffstat (limited to 'src-migrate/libs')
-rw-r--r--src-migrate/libs/whatsappUrl.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/src-migrate/libs/whatsappUrl.ts b/src-migrate/libs/whatsappUrl.ts
new file mode 100644
index 00000000..02c36cef
--- /dev/null
+++ b/src-migrate/libs/whatsappUrl.ts
@@ -0,0 +1,46 @@
+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?${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/628128080622?text=${encodeURIComponent(result)}`;
+};