import React, { useState, useEffect } from 'react'; import { Form, InputNumber, DatePicker, Button, Message, Typography, Card } from '@arco-design/web-react'; import '@arco-design/web-react/dist/css/arco.css'; import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; import timezone from 'dayjs/plugin/timezone'; import API_BASE_URL from './config'; dayjs.extend(utc); dayjs.extend(timezone); function SubmitBidPage() { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [localNow, setLocalNow] = useState(''); const [newEnglandNow, setNewEnglandNow] = useState(''); useEffect(() => { const updateTime = () => { const now = dayjs(); const localFormatted = now.format('dddd, MMMM D, h:mm A'); const newEngland = now.tz('America/New_York'); const newEnglandFormatted = newEngland.format('dddd, MMMM D, h:mm A'); setLocalNow(localFormatted); setNewEnglandNow(newEnglandFormatted); }; updateTime(); const interval = setInterval(updateTime, 1000); // update every second return () => clearInterval(interval); }, []); const handleSubmit = async (values) => { setLoading(true); try { const picked = dayjs(values.timestamp); const adjusted = picked.minute(0).second(0).millisecond(0); const payload = { timestamp: adjusted.tz('America/New_York').format(), quantity: values.quantity, price: values.price, user_id: 1 // Hardcoded user id for now }; const res = await fetch(`${API_BASE_URL}/bids/`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) }); if (!res.ok) { const error = await res.json(); throw new Error(error.detail || 'Failed to submit bid'); } Message.success('Bid submitted successfully!'); form.resetFields(); } catch (err) { console.error(err); Message.error(err.message || 'Submission failed'); } finally { setLoading(false); } }; return (
Submit New Bid {/* 🕰️ Show Current Time Info */} Current Local Time: {localNow} Current New England Time: {newEnglandNow}
Array.from({ length: 60 }, (_, i) => i !== 0), step: { minute: 60 } }} style={{ width: '100%' }} format="YYYY-MM-DD HH:00" placeholder="Select date and hour" timezone='America/New_York' disabledMinutes={() => Array.from({ length: 60 }, (_, i) => i !== 0)} /> 0' } ]} > = 0' } ]} >
); } export default SubmitBidPage;