Added schedule step. Need to add form

This commit is contained in:
2026-06-29 17:01:52 -04:00
parent 55d54d3810
commit 46f96fc423
4 changed files with 38 additions and 5 deletions
@@ -3,7 +3,12 @@ import styles from './SendMessageWizard.module.css';
import { tokenService } from '../../services/TokenService'; import { tokenService } from '../../services/TokenService';
import { messageApi, CreateMessageRequest } from '../../api/messageApi'; import { messageApi, CreateMessageRequest } from '../../api/messageApi';
function MessageForm({ message, onMessageChange, onMessageCreated, onToggleScheduled }) { function MessageForm({
message,
onMessageChange,
onMessageCreated,
onToggleScheduled,
}) {
const [characterCount, setCharacterCount] = useState(message.length); const [characterCount, setCharacterCount] = useState(message.length);
const [isCreatingMessage, setIsCreatingMessage] = useState(false); const [isCreatingMessage, setIsCreatingMessage] = useState(false);
const [isScheduledChecked, setIsScheduledChecked] = useState(false); const [isScheduledChecked, setIsScheduledChecked] = useState(false);
@@ -106,7 +111,7 @@ function MessageForm({ message, onMessageChange, onMessageCreated, onToggleSched
</div> </div>
<div> <div>
<label> <label>
<input <input
type="checkbox" type="checkbox"
checked={isScheduledChecked} checked={isScheduledChecked}
onChange={handleIsScheduledCheckbox} onChange={handleIsScheduledCheckbox}
@@ -29,6 +29,8 @@ function SendMessageWizardModal({ isOpen, onClose, onComplete }) {
onToggleScheduled={wizard.toggleScheduled} onToggleScheduled={wizard.toggleScheduled}
/> />
); );
case 'schedule':
// TODO: Add form for schedule step
case 'confirm': case 'confirm':
return ( return (
<ConfirmationStep <ConfirmationStep
@@ -75,6 +77,7 @@ function SendMessageWizardModal({ isOpen, onClose, onComplete }) {
const stepTitles = { const stepTitles = {
select: 'Select Contacts', select: 'Select Contacts',
message: 'Compose Message', message: 'Compose Message',
schedule: 'Schedule message',
confirm: 'Review & Send', confirm: 'Review & Send',
result: 'Result', result: 'Result',
}; };
@@ -34,6 +34,25 @@ function StepNavigation({
</button> </button>
</> </>
); );
case 'schedule':
return (
<>
<button
onClick={onBack}
disabled={!canGoBack}
className={`${styles.navButton} ${styles.backButton}`}
>
Back
</button>
<button
onClick={onNext}
disabled={!canProceed}
className={`${styles.navButton} ${styles.nextButton}`}
>
{currentStep === 'select' ? 'Next' : 'Review'}
</button>
</>
);
case 'confirm': case 'confirm':
return ( return (
<> <>
@@ -26,6 +26,9 @@ const useSendMessageWizard = () => {
return state.selectedContacts.length > 0; return state.selectedContacts.length > 0;
case 'message': case 'message':
return state.message.trim().length > 0; return state.message.trim().length > 0;
case 'schedule':
// TODO: Handle this
return false;
case 'confirm': case 'confirm':
return true; return true;
default: default:
@@ -49,7 +52,7 @@ const useSendMessageWizard = () => {
console.log('Yup'); console.log('Yup');
setState((prev) => ({ setState((prev) => ({
...prev, ...prev,
isScheduled: scheduled isScheduled: scheduled,
})); }));
}; };
@@ -72,7 +75,9 @@ const useSendMessageWizard = () => {
console.log('Scheduled Checked'); console.log('Scheduled Checked');
} }
const stepOrder = ['select', 'message', 'confirm', 'result']; // TODO: Handle navigation for schedule form
const stepOrder = ['select', 'message', 'schedule', 'confirm', 'result'];
const currentIndex = stepOrder.indexOf(state.step); const currentIndex = stepOrder.indexOf(state.step);
if (currentIndex < stepOrder.length - 1) { if (currentIndex < stepOrder.length - 1) {
setState((prev) => ({ setState((prev) => ({
@@ -84,7 +89,8 @@ const useSendMessageWizard = () => {
}; };
const prevStep = () => { const prevStep = () => {
const stepOrder = ['select', 'message', 'confirm', 'result']; // TODO: Handle navigation for schedule form
const stepOrder = ['select', 'message', 'schedule', 'confirm', 'result'];
const currentIndex = stepOrder.indexOf(state.step); const currentIndex = stepOrder.indexOf(state.step);
if (currentIndex > 0) { if (currentIndex > 0) {
setState((prev) => ({ setState((prev) => ({