summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorHATEC\SPVDEV001 <tri.susilo@altama.co.id>2023-07-24 15:07:37 +0700
committerHATEC\SPVDEV001 <tri.susilo@altama.co.id>2023-07-24 15:07:37 +0700
commitabb8427022e2cf509fe5e34e677d263a9d920dcc (patch)
treeb69319b0f4ae1c47d611f9d327c72e62d9ec9a03 /src/core
parentd61b3ca0213395099e4cea9ace8172d4e622fb52 (diff)
wa text product
Diffstat (limited to 'src/core')
-rw-r--r--src/core/components/elements/Navbar/NavbarDesktop.jsx26
-rw-r--r--src/core/components/layouts/BasicLayout.jsx31
-rw-r--r--src/core/utils/whatsappUrl.js17
3 files changed, 67 insertions, 7 deletions
diff --git a/src/core/components/elements/Navbar/NavbarDesktop.jsx b/src/core/components/elements/Navbar/NavbarDesktop.jsx
index 26edd5a4..eb1bc48c 100644
--- a/src/core/components/elements/Navbar/NavbarDesktop.jsx
+++ b/src/core/components/elements/Navbar/NavbarDesktop.jsx
@@ -16,6 +16,10 @@ import NavbarUserDropdown from './NavbarUserDropdown'
import { getCart } from '@/core/utils/cart'
import TopBanner from './TopBanner'
import whatsappUrl from '@/core/utils/whatsappUrl'
+import { useRouter } from 'next/router'
+import { getAuth } from '@/core/utils/auth'
+import { createSlug, getIdFromSlug } from '@/core/utils/slug'
+import productApi from '@/lib/product/api/productApi'
const Search = dynamic(() => import('./Search'))
@@ -25,6 +29,11 @@ const NavbarDesktop = () => {
const [cartCount, setCartCount] = useState(0)
+ const [templateWA, setTemplateWA] = useState(null)
+ const [payloadWA, setPayloadWa] = useState(null)
+
+ const router = useRouter()
+
useEffect(() => {
const handleCartChange = () => {
setCartCount(Object.keys(getCart()).length)
@@ -32,6 +41,21 @@ const NavbarDesktop = () => {
handleCartChange()
window.addEventListener('localStorageChange', handleCartChange)
+ if (router.pathname === '/shop/product/[slug]') {
+ const authToken = getAuth().token
+
+ const { slug } = router.query
+ const getProduct = async () => {
+ let product = await productApi({ id: getIdFromSlug(slug), headers: { Token: authToken } })
+ setPayloadWa({
+ name: product[0]?.name,
+ manufacture: product[0]?.manufacture.name,
+ url: createSlug('/shop/product/', product[0]?.name, product[0]?.id, true)
+ })
+ }
+ getProduct()
+ setTemplateWA('product')
+ }
return () => {
window.removeEventListener('localStorageChange', handleCartChange)
@@ -92,7 +116,7 @@ const NavbarDesktop = () => {
Wishlist
</Link>
<a
- href={whatsappUrl()}
+ href={whatsappUrl(templateWA, payloadWA)}
target='_blank'
rel='noreferrer'
className='flex items-center gap-x-1 !text-gray_r-12/80'
diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx
index 70482e12..073303fe 100644
--- a/src/core/components/layouts/BasicLayout.jsx
+++ b/src/core/components/layouts/BasicLayout.jsx
@@ -5,11 +5,21 @@ import whatsappUrl from '@/core/utils/whatsappUrl'
import { useEffect, useState } from 'react'
import axios from 'axios'
import odooApi from '@/core/api/odooApi'
+import { useRouter } from 'next/router'
+import { getURL } from 'next/dist/shared/lib/utils'
+import productApi from '@/lib/product/api/productApi'
+import { getAuth } from '@/core/utils/auth'
+import { createSlug, getIdFromSlug } from '@/core/utils/slug'
const Navbar = dynamic(() => import('../elements/Navbar/Navbar'))
const AnimationLayout = dynamic(() => import('./AnimationLayout'))
const BasicLayout = ({ children }) => {
+ const [templateWA, setTemplateWA] = useState(null)
+ const [payloadWA, setPayloadWa] = useState(null)
+
+ const router = useRouter()
+
useEffect(() => {
const getIP = async () => {
const ip = await odooApi('GET', '/api/ip-address')
@@ -21,6 +31,23 @@ const BasicLayout = ({ children }) => {
axios.get(`/api/user-activity?page_title=${data.page_title}&url=${data.url}&ip=${data.ip}`)
}
getIP()
+ if (router.pathname === '/shop/product/[slug]') {
+ const authToken = getAuth().token
+
+ const { slug } = router.query
+ const getProduct = async () => {
+ let product = await productApi({ id: getIdFromSlug(slug), headers: { Token: authToken } })
+ console.log('ini product', product)
+ setPayloadWa({
+ name: product[0]?.name,
+ manufacture: product[0]?.manufacture.name,
+ url: createSlug('/shop/product/', product[0]?.name, product[0]?.id, true)
+ })
+ }
+ getProduct()
+ setTemplateWA('product')
+
+ }
}, [])
return (
<>
@@ -29,8 +56,10 @@ const BasicLayout = ({ children }) => {
{children}
<div className='fixed bottom-4 right-4 sm:bottom-14 sm:right-10 z-50'>
<a
- href={whatsappUrl(null)}
+ href={whatsappUrl(templateWA, payloadWA)}
className='py-2 pl-3 pr-4 rounded-full bg-[#4FB84A] border border-green-300 flex items-center'
+ rel='noopener noreferrer'
+ target='_blank'
>
<Image
src='/images/socials/WHATSAPP.svg'
diff --git a/src/core/utils/whatsappUrl.js b/src/core/utils/whatsappUrl.js
index 6ca9722b..65a6c00a 100644
--- a/src/core/utils/whatsappUrl.js
+++ b/src/core/utils/whatsappUrl.js
@@ -1,20 +1,27 @@
+import { getAuth } from "./auth"
+
const whatsappUrl = (template = 'default', payload) => {
+ let user = getAuth()
+ if(!user){
+ return '/login'
+ }
let url = 'https://wa.me/628128080622'
- let text = ''
+ let text = 'Hallo Indoteknik.com, '
switch (template) {
case 'product':
- text = `Halo, saya mau tanya ${payload.name}, bisa tolong bantu saya?\n\nBerikut ini linknya: ${payload.url}`
+ text += `Saya ${user.name} , Saya dari ${user.parentName} Saya mencari barang dibawah ini\n\n: Brand = ${payload?.manufacture}\n\n Item Name = ${payload?.name}\n\nLink : ${payload?.url}`
break
case 'productWeight':
- text = `Mau tanya untuk berat ${payload.name}, bisa minta tolong informasikan beratnya?\n\nBerikut ini linknya: ${payload.url}`
+ text += `Mau tanya untuk berat ${payload?.name}, bisa minta tolong informasikan beratnya?\n\nBerikut ini linknya: ${payload?.url}`
break
case 'productSearch':
- text = `Saya lagi cari-cari produk ${payload.name}, bisa bantu saya cari produknya?`
+ text += `Saya lagi cari-cari produk ${payload?.name}, bisa bantu saya cari produknya?`
break
case null:
+ text += `Saya ${user.name}, Saya dari ${user.parentName} Bisa tolong bantu kebutuhan saya?`
break;
default:
- text = 'Halo, saya mau tanya-tanya seputar produk, bisa tolong bantu saya?'
+ text += `Saya ${user.name}, Saya dari ${user.parentName} Bisa tolong bantu kebutuhan saya?`
break
}
if (text) url += `?text=${encodeURI(text)}`