From abb8427022e2cf509fe5e34e677d263a9d920dcc Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Mon, 24 Jul 2023 15:07:37 +0700 Subject: wa text product --- .../components/elements/Navbar/NavbarDesktop.jsx | 26 +++++++++++++++++- src/core/components/layouts/BasicLayout.jsx | 31 +++++++++++++++++++++- src/core/utils/whatsappUrl.js | 17 ++++++++---- .../product/components/Product/ProductDesktop.jsx | 6 +++++ 4 files changed, 73 insertions(+), 7 deletions(-) (limited to 'src') 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 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}
{ + 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)}` diff --git a/src/lib/product/components/Product/ProductDesktop.jsx b/src/lib/product/components/Product/ProductDesktop.jsx index 6a87d022..d8ea3c50 100644 --- a/src/lib/product/components/Product/ProductDesktop.jsx +++ b/src/lib/product/components/Product/ProductDesktop.jsx @@ -222,9 +222,12 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { klik disini @@ -326,9 +329,12 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { Call for price -- cgit v1.2.3 From 8b8ab7680be37e84d0dc6cc1683fe4996f7cc8c1 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Mon, 24 Jul 2023 15:32:51 +0700 Subject: wa text template --- src/core/utils/whatsappUrl.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/core/utils/whatsappUrl.js b/src/core/utils/whatsappUrl.js index 65a6c00a..81ea3463 100644 --- a/src/core/utils/whatsappUrl.js +++ b/src/core/utils/whatsappUrl.js @@ -6,13 +6,13 @@ const whatsappUrl = (template = 'default', payload) => { return '/login' } let url = 'https://wa.me/628128080622' - let text = 'Hallo Indoteknik.com, ' + let text = 'Hallo Indoteknik.com,' switch (template) { case 'product': - 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}` + 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 += ` 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 'productSearch': text += `Saya lagi cari-cari produk ${payload?.name}, bisa bantu saya cari produknya?` -- cgit v1.2.3 From 0b81a072e67276350d25bfbf0edab87184405125 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Tue, 25 Jul 2023 16:48:47 +0700 Subject: change partner name if false --- src/core/utils/whatsappUrl.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/core/utils/whatsappUrl.js b/src/core/utils/whatsappUrl.js index 81ea3463..c5959ed6 100644 --- a/src/core/utils/whatsappUrl.js +++ b/src/core/utils/whatsappUrl.js @@ -5,23 +5,24 @@ const whatsappUrl = (template = 'default', payload) => { if(!user){ return '/login' } + let parentName = user.parentName || '-' let url = 'https://wa.me/628128080622' let text = 'Hallo Indoteknik.com,' switch (template) { case 'product': - 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}` + text += ` Saya ${user.name} , Saya dari ${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 += ` 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}` + text += ` Saya ${user.name} , Saya dari ${parentName} Saya mencari barang dibawah ini\n\n: Brand = ${payload?.manufacture}\n\n Item Name = ${payload?.name}\n\nLink : ${payload?.url}` break case 'productSearch': 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?` + text += `Saya ${user.name}, Saya dari ${parentName} Bisa tolong bantu kebutuhan saya?` break; default: - text += `Saya ${user.name}, Saya dari ${user.parentName} Bisa tolong bantu kebutuhan saya?` + text += `Saya ${user.name}, Saya dari ${parentName} Bisa tolong bantu kebutuhan saya?` break } if (text) url += `?text=${encodeURI(text)}` -- cgit v1.2.3