ok
This commit is contained in:
@@ -65,8 +65,8 @@ const Modal = ({ user, shop, isOpen, onClose, modalContent, deviceType, setModal
|
|||||||
|
|
||||||
const handleYes = (event) => {
|
const handleYes = (event) => {
|
||||||
if(onModalYesFunction)
|
if(onModalYesFunction)
|
||||||
console.log('dawnawddjwand')
|
onModalYesFunction();
|
||||||
onModalYesFunction();
|
onClose(); // Close the modal
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleNo = (event) => {
|
const handleNo = (event) => {
|
||||||
@@ -134,7 +134,7 @@ const Modal = ({ user, shop, isOpen, onClose, modalContent, deviceType, setModal
|
|||||||
{modalContent === "claim-coupon" && <Join setModal={setModal} />}
|
{modalContent === "claim-coupon" && <Join setModal={setModal} />}
|
||||||
{modalContent === "loading" && <Loading setModal={setModal} />}
|
{modalContent === "loading" && <Loading setModal={setModal} />}
|
||||||
{modalContent === "message" && <Message handleYes={handleYes}/>}
|
{modalContent === "message" && <Message handleYes={handleYes}/>}
|
||||||
{modalContent === "player-prompt" && <PlayerPrompt/>}
|
{modalContent === "player-prompt" && <PlayerPrompt cafeId={shop.cafeId} setModal={setModal} handleClose={handleOverlayClick} welcomePageConfig={shop.welcomePageConfig}/>}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -129,8 +129,8 @@ export function MusicPlayer({ socket, shopId, user, shopOwnerId, isSpotifyNeedLo
|
|||||||
if (!socket) return;
|
if (!socket) return;
|
||||||
|
|
||||||
socket.on("requestResponse", (response) => {
|
socket.on("requestResponse", (response) => {
|
||||||
if(response.status) setModal("message", { captMessage: 'Berhasil menambahkan lagu' }, null, null);
|
if(response.success) setModal("message", { captMessage: 'Berhasil menambahkan lagu' }, null, null);
|
||||||
else setModal("message", { captMessage: 'Gagal menambahkan lagu', descMessage: response.alasan }, null, null);
|
else setModal("message", { captMessage: 'Gagal menambahkan lagu', descMessage: response.alasan }, null, null);
|
||||||
});
|
});
|
||||||
socket.on("searchResponse", (response) => {
|
socket.on("searchResponse", (response) => {
|
||||||
console.log(response);
|
console.log(response);
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ export const saveWelcomePageConfig = async (cafeId, details) => {
|
|||||||
formData.append("welcomingText", details.welcomingText);
|
formData.append("welcomingText", details.welcomingText);
|
||||||
formData.append("backgroundColor", details.backgroundColor);
|
formData.append("backgroundColor", details.backgroundColor);
|
||||||
formData.append("textColor", details.textColor);
|
formData.append("textColor", details.textColor);
|
||||||
|
formData.append("musicFilter", details.musicFilter);
|
||||||
|
|
||||||
// Append the isWelcomePageActive field
|
// Append the isWelcomePageActive field
|
||||||
formData.append("isWelcomePageActive", details.isWelcomePageActive);
|
formData.append("isWelcomePageActive", details.isWelcomePageActive);
|
||||||
|
|||||||
@@ -5,23 +5,26 @@ import styles from './Join.module.css'; // Import the module.css file
|
|||||||
const LinktreePage = ({ handleYes }) => {
|
const LinktreePage = ({ handleYes }) => {
|
||||||
const [captMessage, setCaptMessage] = useState('');
|
const [captMessage, setCaptMessage] = useState('');
|
||||||
const [descMessage, setDescMessage] = useState('');
|
const [descMessage, setDescMessage] = useState('');
|
||||||
|
const [closeText, setCloseText] = useState('');
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const newQueryParams = new URLSearchParams(window.location.search);
|
const newQueryParams = new URLSearchParams(window.location.search);
|
||||||
const r = newQueryParams.get('captMessage');
|
const r = newQueryParams.get('captMessage');
|
||||||
const s = newQueryParams.get('descMessage');
|
const s = newQueryParams.get('descMessage');
|
||||||
|
const v = newQueryParams.get('closeText') || 'Tutup';
|
||||||
if (r) {
|
if (r) {
|
||||||
setCaptMessage(r)
|
setCaptMessage(r)
|
||||||
setDescMessage(s)
|
setDescMessage(s)
|
||||||
|
setCloseText(v)
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.linktreePage}>
|
<div className={styles.linktreePage}>
|
||||||
<div className={styles.dashboardContainer}>
|
<div className={styles.dashboardContainer} >
|
||||||
<div className={styles.mainHeading}>{captMessage}</div>
|
<div className={styles.mainHeading}>{captMessage}</div>
|
||||||
<div className={styles.descHeading}>{descMessage}</div>
|
{descMessage && <div className={styles.descHeading}>{descMessage}</div>}
|
||||||
{handleYes && <div onClick={handleYes} className={styles.button}>Aktifkan</div>}
|
{handleYes && <div onClick={handleYes} className={styles.button}>{closeText}</div>}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,28 +1,42 @@
|
|||||||
// LinktreePage.js
|
// LinktreePage.js
|
||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import styles from './Join.module.css'; // Import the module.css file
|
import styles from './Join.module.css'; // Import the module.css file
|
||||||
|
import { saveWelcomePageConfig } from "../helpers/cafeHelpers"; // Import the API function
|
||||||
|
|
||||||
const LinktreePage = ({ handleYes }) => {
|
const LinktreePage = ({ cafeId, setModal, handleClose, welcomePageConfig }) => {
|
||||||
const [captMessage, setCaptMessage] = useState('');
|
const [musicFilter, setMusicFilter] = useState('');
|
||||||
const [descMessage, setDescMessage] = useState('');
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const newQueryParams = new URLSearchParams(window.location.search);
|
console.log(welcomePageConfig)
|
||||||
const r = newQueryParams.get('captMessage');
|
if (welcomePageConfig) {
|
||||||
const s = newQueryParams.get('descMessage');
|
const parsedConfig = JSON.parse(welcomePageConfig);
|
||||||
if (r) {
|
setMusicFilter(parsedConfig.musicFilter)
|
||||||
setCaptMessage(r)
|
}
|
||||||
setDescMessage(s)
|
}, [welcomePageConfig]);
|
||||||
}
|
|
||||||
}, []);
|
const handleSave = async () => {
|
||||||
|
setModal("loading");
|
||||||
|
|
||||||
|
const details = {
|
||||||
|
musicFilter
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
const result = await saveWelcomePageConfig(cafeId, details);
|
||||||
|
} catch (error) {
|
||||||
|
setModal("message", { captMessage: 'Gagal menerapkan filter' }, null, null);
|
||||||
|
} finally {
|
||||||
|
handleClose();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.linktreePage}>
|
<div className={styles.linktreePage}>
|
||||||
<div className={styles.dashboardContainer}>
|
<div className={styles.dashboardContainer}>
|
||||||
<div className={styles.mainHeading}>Filter jenis musik</div>
|
<div className={styles.mainHeading}>Filter jenis musik</div>
|
||||||
<div className={styles.descHeading}>Masukkan prompt untuk Gemini AI</div>
|
<div className={styles.descHeading}>Masukkan prompt untuk Gemini AI</div>
|
||||||
<input className={styles.input} placeholder="hanya musik santai"type="text"/>
|
<input value={musicFilter} onChange={(e)=>setMusicFilter(e.target.value)} className={styles.input} placeholder="hanya musik santai"type="text"/>
|
||||||
<div onClick={handleYes} className={styles.button}>Simpan</div>
|
<div onClick={handleSave} className={styles.button}>Simpan</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user