Added checkbox to trigger scheduling form
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user