Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3538 | Rev 3544 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3538 stevensc 1
import React, { createContext, useCallback, useState } from 'react';
2
 
3
export const AlertModalContext = createContext({
4
  show: false,
5
  message: '',
6
  onConfirm: () => {},
7
  onCancel: () => {},
8
  showAlert: () => {},
9
  closeAlert: () => {}
10
});
11
 
3539 stevensc 12
export function AlertModalProvider({ children }) {
3538 stevensc 13
  const [show, setShow] = useState(false);
14
  const [message, setMessage] = useState('');
15
  const [onConfirm, setOnConfirm] = useState(() => {});
16
  const [onCancel, setOnCancel] = useState(() => {});
17
 
18
  const showAlert = useCallback(({ message = '', onConfirm = () => {}, onCancel = () => {} }) => {
19
    setMessage(message);
20
    setOnConfirm(onConfirm);
21
    setOnCancel(onCancel);
22
    setShow(true);
23
  }, []);
24
 
25
  const closeAlert = useCallback(() => {
26
    setMessage('');
27
    setShow(false);
28
  }, []);
29
 
30
  return (
31
    <AlertModalContext.Provider
32
      value={{
33
        show,
34
        message,
35
        showAlert,
36
        closeAlert,
37
        onConfirm,
38
        onCancel: onCancel || closeAlert
39
      }}
40
    >
41
      {children}
42
    </AlertModalContext.Provider>
43
  );
44
}