Browse Source

fix: handle alert message & close modal

pull/1/head
wahyun 7 months ago
parent
commit
72e58e3080
  1. 11
      src/views/SimproV2/ResourceWorker/DialogForm.js
  2. 42
      src/views/SimproV2/ResourceWorker/index.js

11
src/views/SimproV2/ResourceWorker/DialogForm.js

@ -3,7 +3,7 @@ import {
Modal, ModalHeader, ModalBody, ModalFooter,
Button, Form, FormGroup, Label, Input, Col, Row
} from 'reactstrap';
import { DatePicker, Tooltip, Select, Input as InputAntd } from 'antd';
import { DatePicker, Select, Input as InputAntd } from 'antd';
import moment from 'moment';
import 'antd/dist/antd.css';
import { formatNumber } from '../../../const/CustomFunc'
@ -223,7 +223,7 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return emailRegex.test(email);
};
const renderForm = () => {
const renderFormAddUser = () => {
return (
<Form>
<Row>
@ -383,7 +383,7 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
)
}
const renderForm2 = () => {
const renderFormSetUser = () => {
return (
<Form>
<Row>
@ -420,19 +420,16 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
</FormGroup>
</Col>
</Row>
</Form>
)
}
return (
<>
<Modal size="lg" isOpen={openDialog} toggle={toggleDialog}>
<ModalHeader className="capitalize" toggle={closeDialog}>{typeDialog == "Save" ? `Add` : "Edit"} {t('hr')}</ModalHeader>
<ModalBody>
{typeDialog !== "Set" ? renderForm() : renderForm2()}
{typeDialog !== "Set" ? renderFormAddUser() : renderFormSetUser()}
</ModalBody>
<ModalFooter>
<Button color="primary" onClick={() => handleSave()}>{typeDialog}</Button>{' '}

42
src/views/SimproV2/ResourceWorker/index.js

@ -460,18 +460,29 @@ const ResourceWorker = ({ params, ...props }) => {
}
const saveUser = async (data) => {
const formData = data
const result = await axios.post(USER_ADD, formData, HEADER)
.then(res => res)
.catch((error) => error.response);
if (result && result.data && result.data.code === 200) {
try {
const result = await axios.post(USER_ADD, data, HEADER);
if (result.data.code === 200) {
getDataUser();
NotificationManager.success(`Data resource berhasil ditambah`, 'Success!!');
} else {
NotificationManager.error(`${result.data.message}`, 'Failed!!');
NotificationManager.error(result.data.message, 'Failed!!');
}
} catch (error) {
if (error.response && error.response.data) {
const errors = error.response.data;
setOpenDialog(true);
for (const [field, messages] of Object.entries(errors)) {
messages.forEach(message => {
NotificationManager.error(message, `Error validation`);
});
}
} else {
setOpenDialog(true);
NotificationManager.error('Internal server error', 'Error!!');
}
}
};
const saveUserShift = async (data) => {
const formData = data
@ -488,20 +499,33 @@ const ResourceWorker = ({ params, ...props }) => {
}
const editUser = async (data) => {
let urlEdit = USER_EDIT(data.id)
const formData = data
try {
const result = await axios.put(urlEdit, formData, HEADER)
.then(res => res)
.catch((error) => error.response);
if (result && result.data && result.data.code === 200) {
getDataUser();
NotificationManager.success(`Data resource berhasil diedit`, 'Success!!');
} else {
NotificationManager.error(`${result.data.message}`, `Failed!!`);
}
} catch (error) {
if (error.response && error.response.data) {
const errors = error.response.data;
setOpenDialog(true);
for (const [field, messages] of Object.entries(errors)) {
messages.forEach(message => {
NotificationManager.error(message, `Error validation`);
});
}
} else {
setOpenDialog(true);
NotificationManager.error('Internal server error', 'Error!!');
}
}
}
const toggleAddDialog = () => {

Loading…
Cancel
Save