import React, { useEffect, useState } from "react"; import { Card, Typography, Grid, Button, TextField as MaterialTextField, IconButton, } from "@mui/material"; import { Show, SimpleShowLayout, TextField, ShowProps, useGetOne, useRefresh, BooleanField, } from "react-admin"; import QRCode from "react-qr-code"; import useSWR from "swr"; import RefreshIcon from "@mui/icons-material/Refresh"; const Sidebar = ({ record }: any) => { const [receivedMessages, setReceivedMessages] = useState([]); const [phoneNumber, setPhoneNumber] = useState(""); const handlePhoneNumberChange = (event: any) => { setPhoneNumber(event.target.value); }; const [message, setMessage] = useState(""); const handleMessageChange = (event: any) => { setMessage(event.target.value); }; const sendMessage = async (phoneNumber: string, message: string) => { await fetch(`/api/v1/whatsapp/bots/${record.token}/send`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ phoneNumber, message }), }); }; const receiveMessages = async () => { const result = await fetch(`/api/v1/whatsapp/bots/${record.token}/receive`); const msgs = await result.json(); console.log(msgs); setReceivedMessages(msgs); }; return ( Send message Receive messages {receivedMessages.map((receivedMessage: any, index: number) => ( {receivedMessage.key.remoteJid.replace("@s.whatsapp.net", "")} {receivedMessage.message.conversation} ))} ); }; const WhatsappBotShow = (props: ShowProps) => { const refresh = useRefresh(); const { data } = useGetOne("whatsappBots", {id: props.id}); const { data: registerData, error: registerError } = useSWR( data && !data?.isVerified ? `/api/v1/whatsapp/bots/${props.id}/register` : undefined, { refreshInterval: 59000 } ); const unverifyBot = async () => { await fetch(`/api/v1/whatsapp/bots/${props.id}/unverify`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ verified: false }), }); }; console.log({ registerData, registerError }); useEffect(() => { if (data && !data?.isVerified) { const interval = setInterval(() => { refresh(); }, 10000); return () => clearInterval(interval); } return undefined; }, [refresh, data]); return ( }> {!data?.isVerified && data?.qrCode && data?.qrCode !== "" && ( )} ); }; export default WhatsappBotShow;