Code cleanup
This commit is contained in:
@@ -3,7 +3,6 @@ import { API_BASE_URL } from '../constants/api';
|
||||
export const scheduleApi = {
|
||||
scheduleMessage: async (reqBody, authBearerToken) => {
|
||||
console.log('Scheduling message');
|
||||
console.log(`Request body: ${reqBody}`);
|
||||
|
||||
const response = await fetch(`${API_BASE_URL}/api/v1/schedule/message`, {
|
||||
method: 'POST',
|
||||
@@ -23,7 +22,6 @@ export const scheduleApi = {
|
||||
|
||||
prepareMessage: async (reqBody, authBearerToken) => {
|
||||
console.log('Preparing Scheduled message');
|
||||
console.log(`Request body: ${reqBody}`);
|
||||
|
||||
const response = await fetch(
|
||||
`${API_BASE_URL}/api/v1/schedule/message/status/update`,
|
||||
@@ -44,19 +42,3 @@ export const scheduleApi = {
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* "scheduled": "{{scheduling_time}}",
|
||||
"status": "{{status_pending}}",
|
||||
"user_id": "{{user_id}}"
|
||||
*/
|
||||
|
||||
/*
|
||||
*
|
||||
*
|
||||
* {
|
||||
"scheduled_message_id": "{{scheduled_message_id}}",
|
||||
"status": "{{status_ready}}"
|
||||
}
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -4,7 +4,6 @@ export const scheduleEventApi = {
|
||||
scheduleMessageEvent: async (reqBody, authBearerToken) => {
|
||||
console.log('Scheduling message Event');
|
||||
|
||||
console.log(`Request body: ${reqBody}`);
|
||||
const response = await fetch(
|
||||
`${API_BASE_URL}/api/v1/schedule/message/event`,
|
||||
{
|
||||
@@ -24,13 +23,3 @@ export const scheduleEventApi = {
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
|
||||
{
|
||||
"contact_id": "{{contact_id}}",
|
||||
"message_id": "{{message_id}}",
|
||||
"scheduled_message_id": "{{scheduled_message_id}}"
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -89,9 +89,10 @@ function ConfirmationStep({
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{ /* Scheduled time Section */}
|
||||
{/* Scheduled time Section */}
|
||||
<div>
|
||||
Scheduled time: {scheduledTime ? scheduledTime.toISOString() : 'No schedule date'}
|
||||
Scheduled time:{' '}
|
||||
{scheduledTime ? scheduledTime.toISOString() : 'No schedule date'}
|
||||
</div>
|
||||
|
||||
{/* Summary Section */}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useState } from 'react';
|
||||
|
||||
function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
||||
function FutureTimeForm({ scheduledTime, setScheduledTime }) {
|
||||
const [selectedTime, setSelectedTime] = useState(new Date());
|
||||
const [error, setError] = useState('');
|
||||
const [success, setSuccess] = useState('');
|
||||
@@ -8,9 +8,6 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
||||
const handleTimeChange = (e) => {
|
||||
setSelectedTime(e.target.value);
|
||||
setScheduledTime(new Date(e.target.value));
|
||||
// Clear errors when user starts typing again
|
||||
console.log(`Scheduled Time: ${scheduledTime}`)
|
||||
console.log(`Selected Time: ${selectedTime}`)
|
||||
setError('');
|
||||
setSuccess('');
|
||||
};
|
||||
@@ -23,11 +20,9 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Time: ${selectedTime}`)
|
||||
|
||||
const now = new Date();
|
||||
const inputDate = new Date(selectedTime);
|
||||
|
||||
|
||||
// Calculate the minimum allowed time (Now + 10 minutes)
|
||||
const minAllowedTime = new Date(now.getTime() + 10 * 60000);
|
||||
|
||||
@@ -39,44 +34,49 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
||||
setError('');
|
||||
setSuccess('Time validated successfully!');
|
||||
setScheduledTime(inputDate);
|
||||
console.log('Form submitted with time (selected):', selectedTime);
|
||||
console.log('Form submitted with time (scheduled):', scheduledTime);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div style={{ maxWidth: '400px', margin: '2rem auto', fontFamily: 'Arial' }}>
|
||||
<div
|
||||
style={{ maxWidth: '400px', margin: '2rem auto', fontFamily: 'Arial' }}
|
||||
>
|
||||
<h2>Schedule Event</h2>
|
||||
<form onSubmit={validateAndSubmit}>
|
||||
<div style={{ marginBottom: '1rem' }}>
|
||||
<label htmlFor="future-time" style={{ display: 'block', marginBottom: '0.5rem' }}>
|
||||
<label
|
||||
htmlFor="future-time"
|
||||
style={{ display: 'block', marginBottom: '0.5rem' }}
|
||||
>
|
||||
Select Date and Time:
|
||||
</label>
|
||||
<input
|
||||
type="datetime-local"
|
||||
<input
|
||||
type="datetime-local"
|
||||
id="future-time"
|
||||
value={selectedTime}
|
||||
onChange={handleTimeChange}
|
||||
style={{
|
||||
padding: '8px',
|
||||
width: '100%',
|
||||
borderColor: error ? 'red' : '#ccc'
|
||||
}}
|
||||
value={selectedTime}
|
||||
onChange={handleTimeChange}
|
||||
style={{
|
||||
padding: '8px',
|
||||
width: '100%',
|
||||
borderColor: error ? 'red' : '#ccc',
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{error && <p style={{ color: 'red', fontSize: '0.9rem' }}>{error}</p>}
|
||||
{success && <p style={{ color: 'green', fontSize: '0.9rem' }}>{success}</p>}
|
||||
{success && (
|
||||
<p style={{ color: 'green', fontSize: '0.9rem' }}>{success}</p>
|
||||
)}
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
style={{
|
||||
padding: '10px 20px',
|
||||
backgroundColor: '#007BFF',
|
||||
color: 'white',
|
||||
border: 'none',
|
||||
borderRadius: '4px',
|
||||
cursor: 'pointer'
|
||||
<button
|
||||
type="submit"
|
||||
style={{
|
||||
padding: '10px 20px',
|
||||
backgroundColor: '#007BFF',
|
||||
color: 'white',
|
||||
border: 'none',
|
||||
borderRadius: '4px',
|
||||
cursor: 'pointer',
|
||||
}}
|
||||
>
|
||||
Submit
|
||||
@@ -84,6 +84,6 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
||||
</form>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
export default FutureTimeForm;
|
||||
|
||||
@@ -21,7 +21,6 @@ function MessageForm({
|
||||
};
|
||||
|
||||
const handleIsScheduledCheckbox = (event) => {
|
||||
console.log('Doing something to the checkbox');
|
||||
setIsScheduledChecked(event.target.checked);
|
||||
onToggleScheduled(event.target.checked);
|
||||
};
|
||||
@@ -50,10 +49,8 @@ function MessageForm({
|
||||
const createdMessage = response.data[0];
|
||||
setCreatedMessage(createdMessage);
|
||||
if (onMessageCreated) {
|
||||
console.log('Setting createdMessage');
|
||||
onMessageCreated(createdMessage);
|
||||
}
|
||||
console.log('Created message: ', createdMessage);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
@@ -31,12 +31,11 @@ function SendMessageWizardModal({ isOpen, onClose, onComplete }) {
|
||||
/>
|
||||
);
|
||||
case 'schedule':
|
||||
// TODO: Add form for schedule step
|
||||
return (
|
||||
<FutureTimeForm
|
||||
<FutureTimeForm
|
||||
scheduledTime={wizard.scheduledTime}
|
||||
setScheduledTime={wizard.setScheduledTime}
|
||||
/>
|
||||
/>
|
||||
);
|
||||
case 'confirm':
|
||||
return (
|
||||
|
||||
@@ -30,27 +30,27 @@ const useSendMessageWizard = () => {
|
||||
case 'message':
|
||||
return state.message.trim().length > 0;
|
||||
case 'schedule':
|
||||
// TODO: Handle this
|
||||
// return state.scheduledTime != null;
|
||||
console.log('Checking to see if schedule can go to the next step');
|
||||
console.log(state.scheduledTime);
|
||||
console.log(state.message);
|
||||
// const result = state.scheduledTime instanceof Date && isNaN(state.scheduledTime.getTime());
|
||||
if (state.scheduledTime == null) {
|
||||
return false;
|
||||
}
|
||||
console.log('Scheduled time is not null');
|
||||
// const result = isNaN(state.scheduledTime.getTime());
|
||||
const result = state.scheduledTime instanceof Date && isNaN(state.scheduledTime.getTime());
|
||||
console.log(result);
|
||||
console.log(state.scheduledTime);
|
||||
const result =
|
||||
state.scheduledTime instanceof Date &&
|
||||
isNaN(state.scheduledTime.getTime());
|
||||
|
||||
return !result;
|
||||
case 'confirm':
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}, [state.step, state.selectedContacts.length, state.message, state.scheduledTime]);
|
||||
}, [
|
||||
state.step,
|
||||
state.selectedContacts.length,
|
||||
state.message,
|
||||
state.scheduledTime,
|
||||
]);
|
||||
|
||||
const canGoBack = state.step !== 'select';
|
||||
|
||||
@@ -89,17 +89,6 @@ const useSendMessageWizard = () => {
|
||||
const nextStep = () => {
|
||||
if (!canProceedToNextStep()) return;
|
||||
|
||||
console.log('Going to next step');
|
||||
console.log(state.isScheduled);
|
||||
|
||||
if (state.isScheduled) {
|
||||
console.log('Scheduled Checked');
|
||||
}
|
||||
|
||||
console.log(`Step: ${state.step}`);
|
||||
|
||||
// TODO: Handle navigation for schedule form
|
||||
|
||||
const stepOrder = ['select', 'message', 'schedule', 'confirm', 'result'];
|
||||
const currentIndex = stepOrder.indexOf(state.step);
|
||||
if (currentIndex < stepOrder.length - 1) {
|
||||
@@ -128,10 +117,8 @@ const useSendMessageWizard = () => {
|
||||
};
|
||||
|
||||
const prevStep = () => {
|
||||
// TODO: Handle navigation for schedule form
|
||||
const stepOrder = ['select', 'message', 'schedule', 'confirm', 'result'];
|
||||
const currentIndex = stepOrder.indexOf(state.step);
|
||||
console.log(`Stepping back: ${state.step} isSheduled: ${state.isScheduled}`);
|
||||
|
||||
if (currentIndex > 0) {
|
||||
if (state.step === 'confirm') {
|
||||
@@ -172,19 +159,18 @@ const useSendMessageWizard = () => {
|
||||
try {
|
||||
if (state.scheduledTime != null) {
|
||||
console.log('Going to schedule message');
|
||||
// TODO: Put code here to schedule message
|
||||
|
||||
const schMsgReq = {
|
||||
scheduled: state.scheduledTime.toISOString(),
|
||||
status: 'PENDING',
|
||||
user_id: tokenService.getUserId()
|
||||
user_id: tokenService.getUserId(),
|
||||
};
|
||||
|
||||
console.log(schMsgReq);
|
||||
|
||||
const token = tokenService.bearerToken();
|
||||
|
||||
const schMsgResponse = await scheduleApi.scheduleMessage(schMsgReq, token);
|
||||
console.log(schMsgResponse);
|
||||
const schMsgResponse = await scheduleApi.scheduleMessage(
|
||||
schMsgReq,
|
||||
token
|
||||
);
|
||||
|
||||
if (schMsgResponse) {
|
||||
console.log('Message scheduled');
|
||||
@@ -193,18 +179,18 @@ const useSendMessageWizard = () => {
|
||||
for (let contact of state.selectedContacts) {
|
||||
let schMsgEvtReq = {
|
||||
contact_id: contact,
|
||||
message_id:state.createdMessage.id,
|
||||
message_id: state.createdMessage.id,
|
||||
scheduled_message_id: scheduledMessageId,
|
||||
};
|
||||
console.log(schMsgEvtReq);
|
||||
const schMsgEvtResponse = await scheduleEventApi.scheduleMessageEvent(schMsgEvtReq, token);
|
||||
console.log(schMsgEvtResponse);
|
||||
|
||||
const schMsgEvtResponse =
|
||||
await scheduleEventApi.scheduleMessageEvent(schMsgEvtReq, token);
|
||||
}
|
||||
|
||||
console.log('Updating message status');
|
||||
const req = {
|
||||
scheduled_message_id: scheduledMessageId,
|
||||
status: 'READY'
|
||||
status: 'READY',
|
||||
};
|
||||
console.log(req);
|
||||
const response = await scheduleApi.prepareMessage(req, token);
|
||||
@@ -254,7 +240,7 @@ const useSendMessageWizard = () => {
|
||||
submissionError: error.message || 'Failed to send messages',
|
||||
isSubmitting: false,
|
||||
isScheduled: false,
|
||||
scheduledTime: null,
|
||||
scheduledTime: null,
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user