Added checkbox to trigger scheduling form

This commit is contained in:
2026-06-29 16:53:39 -04:00
parent cea2d0cf42
commit 55d54d3810
3 changed files with 41 additions and 1 deletions
@@ -3,9 +3,10 @@ import styles from './SendMessageWizard.module.css';
import { tokenService } from '../../services/TokenService';
import { messageApi, CreateMessageRequest } from '../../api/messageApi';
function MessageForm({ message, onMessageChange, onMessageCreated }) {
function MessageForm({ message, onMessageChange, onMessageCreated, onToggleScheduled }) {
const [characterCount, setCharacterCount] = useState(message.length);
const [isCreatingMessage, setIsCreatingMessage] = useState(false);
const [isScheduledChecked, setIsScheduledChecked] = useState(false);
const [createdMessage, setCreatedMessage] = useState(null);
const handleMessageChange = (e) => {
@@ -14,6 +15,12 @@ function MessageForm({ message, onMessageChange, onMessageCreated }) {
setCharacterCount(newMessage.length);
};
const handleIsScheduledCheckbox = (event) => {
console.log('Doing something to the checkbox');
setIsScheduledChecked(event.target.checked);
onToggleScheduled(event.target.checked);
};
const createMessage = async () => {
if (!message.trim()) {
return;
@@ -97,6 +104,17 @@ function MessageForm({ message, onMessageChange, onMessageCreated }) {
<li>Check spelling and grammar</li>
</ul>
</div>
<div>
<label>
<input
type="checkbox"
checked={isScheduledChecked}
onChange={handleIsScheduledCheckbox}
readOnly
/>
Schedule Message
</label>
</div>
</div>
);
}
@@ -26,6 +26,7 @@ function SendMessageWizardModal({ isOpen, onClose, onComplete }) {
message={wizard.message}
onMessageChange={wizard.setMessage}
onMessageCreated={wizard.setCreatedMessage}
onToggleScheduled={wizard.toggleScheduled}
/>
);
case 'confirm':
@@ -13,6 +13,7 @@ const useSendMessageWizard = () => {
message: '',
createdMessage: null,
isSubmitting: false,
isScheduled: false,
submissionError: null,
});
@@ -44,6 +45,14 @@ const useSendMessageWizard = () => {
}));
};
const toggleScheduled = (scheduled) => {
console.log('Yup');
setState((prev) => ({
...prev,
isScheduled: scheduled
}));
};
const setMessage = (message) => {
setState((prev) => ({ ...prev, message }));
};
@@ -56,6 +65,13 @@ const useSendMessageWizard = () => {
const nextStep = () => {
if (!canProceedToNextStep()) return;
console.log('Going to next step');
console.log(state.isScheduled);
if (state.isScheduled) {
console.log('Scheduled Checked');
}
const stepOrder = ['select', 'message', 'confirm', 'result'];
const currentIndex = stepOrder.indexOf(state.step);
if (currentIndex < stepOrder.length - 1) {
@@ -109,6 +125,7 @@ const useSendMessageWizard = () => {
...prev,
step: 'result',
isSubmitting: false,
isScheduled: false,
}));
}
} catch (error) {
@@ -121,6 +138,7 @@ const useSendMessageWizard = () => {
...prev,
submissionError: error.message || 'Failed to send messages',
isSubmitting: false,
isScheduled: false,
}));
}
};
@@ -133,6 +151,7 @@ const useSendMessageWizard = () => {
message: '',
createdMessage: null,
isSubmitting: false,
isScheduled: false,
submissionError: null,
});
};
@@ -149,12 +168,14 @@ const useSendMessageWizard = () => {
message: state.message,
createdMessage: state.createdMessage,
isSubmitting: state.isSubmitting,
isScheduled: state.isScheduled,
submissionError: state.submissionError,
canProceedToNextStep: canProceedToNextStep(),
canGoBack,
// Actions
toggleContact,
toggleScheduled,
setMessage,
setCreatedMessage,
nextStep,