Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15412 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 15412 Rev 16646
Línea 1... Línea 1...
1
import React from 'react'
1
import React from "react";
2
import axios from 'axios'
2
import axios from "axios";
3
import { Modal } from 'react-bootstrap'
3
import { Modal } from "react-bootstrap";
4
import { useDispatch } from 'react-redux'
4
import { useDispatch } from "react-redux";
5
import { addNotification } from '../redux/notification/notification.actions'
5
import { addNotification } from "../redux/notification/notification.actions";
Línea 6... Línea 6...
6
 
6
 
7
const DeleteModal = ({
7
const DeleteModal = ({
8
	isOpen = false,
8
  isOpen = false,
9
	closeModal = function () { },
9
  closeModal = function () {},
10
	title = 'Estas seguro?',
10
  title = "Estas seguro?",
11
	action,
11
  action,
12
	onComplete,
12
  onComplete,
13
	url,
13
  url,
14
	message
14
  message,
-
 
15
}) => {
Línea -... Línea 16...
-
 
16
  const dispatch = useDispatch();
-
 
17
 
-
 
18
  const onSubmit = () => {
-
 
19
    if (!url && action) {
-
 
20
      dispatch(action());
-
 
21
      closeModal();
-
 
22
      return;
-
 
23
    }
-
 
24
 
-
 
25
    if (!url && onComplete) {
-
 
26
      onComplete();
-
 
27
      closeModal();
-
 
28
      return;
-
 
29
    }
-
 
30
 
-
 
31
    axios
-
 
32
      .post(url)
-
 
33
      .then(({ data }) => {
-
 
34
        if (!data.success) {
-
 
35
          typeof data.data === "string"
-
 
36
            ? dispatch(addNotification({ style: "danger", msg: data.data }))
15
}) => {
37
            : Object.entries(data.data).map(([key, value]) =>
-
 
38
                value.map((err) =>
-
 
39
                  dispatch(
-
 
40
                    addNotification({ style: "danger", msg: `${key}: ${err}` })
-
 
41
                  )
-
 
42
                )
-
 
43
              );
-
 
44
          return;
-
 
45
        }
-
 
46
 
-
 
47
        action && dispatch(action());
-
 
48
        onComplete && onComplete();
-
 
49
 
-
 
50
        closeModal();
-
 
51
 
-
 
52
        dispatch(
-
 
53
          addNotification({
-
 
54
            style: "success",
-
 
55
            msg: message ? message : "Se ha eliminado con exito",
-
 
56
          })
-
 
57
        );
-
 
58
      })
-
 
59
      .catch(() =>
-
 
60
        dispatch(
-
 
61
          addNotification({
-
 
62
            style: "danger",
-
 
63
            msg: "Ha ocurrido un error",
-
 
64
          })
-
 
65
        )
-
 
66
      );
-
 
67
  };
-
 
68
 
-
 
69
  return (
-
 
70
    <Modal size="sm" show={isOpen} onHide={closeModal} autoFocus={false}>
-
 
71
      <Modal.Body>
-
 
72
        <h3>{title}</h3>
-
 
73
      </Modal.Body>
-
 
74
      <Modal.Footer>
-
 
75
        <button className="btn btn-primary" onClick={onSubmit}>
-
 
76
-
 
77
        </button>
-
 
78
        <button className="btn btn-secondary" onClick={closeModal}>
-
 
79
          No
-
 
80
        </button>
-
 
81
      </Modal.Footer>
-
 
82
    </Modal>
Línea 16... Línea -...
16
 
-
 
17
	const dispatch = useDispatch()
-
 
18
 
-
 
19
	const onSubmit = () => {
-
 
20
		if (!url && action) {
-
 
21
			dispatch(action())
-
 
22
			closeModal()
-
 
23
			return
-
 
24
		}
-
 
25
 
-
 
26
		if (!url && onComplete) {
-
 
27
			onComplete()
-
 
28
			closeModal()
-
 
29
			return
-
 
30
		}
-
 
31
 
-
 
32
		axios.post(url)
-
 
33
			.then(({ data }) => {
-
 
34
				if (!data.success) {
-
 
35
					typeof data.data === 'string'
-
 
36
						? dispatch(addNotification({ style: 'danger', msg: data.data }))
-
 
37
						: Object
-
 
38
							.entries(data.data)
-
 
39
							.map(([key, value]) => value.map(err => dispatch(addNotification({ style: 'danger', msg: `${key}: ${err}` }))))
-
 
40
					return
-
 
41
				}
-
 
42
 
-
 
43
				action && dispatch(action())
-
 
44
				onComplete && onComplete()
-
 
45
 
-
 
46
				closeModal()
-
 
47
 
-
 
48
				dispatch(addNotification({
-
 
49
					style: 'success',
-
 
50
					msg: message ? message : 'Se ha eliminado con exito'
-
 
51
				}))
-
 
52
			})
-
 
53
			.catch(() => dispatch(addNotification({
-
 
54
				style: 'danger',
-
 
55
				msg: 'Ha ocurrido un error'
-
 
56
			})))
-
 
57
	}
-
 
58
 
-
 
59
	return (
-
 
60
		<Modal
-
 
61
			size="md"
-
 
62
			show={isOpen}
-
 
63
			onHide={closeModal}
-
 
64
			autoFocus={false}
-
 
65
		>
-
 
66
			<Modal.Body>
-
 
67
				<h3>{title}</h3>
-
 
68
			</Modal.Body>
-
 
69
			<Modal.Footer>
-
 
70
				<button
-
 
71
					className='btn btn-primary'
-
 
72
					onClick={onSubmit}>
-
 
73
-
 
74
				</button>
-
 
75
				<button
-
 
76
					className='btn btn-secondary'
-
 
77
					onClick={closeModal}>
-
 
78
					No
-
 
79
				</button>
-
 
80
			</Modal.Footer>
-
 
81
		</Modal >
-
 
82
	)
-
 
83
}
83
  );
-
 
84
};