mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-23 14:55:44 +00:00
fix: add form validation for configuration form
This commit is contained in:
+36
-8
@@ -69,6 +69,7 @@ export function MasterConfigurationContent() {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const [isFormInvalid, setIsFormInvalid] = useState(false);
|
||||||
const [showModal, setShowModal] = useState(false);
|
const [showModal, setShowModal] = useState(false);
|
||||||
const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);
|
const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);
|
||||||
const [configurationToDelete, setConfigurationToDelete] = useState<
|
const [configurationToDelete, setConfigurationToDelete] = useState<
|
||||||
@@ -173,6 +174,26 @@ export function MasterConfigurationContent() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
Number(configurationForm.percentage_threshold_enough) >= 100 ||
|
||||||
|
Number(configurationForm.percentage_threshold_bad) >= 100
|
||||||
|
) {
|
||||||
|
setIsFormInvalid(true);
|
||||||
|
toast.error('Persentase threshold tidak boleh lebih dari 100');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
Number(configurationForm.percentage_threshold_enough) <=
|
||||||
|
Number(configurationForm.percentage_threshold_bad) + 1
|
||||||
|
) {
|
||||||
|
setIsFormInvalid(true);
|
||||||
|
toast.error(
|
||||||
|
'Persentase threshold "kurang" harus lebih kecil dari persentase threshold "cukup"'
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -443,14 +464,18 @@ export function MasterConfigurationContent() {
|
|||||||
type='number'
|
type='number'
|
||||||
id='percentageThresholdBad'
|
id='percentageThresholdBad'
|
||||||
value={configurationForm.percentage_threshold_bad}
|
value={configurationForm.percentage_threshold_bad}
|
||||||
onChange={(e) =>
|
onChange={(e) => {
|
||||||
|
setIsFormInvalid(false);
|
||||||
|
|
||||||
setConfigurationForm({
|
setConfigurationForm({
|
||||||
...configurationForm,
|
...configurationForm,
|
||||||
percentage_threshold_bad: e.target.value,
|
percentage_threshold_bad: e.target.value,
|
||||||
})
|
});
|
||||||
}
|
}}
|
||||||
placeholder='Kurang'
|
placeholder='Kurang'
|
||||||
className='w-20'
|
className={cn('w-20', {
|
||||||
|
'border-red-500': isFormInvalid,
|
||||||
|
})}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
max={100}
|
max={100}
|
||||||
/>
|
/>
|
||||||
@@ -476,14 +501,17 @@ export function MasterConfigurationContent() {
|
|||||||
type='number'
|
type='number'
|
||||||
id='percentageThresholdEnough'
|
id='percentageThresholdEnough'
|
||||||
value={configurationForm.percentage_threshold_enough}
|
value={configurationForm.percentage_threshold_enough}
|
||||||
onChange={(e) =>
|
onChange={(e) => {
|
||||||
|
setIsFormInvalid(false);
|
||||||
setConfigurationForm({
|
setConfigurationForm({
|
||||||
...configurationForm,
|
...configurationForm,
|
||||||
percentage_threshold_enough: e.target.value,
|
percentage_threshold_enough: e.target.value,
|
||||||
})
|
});
|
||||||
}
|
}}
|
||||||
placeholder='Cukup'
|
placeholder='Cukup'
|
||||||
className='w-20'
|
className={cn('w-20', {
|
||||||
|
'border-red-500': isFormInvalid,
|
||||||
|
})}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
min={Number(configurationForm.percentage_threshold_bad) + 1}
|
min={Number(configurationForm.percentage_threshold_bad) + 1}
|
||||||
max={100}
|
max={100}
|
||||||
|
|||||||
Reference in New Issue
Block a user