import React, { useEffect, useState } from "react"; import { Card, Typography, Grid, Button, TextField as MaterialTextField, IconButton, } from "@material-ui/core"; import { Show, SimpleShowLayout, TextField, ShowProps, useQuery, useMutation, useRefresh, BooleanField, } from "react-admin"; import QRCode from "react-qr-code"; import useSWR from "swr"; import RefreshIcon from "@material-ui/icons/Refresh"; const Sidebar = ({ record }) => { 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) => ( {receivedMessage.key.remoteJid.replace("@s.whatsapp.net", "")} {receivedMessage.message.conversation} ))} ); }; const WhatsappBotShow = (props: ShowProps) => { const refresh = useRefresh(); const { data } = useQuery({ type: "getOne", resource: "whatsappBots", payload: { 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); } }, [refresh, data]); return ( // @ts-expect-error: Missing props }> {!data?.isVerified && data?.qrCode && data?.qrCode !== "" && ( )} ); }; export default WhatsappBotShow;