Added schedule step. Need to add form
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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) => ({
|
||||||
|
|||||||
Reference in New Issue
Block a user