{"version":3,"sources":["utils/history.js","helpers/empresa.js","react-auth0-spa.js","components/NavMenu.js","components/Layout.js","helpers/weatherForecast.js","components/FetchData.js","images/logo-mis-tareas-light.png","images/logo-mis-tareas-dark.png","images/logo-mis-tareas-light.webp","images/logo-mis-tareas-dark.webp","components/Home/index.js","helpers/servicios.js","components/fullScreenDialog.js","components/fabButton.js","components/Servicios/nuevoServicio.js","components/customTable.js","components/customDialog.js","components/customSnackbar.js","components/Servicios/index.js","helpers/tipoTareas.js","components/TipoTareas/nuevoTipoTarea.js","components/TipoTareas/index.js","components/Empresa/nuevoUsuarioEmpresa.js","components/sdButton.js","components/Empresa/index.js","components/Empresa/datosEmpresa.js","helpers/localidades.js","components/Localidades/nuevaLocalidad.js","helpers/provincias.js","components/Localidades/index.js","components/Personas/botonesAccionesTabla.js","components/Personas/tabla.js","helpers/persona.js","components/Personas/nuevaPersona.js","components/Personas/index.js","components/customBasicCard.js","helpers/tareas.js","helpers/estadoTareas.js","components/Tareas/visualizarObservaciones.js","components/customAutocomplete.js","components/customTabs.js","components/Tareas/nuevaTarea.js","components/Tareas/botonesAccionesTabla.js","components/Tareas/tabla.js","components/Tareas/indexTabla.js","utils/dias.js","utils/tareas.js","components/Tareas/styledComponents.js","components/Tareas/panel-movil.js","utils/semanas.js","components/Tareas/panel.js","components/Tareas/indexAgenda.js","helpers/notificaciones.js","components/activarNotificacion.js","components/Configuracion/index.js","components/Home/usersSinEmpresa.js","components/common/PrivateRoute.js","customTheme.js","App.js","serviceWorkerRegistration.js","reportWebVitals.js","helpers/settings.js","index.js"],"names":["createBrowserHistory","getUsuarioSinEmpresa","usuario","token","a","fetch","sub","headers","Authorization","response","ok","console","error","getUsuarioEmpresa","getEmpresaActual","user","json","data","putEmpresa","empresa","nombreEmpresa","toUpperCase","empresaID","method","body","JSON","stringify","getTipoPermisos","getPermisosUsuarios","GetPermisoUsuarioActual","status","postPermisoUsuario","permisoUsuario","putPermisoUsuario","permisoUsuarioID","activarDesactivarPermisoUsuario","imagenEmpresa","Error","text","logoEmpresa","getUser","registrarUsuarioAuth0","email","DEFAULT_REDIRECT_CALLBACK","window","history","replaceState","document","title","location","pathname","Auth0Context","React","createContext","useAuth0","useContext","Auth0Provider","children","onRedirectCallback","initOptions","useState","isAuthenticated","setIsAuthenticated","setUser","auth0Client","setAuth0","loading","setLoading","popupOpen","setPopupOpen","useEffect","initAuth0","createAuth0Client","auth0FromHook","search","includes","handleRedirectCallback","appState","loginWithPopup","params","Provider","value","getIdTokenClaims","loginWithRedirect","getTokenSilently","getTokenWithPopup","logout","pages","NavMenu","handleTheme","anchorElNav","setAnchorElNav","anchorElUser","setAnchorElUser","archivos","setArchivos","usuarioTareas","setUsuarioTareas","useLocation","logo","theme","useTheme","useHistory","respuesta","current","GetUser","GetLogo","BuscarPermisoUsuarioActual","then","respuestaPermiso","permisoID","handleOpenArchivos","event","currentTarget","handleCloseNavMenu","handleCloseUserMenu","handleCloseArchivos","AppBar","position","maxWidth","Toolbar","disableGutters","Typography","variant","noWrap","component","sx","mr","display","xs","md","cursor","onClick","push","src","alt","className","Box","flexGrow","IconButton","size","color","Menu","id","anchorEl","anchorOrigin","vertical","horizontal","keepMounted","transformOrigin","open","Boolean","onClose","palette","mode","Button","mx","my","textTransform","fontSize","opacity","transition","transform","map","page","MenuItem","Link","to","textAlign","mt","Tooltip","p","width","picture","style","height","borderRadius","ListItemIcon","Divider","Layout","toggleTheme","showMenu","props","Container","baseUrl","getWeatherForecast","Accept","FetchData","forecasts","setForecasts","populateWeatherData","log","contents","forecast","date","temperatureC","temperatureF","summary","renderForecastsTable","Home","imagen","setImage","img","GetImagen","srcSet","LogoDarkWebp","LogoLightWebp","type","LogoDark","LogoLight","getServicios","postServicio","servicio","fechaServicio","moment","toDate","titulo","putServicio","servicioID","deleteServicio","checkServicio","activarNotificacion","activar","Number","Transition","ref","Slide","direction","FullScreenDialog","handleClose","actions","matches","formularioRef","useMediaQuery","Dialog","fullScreen","fullWidth","scroll","TransitionComponent","edge","ml","flex","DialogContent","dividers","pb","DialogActions","justifyContent","index","startIcon","label","FloatingActionButtons","bottom","fabStyle","right","zIndex","Fab","NuevoServicio","servicioSeleccionado","guardarServicio","setServicio","handleChange","evento","target","name","guardar","e","preventDefault","result","flexWrap","autoComplete","onSubmit","TextField","required","autoFocus","margin","onChange","inputProps","defaultValue","format","StyledTableCell","styled","TableCell","match_md","breakpoints","up","tableCellClasses","head","backgroundColor","primary","main","common","white","padding","spacing","fontWeight","StyledTableRow","TableRow","border","tableRowClasses","root","grey","agrupadosTabla","danger","filter","textDecoration","textDecorationColor","CustomTable","TableContainer","Paper","Table","TableHead","header","TableBody","CustomDialog","show","buttons","setOpen","handleClickOpen","DialogTitle","DialogContentText","paragraph","button","Alert","elevation","CustomSnackbar","mensaje","tipo","Stack","Snackbar","autoHideDuration","severity","Servicios","openDialog","setOpenDialog","initialCustomDialog","customDialog","setCustomDialog","undefined","customSnackbar","setCustomSnackbar","servicios","setServicios","initialState","usuarioCreacion","usuarioFinalizacion","personaID","NombreCompleto","importe","setServicioSeleccionado","obtenerServicios","respuestaServicios","finalizar","message","toLowerCase","direccion","prevState","eliminar","action","s","handleNotifications","notificar","rows","editarServicio","disabled","px","py","gap","arrow","disableInteractive","bgcolor","mainOpacity","eliminarServicio","finalizarServicio","handleSave","getTipoTareas","postTipoTarea","tipoTarea","tipoTareaNombre","putTipoTarea","tipoTareaID","deleteTipoTarea","NuevoTipoTarea","tipoTareasSeleccionada","guardarTipoTarea","setTipoTarea","persist","TipoTareas","tipoTareas","setTipoTareas","setTipoTareasSeleccionada","obtenerTareas","respuestaTipoTareas","tt","editarTipoTarea","eliminarTipoTarea","NuevoPermisoUsuario","usuarioSeleccionado","guardarPermisoUsuario","tipoPermisos","setPermisoUsuario","nombreUsuario","select","option","permisoNombre","Copy","Save","Print","Share","Edit","Add","SpeedDialButton","options","acciones","icon","Backdrop","SpeedDial","ariaLabel","SpeedDialIcon","onOpen","hidden","accion","SpeedDialAction","tooltipTitle","tooltipOpen","UsuariosEmpresa","navegar","permisosUsuarios","setPermisosUsuarios","useRef","password","usuarioID","setUsuarioSeleccionado","BuscarTipoPermisos","BuscarPermisosUsuarios","respuestaTipoPermisos","respuestaPermisosUsuarios","desvincular","desvinculado","editarPermisoUsuario","desvincularPermisoUsuario","NuevaEmpresa","empresaIDGestion","urlGestion","telefono","imagenString","logoString","setEmpresa","obtenerEmpresa","respuestaEmpresa","noValidate","as","accept","multiple","fileReader","FileReader","onload","readyState","readAsDataURL","files","square","overflow","objectFit","m","mb","getLocalidades","postLocalidad","localidad","nombre","putLocalidad","localidadID","deleteLocalidad","NuevaLocalidad","localidadSeleccionada","provincias","setLocalidad","localidadSinCambios","handleSubmit","BotonGuardarComponent","isEqual","codigoPostal","maxLength","href","provinciaID","provinciaNombre","getProvincias","Localidades","localidades","setLocalidades","setLocalidadSeleccionada","obtenerLocalidades","InitialFetch","respuestaLocalidades","provinciasResponse","handleOpenDialog","useCallback","guardarLocalidad","l","editarLocalidad","provincia","eliminarLocalidad","BotonesAccionesTabla","persona","lista","inputBuscarRef","personas","setPersonas","editar","matches_sm","filtrarAgruparTareas","fechaTareasAgrupadas","nombreCompleto","reduce","acc","personaNombre","existe","Grid","container","sm","item","onKeyUp","Object","keys","group","nombreFantasia","dni","celular","correoElectronico","length","getPersonas","postPersona","putPersona","deletePersona","Nuevapersona","personaSeleccionada","setPersona","personaSinCambios","onInput","replace","Personas","view","state","setPersonaSeleccionada","localidadesResponse","obtenerPersonas","respuestaPersonas","guardarPersona","CustomBasicCard","Titulo","TextoSecundario","Descripcion","Detalle","Card","minWidth","CardContent","gutterBottom","getTareasEstado","estadoTareaID","fechaDesde","fechaHasta","sinFecha","fechaD","fechaH","getTareasEstadoAgenda","postTarea","tarea","putTarea","fechaTarea","isAfter","fechaTareaFin","tareaID","deleteTarea","enProcesoTarea","checkTarea","getTareasObservaciones","tareaFiltrar","getEstadoTareas","VisualizarObservaciones","estadoTarea","setEstadoTarea","tareas","setTareas","tareasFiltradas","setTareasFiltradas","startOf","localStorage","getItem","endOf","buscar","setTareaFiltrar","respuestaEstadoTareas","filtrarTareas","respuestaTareas","filtrarTareasTexto","tareaa","estadoTareaNombre","lg","observacionInterna","detalle","CustomAutocomplete","elements","elementsActive","Autocomplete","getOptionLabel","filterSelectedOptions","renderInput","placeholder","TabPanel","other","role","CustomTabs","tabs","content","setValue","borderBottom","borderColor","Tabs","newValue","tab","Tab","a11yProps","key","NuevaTarea","tareaSeleccionada","estadosTareas","tiposTareas","usuariosEmpresa","setTarea","tareaSinCambios","handleBlur","isBefore","EstadoTareaComponent","find","estado","Chip","FechasCambiosEstadoComponent","fechasMostrar","fechaCreacion","fechaInicio","fechaFinalizacion","slice","usuariosMostrar","usuarioCreacionEmail","usuarioInicioEmail","usuarioFinalizacionEmail","fecha","arr","flexDirection","secondary","pl","onBlur","disablePortal","_","servicioTitulo","multiline","listadoUsuarios","elem","some","usuariosTarea","marginTop","fechaAgrupacionTabla","dia","substring","diaNumeroYMes","ultimaTareaEditada","esUsuarioTareas","tareasAgrupadas","setTareasAgrupadas","filtros","setFiltros","filtrar","matches_md","filtroPorEstado","sort","b","isSame","colSpan","marginLeft","labelEstadoTarea","split","word","charAt","join","VistaTabla","setState","setUltimaTareaEditada","setTareaSeleccionada","estadosTareasResponse","permisoResponse","usuariosEmpresaResponse","serviciosResponse","tiposTareasResponse","estadoId","tareasResponse","eliminarTarea","guardarTarea","finalizarTarea","enProceso","tareaEditada","t","setTimeout","bloquearNotificar","esDiaActual","diasPorSemana","semana","dias","comienzoSemana","week","i","day","diaSemana","filtrarTareasPorDia","isBetween","shadows","ContainerHeader","Header","ItemTarea","background","paper","typography","body2","hasElements","Columna","borderTop","borderStyle","borderLeftWidth","borderRightWidth","borderBottomWidth","borderBottomColor","StateTaskContainer","light","contrastText","success","whiteSpace","textOverflow","alignItems","PanelForMobil","diasSemana","seleccionarSemana","semanaActualSeleccionada","siguienteSemana","semanaActual","anteriorSemana","primerDiaSemana","ultimoDiaSemana","marginY","orientation","borderRight","tareasDia","top","ColumnaHorasDia","ManagmentWeeks","year","callbak","this","currentWeek","currentYear","isoWeekday","nextWeek","add","lastWeek","subtract","horas","hora","horasDelDia","memo","classes","esDiaPosterior","esDiaAnterior","esPrimerDiaSemana","tareasDentroHora","fechaFin","parseInt","hours","estaDentroHora","tareaRepetida","isTaskRepeat","weeks","Weeks","Panel","semanaNumero","semanaAnioString","showFilters","usuarios","estados","servicioId","tipoTareaId","getRangeCurrentWeek","getCurrentWeek","filtroPorServicio","filtroPorTipoTarea","filtroPorUsuario","u","x","changeWeek","handleCurrentWeek","setCurrentWeek","handleNextWeek","getNextWeek","handleLastWeek","getLastWeek","handleFiltrarPorEstado","handleChangeServicesAndTypeTask","endIcon","columns","VistaAgenda","filtrarTareasAgenda","requestNotificationAccess","checkNotificationPromise","Notification","requestPermission","getSubscription","applicationServerKey","navigator","serviceWorker","ready","pushManager","subscripcion","subscribe","userVisibleOnly","urlB64ToUint8Array","values","fillSubscribeFields","endpoint","p256dh","arrayBufferToBase64","getKey","auth","buffer","btoa","String","fromCharCode","Uint8Array","base64String","base64","repeat","rawData","atob","outputArray","charCodeAt","getSubscriptionServer","unsubscribe","NOTIFICATION_PERMISSION","areSubscriptionEquals","localSubs","serverSubs","serverSubscription","p256DH","ActivarNotificacion","permiso","hasSubscription","subscription","setSubscription","alert","setAlert","buttonActivate","setButtonActivate","FetchGetSubscription","permission","subscripcionNotificacion","localSubscription","newSubscription","handlePermisosNotificaciones","handleSubscripcionNotificaciones","handleDesubscripcionNotificaciones","paddingBottom","Configuracion","setVistaTareas","filtrosObservacion","setFiltrosObservacion","vistaTareaConfig","filtrosConfig","filtrosConfi","handleFiltros","filtro","setItem","handleFiltrosObservacion","UsersSinEmpresa","esUsuarioEmpresa","setEsUsuarioEmpresa","usuarioTieneEmpresa","funcionRegistrarUsuarioAuth0","aspectRatio","PrivateRoute","Component","path","rest","fn","targetUrl","render","taskColors","inProcessTask","dark","finishedTask","pendingTaskColor","pendingTask","hoverOpacity","darkTheme","createTheme","info","lightTheme","App","setTheme","usuarioExiste","setUsuarioExiste","preferenciasTema","documentElement","setProperty","matchMedia","usuarioEncontrado","ExisteUsuario","ThemeProvider","minHeight","exact","Empresa","DatosEmpresa","Tareas","isLocalhost","hostname","match","registerValidSW","swUrl","config","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","catch","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","getElementsByTagName","getAttribute","rootElement","getElementById","settings","authSettings","ReactDOM","domain","client_id","clientId","audience","redirect_uri","origin","basename","URL","process","addEventListener","contentType","get","indexOf","unregister","reload","checkValidServiceWorker","serviceWorkerRegistration"],"mappings":"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","file":"static/js/main.e3ec6b13.chunk.js","sourcesContent":["import {createBrowserHistory} from \"history\";\r\nexport default createBrowserHistory();","export const getEmpresas = async(token) => {\r\n const response = await fetch('api/Empresas', {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const getUsuarioSinEmpresa = async(usuario, token) => {\r\n \r\n try {\r\n const response = await fetch(`api/Usuario/GetUsuarioSinEmpresa/${usuario.sub}`, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n });\r\n \r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n \r\n return response.ok;\r\n }\r\n catch(err) {\r\n console.error('Error: ', err)\r\n return false\r\n }\r\n}\r\n\r\nexport const getUsuarioEmpresa = async(usuario, token) => {\r\n \r\n try {\r\n const response = await fetch(`api/Usuario/GetUsuarioEmpresa/${usuario.sub}`, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n });\r\n \r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n \r\n return response.ok;\r\n }\r\n catch(err) {\r\n console.error('Error: ', err)\r\n return false\r\n }\r\n}\r\n\r\nexport const getEmpresaActual = async(user, token) => {\r\n const response = await fetch('api/Empresas/GetEmpresaActual/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n// // export const postEmpresa = async(empresa, token) => {\r\n// // const response = await fetch('api/Empresas', {\r\n// // method: \"POST\",\r\n// // headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n// // body: JSON.stringify(empresa)\r\n// // });\r\n\r\n// // // if (response.status === 401) {\r\n// // // await authService.signIn();\r\n// // // }\r\n\r\n// // const data = await response.json();\r\n// // return data;\r\n// // }\r\n\r\nexport const putEmpresa = async(empresa, user, token) => {\r\n empresa.nombreEmpresa = empresa.nombreEmpresa.toUpperCase();\r\n\r\n const response = await fetch('api/Empresas/' + empresa.empresaID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(empresa)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n \r\n return response.ok;\r\n}\r\n\r\n\r\n\r\nexport const getTipoPermisos = async(token) => {\r\n const response = await fetch('api/Empresas/GetTipoPermisos', {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const getPermisosUsuarios = async(user, token) => {\r\n const response = await fetch('api/Empresas/GetPermisosUsuarios/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const GetPermisoUsuarioActual = async(user, token) => {\r\n const response = await fetch('api/Empresas/GetPermisoUsuarioActual/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n if (response.status === 204) {\r\n return false;\r\n }\r\n \r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const postPermisoUsuario = async(user, token, permisoUsuario) => {\r\n const response = await fetch('api/Empresas/PostPermisoUsuario/' + user.sub, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(permisoUsuario)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const putPermisoUsuario = async(user, token, permisoUsuario) => {\r\n const response = await fetch('api/Empresas/PutPermisoUsuario/' + permisoUsuario.permisoUsuarioID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(permisoUsuario)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n \r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const activarDesactivarPermisoUsuario = async(user, token, permisoUsuario) => {\r\n const response = await fetch('api/Empresas/ActivarDesactivarPermisoUsuario/' + permisoUsuario.permisoUsuarioID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport async function imagenEmpresa(user, token) {\r\n const response = await fetch('api/Empresas/imagen/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n try {\r\n if(!response.ok) {\r\n throw new Error\r\n }\r\n const data = await response.text();\r\n return data;\r\n\r\n } catch {\r\n return false\r\n }\r\n}\r\n\r\nexport async function logoEmpresa(user, token) {\r\n const response = await fetch('api/Empresas/logo/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n try {\r\n if(!response.ok) {\r\n throw new Error\r\n }\r\n const data = await response.text();\r\n return data;\r\n \r\n } catch {\r\n return false\r\n }\r\n}\r\n\r\nexport async function getUser(user, token) {\r\n const response = await fetch('api/Empresas/usuario/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n try {\r\n if(!response.ok) {\r\n throw new Error\r\n }\r\n const data = await response.text();\r\n return data;\r\n \r\n } catch {\r\n return false\r\n }\r\n}\r\n\r\n//activarDesactivarPermisoUsuario\r\nexport const registrarUsuarioAuth0 = async(user, token) => {\r\n const response = await fetch('api/Usuario/RegistrarUsuarioAuth0/' + user.email + '/' + user.sub, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n return response.ok;\r\n}","import React, { useState, useEffect, useContext } from \"react\";\r\nimport createAuth0Client from \"@auth0/auth0-spa-js\";\r\n\r\nconst DEFAULT_REDIRECT_CALLBACK = () =>\r\n window.history.replaceState({}, document.title, window.location.pathname);\r\n\r\nexport const Auth0Context = React.createContext();\r\nexport const useAuth0 = () => useContext(Auth0Context);\r\nexport const Auth0Provider = ({\r\n children,\r\n onRedirectCallback = DEFAULT_REDIRECT_CALLBACK,\r\n ...initOptions\r\n}) => {\r\n const [isAuthenticated, setIsAuthenticated] = useState();\r\n const [user, setUser] = useState();\r\n const [auth0Client, setAuth0] = useState();\r\n const [loading, setLoading] = useState(true);\r\n const [popupOpen, setPopupOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n const initAuth0 = async () => {\r\n const auth0FromHook = await createAuth0Client(initOptions);\r\n setAuth0(auth0FromHook);\r\n\r\n if (window.location.search.includes(\"code=\")) {\r\n const { appState } = await auth0FromHook.handleRedirectCallback();\r\n onRedirectCallback(appState);\r\n }\r\n\r\n const isAuthenticated = await auth0FromHook.isAuthenticated();\r\n\r\n setIsAuthenticated(isAuthenticated);\r\n\r\n if (isAuthenticated) {\r\n const user = await auth0FromHook.getUser();\r\n setUser(user);\r\n }\r\n\r\n setLoading(false);\r\n };\r\n initAuth0();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const loginWithPopup = async (params = {}) => {\r\n setPopupOpen(true);\r\n try {\r\n await auth0Client.loginWithPopup(params);\r\n } catch (error) {\r\n console.error(error);\r\n } finally {\r\n setPopupOpen(false);\r\n }\r\n const user = await auth0Client.getUser();\r\n setUser(user);\r\n setIsAuthenticated(true);\r\n };\r\n\r\n const handleRedirectCallback = async () => {\r\n setLoading(true);\r\n await auth0Client.handleRedirectCallback();\r\n const user = await auth0Client.getUser();\r\n setLoading(false);\r\n setIsAuthenticated(true);\r\n setUser(user);\r\n };\r\n return (\r\n auth0Client.getIdTokenClaims(...p),\r\n loginWithRedirect: (...p) => auth0Client.loginWithRedirect(...p),\r\n getTokenSilently: (...p) => auth0Client.getTokenSilently(...p),\r\n getTokenWithPopup: (...p) => auth0Client.getTokenWithPopup(...p),\r\n logout: (...p) => auth0Client.logout(...p)\r\n }}\r\n >\r\n {children}\r\n \r\n );\r\n};","// import React, { Component } from 'react';\r\n// import { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\n// import { Link } from 'react-router-dom';\r\n// import './NavMenu.css';\r\n\r\n// export class NavMenu extends Component {\r\n// static displayName = NavMenu.name;\r\n\r\n// constructor (props) {\r\n// super(props);\r\n\r\n// this.toggleNavbar = this.toggleNavbar.bind(this);\r\n// this.state = {\r\n// collapsed: true\r\n// };\r\n// }\r\n\r\n// toggleNavbar () {\r\n// this.setState({\r\n// collapsed: !this.state.collapsed\r\n// });\r\n// }\r\n\r\n// render () {\r\n// return (\r\n//
\r\n// \r\n// \r\n// MTReact\r\n// \r\n// \r\n//
    \r\n// \r\n// Home\r\n// \r\n// \r\n// Counter\r\n// \r\n// \r\n// Fetch data\r\n// \r\n// \r\n// login\r\n// \r\n// \r\n// logout\r\n// \r\n// \r\n// profile\r\n// \r\n//
\r\n//
\r\n//
\r\n//
\r\n//
\r\n// );\r\n// }\r\n// }\r\n\r\n\r\n\r\n\r\n\r\n\r\nimport * as React from 'react';\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Typography from '@mui/material/Typography';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuIcon from '@mui/icons-material/Menu';\r\nimport Container from '@mui/material/Container';\r\nimport Avatar from '@mui/material/Avatar';\r\n// import KeyboardDoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';\r\n// import LensBlurRoundedIcon from '@mui/icons-material/LensBlurRounded';\r\nimport Button from '@mui/material/Button';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport ListItemIcon from '@mui/material/ListItemIcon';\r\nimport Logout from '@mui/icons-material/Logout';\r\nimport Settings from '@mui/icons-material/Settings';\r\n// import WorkIcon from '@mui/icons-material/Work';\r\nimport GroupsIcon from '@mui/icons-material/Groups';\r\nimport Person from '@mui/icons-material/Person';\r\nimport LightModeIcon from '@mui/icons-material/LightMode';\r\nimport DarkModeIcon from '@mui/icons-material/DarkMode';\r\nimport Divider from '@mui/material/Divider';\r\nimport { useTheme } from '@mui/material';\r\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\r\nimport { Link, useLocation, useHistory } from 'react-router-dom';\r\nimport { GetPermisoUsuarioActual, logoEmpresa, getUser } from '../helpers/empresa';\r\n\r\n\r\nimport { useAuth0 } from \"../react-auth0-spa\";\r\n\r\n\r\nimport './NavMenu.css'\r\nimport { transform } from 'lodash';\r\nconst pages = [['Servicios', '/servicios'],['Calendario', '/tareas/indexAgenda'], ['Tareas', '/tareas/indexTabla'], ['Consultas', '/tareas/visualizarObservaciones'], ['Personas', '/personas']];\r\n\r\nexport const NavMenu = ({ handleTheme }) => {\r\n const { logout, loginWithRedirect, isAuthenticated, user, getTokenSilently } = useAuth0();\r\n\r\n const [anchorElNav, setAnchorElNav] = React.useState(null);\r\n const [anchorElUser, setAnchorElUser] = React.useState(null);\r\n const [archivos, setArchivos] = React.useState(null);\r\n const [usuarioTareas, setUsuarioTareas] = React.useState(false);\r\n const location = useLocation();\r\n const usuario = React.useRef(null);\r\n const logo = React.useRef(null);\r\n const theme = useTheme();\r\n const history = useHistory();\r\n\r\n React.useEffect(() => {\r\n async function GetLogo() {\r\n const token = await getTokenSilently();\r\n const respuesta = await logoEmpresa(user, token);\r\n if (respuesta) {\r\n logo.current = respuesta;\r\n }\r\n }\r\n \r\n async function GetUser() {\r\n const token = await getTokenSilently();\r\n const respuesta = await getUser(user, token);\r\n if (respuesta) {\r\n usuario.current = respuesta;\r\n }\r\n }\r\n\r\n GetUser();\r\n GetLogo();\r\n BuscarPermisoUsuarioActual();\r\n }, [])\r\n const BuscarPermisoUsuarioActual = async () => {\r\n const token = await getTokenSilently();\r\n GetPermisoUsuarioActual(user, token)\r\n .then(respuestaPermiso => {\r\n setUsuarioTareas(respuestaPermiso.permisoID === 1);\r\n })\r\n }\r\n \r\n const handleOpenNavMenu = (event) => {\r\n setAnchorElNav(event.currentTarget);\r\n };\r\n const handleOpenUserMenu = (event) => {\r\n setAnchorElUser(event.currentTarget);\r\n };\r\n const handleOpenArchivos = (event) => {\r\n setArchivos(event.currentTarget);\r\n };\r\n\r\n const handleCloseNavMenu = () => {\r\n setAnchorElNav(null);\r\n };\r\n\r\n const handleCloseUserMenu = () => {\r\n setAnchorElUser(null);\r\n };\r\n const handleCloseArchivos = () => {\r\n setArchivos(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n history.push('/');\r\n }}\r\n >\r\n \"logo\"\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {\r\n theme.palette.mode === 'light' ? (\r\n <>\r\n \r\n Archivos \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Archivos \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n {pages.map((page) => (\r\n \r\n {\r\n theme.palette.mode === 'light' ? (\r\n <>\r\n {page[0]}\r\n \r\n ) : (\r\n <>\r\n {page[0]}\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n history.push('/');\r\n }}\r\n >\r\n \"logo\"\r\n \r\n\r\n \r\n \r\n ARCHIVOS\r\n \r\n \r\n \r\n \r\n {\r\n handleCloseArchivos();\r\n handleCloseNavMenu();\r\n history.push('/tipoTareas');\r\n }}>\r\n TIPO TAREAS\r\n \r\n {\r\n handleCloseArchivos();\r\n handleCloseNavMenu();\r\n history.push('/localidades');\r\n }}>\r\n LOCALIDADES\r\n \r\n \r\n \r\n\r\n\r\n \r\n {pages.map((page) => (\r\n \r\n {page[0]}\r\n \r\n ))}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n {usuario.current}\r\n \r\n {\r\n handleCloseUserMenu();\r\n history.push('/configuracion');\r\n }}>\r\n \r\n \r\n \r\n Configuración\r\n \r\n {\r\n usuarioTareas && \r\n {\r\n handleCloseUserMenu();\r\n history.push('/empresa');\r\n }}>\r\n \r\n \r\n \r\n Usuarios del Sistema\r\n \r\n }\r\n \r\n {\r\n theme.palette.mode === 'light' ? (\r\n <>\r\n \r\n \r\n \r\n Tema Oscuro\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n Tema Claro\r\n \r\n )\r\n }\r\n \r\n\r\n \r\n\r\n {\r\n isAuthenticated\r\n ? logout({})}>\r\n \r\n \r\n \r\n Cerrar Sesión\r\n \r\n\r\n : loginWithRedirect()}>\r\n \r\n \r\n \r\n Iniciar Sesión\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};","import React from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport function Layout({ toggleTheme, showMenu = true, ...props }) {\r\n return (\r\n
\r\n {showMenu && }\r\n \r\n {props.children}\r\n \r\n
\r\n );\r\n}\r\n","// import { handleJsonResponse, handleError } from \"./apiUtils\";\r\n\r\nconst baseUrl = \"api/weatherforecast\";\r\n\r\nexport async function getWeatherForecast(token) {\r\n const response = await fetch(baseUrl, {\r\n headers: { Accept: \"application/json\", Authorization: `Bearer ${token}` },\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}","// import React, { useEffect, useState } from 'react';\r\n// import { useAuth0 } from \"@auth0/auth0-react\";\r\n// import { get } from '../helpers/populateWeatherData';\r\n\r\n// export const FetchData = () => {\r\n// const [forecasts, setForecasts] = useState([]);\r\n// const [loading, setLoading] = useState(true);\r\n\r\n// const { user, isAuthenticated, getAccessTokenSilently } = useAuth0();\r\n\r\n// useEffect(() => {\r\n// const getUserMetadata = async () => {\r\n// try {\r\n// const accessToken = await getAccessTokenSilently();\r\n// const data = await get(accessToken);\r\n// setForecasts(data)\r\n// } catch (e) {\r\n// console.log(e.message);\r\n// }\r\n// };\r\n\r\n// getUserMetadata();\r\n\r\n// }, [getAccessTokenSilently]);\r\n\r\n\r\n// const renderForecastsTable = (forecasts) => {\r\n// return (\r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// {forecasts.map(forecast =>\r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// )}\r\n// \r\n//
DateTemp. (C)Temp. (F)Summary
{forecast.date}{forecast.temperatureC}{forecast.temperatureF}{forecast.summary}
\r\n// );\r\n// };\r\n\r\n// let contents = loading ? (\r\n//

\r\n// Loading...\r\n//

\r\n// ) : (\r\n// renderForecastsTable(forecasts)\r\n// );\r\n\r\n// return (\r\n//
\r\n//

Weather forecast

\r\n//

This component demonstrates fetching data from the server.

\r\n// {contents}\r\n//
\r\n// );\r\n\r\n// // async populateWeatherData() {\r\n// // const response = await fetch('weatherforecast');\r\n// // const data = await response.json();\r\n// // this.setState({ forecasts: data, loading: false });\r\n// // }\r\n// }\r\n\r\n\r\n\r\n\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { getWeatherForecast } from \"../helpers/weatherForecast\";\r\nimport { useAuth0 } from \"../react-auth0-spa\";\r\n\r\nexport const FetchData = () => {\r\n const { getTokenSilently } = useAuth0();\r\n const [loading, setLoading] = useState(true);\r\n const [forecasts, setForecasts] = useState([]);\r\n\r\n const populateWeatherData = async () => {\r\n const token = await getTokenSilently();\r\n console.log(token)\r\n const data = await getWeatherForecast(token);\r\n setForecasts(data);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n populateWeatherData();\r\n }, []);\r\n\r\n const renderForecastsTable = (forecasts) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {forecasts.map((forecast) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DateTemp. (C)Temp. (F)Summary
{forecast.date}{forecast.temperatureC}{forecast.temperatureF}{forecast.summary}
\r\n );\r\n };\r\n\r\n let contents = loading ? (\r\n

\r\n Loading...\r\n

\r\n ) : (\r\n renderForecastsTable(forecasts)\r\n );\r\n\r\n return (\r\n
\r\n

Weather forecast

\r\n

This component demonstrates fetching data from the server.

\r\n {contents}\r\n
\r\n );\r\n};","export default __webpack_public_path__ + \"static/media/logo-mis-tareas-light.c0feda45.png\";","export default __webpack_public_path__ + \"static/media/logo-mis-tareas-dark.68507162.png\";","export default __webpack_public_path__ + \"static/media/logo-mis-tareas-light.33f0a855.webp\";","export default __webpack_public_path__ + \"static/media/logo-mis-tareas-dark.f40c78c7.webp\";","import React, { useEffect, useState } from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport LogoLight from '../../images/logo-mis-tareas-light.png';\r\nimport LogoDark from '../../images/logo-mis-tareas-dark.png';\r\nimport LogoLightWebp from '../../images/logo-mis-tareas-light.webp';\r\nimport LogoDarkWebp from '../../images/logo-mis-tareas-dark.webp';\r\n\r\nimport { imagenEmpresa } from '../../helpers/empresa'\r\n\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n\r\nimport './index.css'\r\n\r\nexport default function Home() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const theme = useTheme();\r\n const [imagen, setImage] = useState('');\r\n\r\n\r\n useEffect(() => {\r\n async function GetImagen() {\r\n const token = await getTokenSilently();\r\n const img = await imagenEmpresa(user, token);\r\n if(img) {\r\n setImage(img);\r\n }\r\n }\r\n\r\n GetImagen();\r\n }, []);\r\n\r\n return (\r\n
\r\n {\r\n imagen ? (\r\n \r\n \"Mis\r\n \r\n ) : (\r\n \r\n \r\n \"Mis\r\n \r\n )\r\n }\r\n
\r\n )\r\n}","import moment from 'moment'\r\n\r\nexport const getServicios = async(user, token) => {\r\n const response = await fetch('api/Servicios/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport const postServicio = async(servicio, user, token) => {\r\n const fechaServicio = moment(servicio.fechaServicio).toDate();\r\n servicio.fechaServicio = fechaServicio;\r\n servicio.titulo = servicio.titulo.toUpperCase();\r\n\r\n const response = await fetch('api/Servicios/' + user.sub, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(servicio)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport const putServicio = async(servicio, user, token) => {\r\n const fechaServicio = moment(servicio.fechaServicio).toDate();\r\n servicio.fechaServicio = fechaServicio;\r\n servicio.titulo = servicio.titulo.toUpperCase();\r\n\r\n const response = await fetch('api/Servicios/' + servicio.servicioID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(servicio)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport const deleteServicio = async(servicio, user, token) => {\r\n const response = await fetch('api/Servicios/' + servicio.servicioID + '/' + user.sub, {\r\n method: \"DELETE\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n \r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport const checkServicio = async(servicio, user, token) => {\r\n const response = await fetch('api/Servicios/CheckServicio/' + servicio.servicioID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const activarNotificacion = async(servicio, user, activar = true, token) => {\r\n const response = await fetch(`api/Servicios/ActivarNotificaciones/${servicio.servicioID}?sub=${user.sub}?activar=${Number(activar)}`, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}","import * as React from 'react';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Button from '@mui/material/Button';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport Typography from '@mui/material/Typography';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Slide from '@mui/material/Slide';\r\nimport { DialogActions, DialogContent } from '@mui/material';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default function FullScreenDialog({children, open, handleClose, titulo, actions, formularioRef}) {\r\n const matches = useMediaQuery('(max-width:600px)');\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {titulo}\r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n {actions && (\r\n \r\n {!matches \r\n ? actions.map(({label, ...props}, index) => (\r\n \r\n )) \r\n : actions.map(({startIcon, label, ...props}, index) => (\r\n \r\n {startIcon}\r\n \r\n ))\r\n }\r\n \r\n )}\r\n \r\n
\r\n );\r\n}","import * as React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Fab from '@mui/material/Fab';\r\n\r\nexport default function FloatingActionButtons({children, position, bottom, ...props}) {\r\n const fabStyle = {\r\n position: position || 'absolute',\r\n bottom: bottom || 16,\r\n right: 16,\r\n zIndex: 1000\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\"\r\n\r\nimport Box from '@mui/material/Box';\r\nimport TextField from '@mui/material/TextField';\r\n// import InputAdornment from '@mui/material/InputAdornment';\r\n// import Input from '@mui/material/Input';\r\n// import { FormControl, InputLabel } from \"@mui/material\";\r\nimport moment from \"moment\";\r\n\r\nimport { postServicio, putServicio } from \"../../helpers/servicios\";\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport CheckIcon from '@mui/icons-material/Check';\r\n\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n\r\nexport default function NuevoServicio({ servicioSeleccionado, guardarServicio }) {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [servicio, setServicio] = useState(servicioSeleccionado)\r\n \r\n const handleChange = (evento) => {\r\n const {name, value} = evento.target;\r\n setServicio({...servicio, [name]: value});\r\n }\r\n\r\n const guardar = async (e) => {\r\n e.preventDefault();\r\n const token = await getTokenSilently();\r\n\r\n if (servicio.servicioID > 0) {\r\n const result = await putServicio(servicio, user, token);\r\n guardarServicio(result, \"PUT\")\r\n }\r\n else {\r\n const result = await postServicio(servicio, user, token);\r\n guardarServicio(result, \"POST\")\r\n }\r\n }\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n\r\n {\r\n servicio.nombreCompleto !== '' &&\r\n \r\n Importe\r\n $}\r\n fullWidth\r\n onChange={handleChange}\r\n color=\"info\"\r\n />\r\n \r\n } */}\r\n\r\n \r\n \r\n )\r\n}","import * as React from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell, { tableCellClasses } from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport TableRow, { tableRowClasses } from '@mui/material/TableRow';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport {useTheme, useMediaQuery} from '@mui/material'\r\n\r\nexport const StyledTableCell = styled(TableCell)(({ theme }) => {\r\n const match_md = useMediaQuery(theme.breakpoints.up('md'));\r\n\r\n\r\n return {\r\n [`&.${tableCellClasses.head}`]: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.common.white,\r\n },\r\n [`&.${tableCellClasses.body}`]: {\r\n fontSize: match_md ? 14 : 11,\r\n },\r\n '&.MuiTableCell-root.MuiTableCell-body': {\r\n padding: match_md ? theme.spacing(1) : 5,\r\n },\r\n '&.MuiTableCell-root.MuiTableCell-body .badge': {\r\n fontSize: match_md ? 10 : 8, \r\n height: match_md ? 20 : 'auto',\r\n padding: match_md ? 'auto' : '3px 0',\r\n fontWeight: 400,\r\n maxWidth: 130\r\n },\r\n }\r\n});\r\n\r\nexport const StyledTableRow = styled(TableRow)(({ theme }) => {\r\n return {\r\n // hide last border\r\n '&:last-child td, &:last-child th': {\r\n border: 0,\r\n },\r\n // '&.title': {\r\n // backgroundColor: theme.palette.grey.agrupadosTabla,\r\n // fontSize: 9,\r\n // },\r\n [`&.${tableRowClasses.root}.title`]: {\r\n backgroundColor: theme.palette.grey.agrupadosTabla,\r\n fontSize: 9,\r\n },\r\n '&.fondo-rojo-tabla': {\r\n backgroundColor: theme.palette.danger.main,\r\n },\r\n '&.tarea-finalizada': {\r\n filter: 'grayscale(0)',\r\n textDecoration: 'line-through',\r\n textDecorationColor: '#a1a1a1'\r\n }\r\n }\r\n});\r\n\r\nexport default function CustomTable({headers, children}) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {headers.map((header, index) => {header})}\r\n \r\n \r\n \r\n {children}\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n}","import * as React from 'react';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Slide from '@mui/material/Slide';\r\nimport { useEffect } from 'react';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default function CustomDialog({show, title, text, buttons}) {\r\n const [open, setOpen] = React.useState(false);\r\n \r\n useEffect(() => {\r\n if (show) {\r\n handleClickOpen();\r\n }\r\n else {\r\n handleClose();\r\n }\r\n }, [show])\r\n \r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n {buttons.map((button, index) => {button})}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport Stack from '@mui/material/Stack';\r\nimport Snackbar from '@mui/material/Snackbar';\r\nimport MuiAlert from '@mui/material/Alert';\r\nimport Slide from '@mui/material/Slide';\r\n\r\nconst Alert = React.forwardRef(function Alert(props, ref) {\r\n return ;\r\n});\r\n\r\nfunction Transition(props) {\r\n return ;\r\n}\r\n\r\nexport default function CustomSnackbar({mensaje, tipo, open, handleClose}) {\r\n return (\r\n \r\n \r\n \r\n {mensaje}\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport Button from '@mui/material/Button';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport CheckIcon from '@mui/icons-material/Check';\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone';\r\nimport NotificationsActiveIcon from '@mui/icons-material/NotificationsActive';\r\n\r\nimport { getServicios, deleteServicio, checkServicio, activarNotificacion } from \"../../helpers/servicios\";\r\nimport FullScreenDialog from \"../fullScreenDialog\";\r\nimport NuevoServicio from \"./nuevoServicio\";\r\nimport moment from \"moment\";\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport CustomTable, { StyledTableCell, StyledTableRow } from \"../customTable\";\r\nimport CustomDialog from \"../customDialog\";\r\nimport CustomSnackbar from '../customSnackbar';\r\nimport { GetPermisoUsuarioActual } from '../../helpers/empresa';\r\n\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n\r\nexport default function Servicios() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [openDialog, setOpenDialog] = React.useState(false);\r\n const initialCustomDialog = { show: false, title: \"\", text: \"\", buttons: [] };\r\n const [customDialog, setCustomDialog] = React.useState(initialCustomDialog);\r\n const [customSnackbar, setCustomSnackbar] = React.useState(undefined);\r\n const [servicios, setServicios] = useState([]);\r\n const [usuarioTareas, setUsuarioTareas] = useState(false);\r\n\r\n const initialState = {\r\n servicioID: 0,\r\n titulo: '',\r\n fechaServicio: moment().format(\"yyyy-MM-DDTHH:mm\"),\r\n usuarioCreacion: '',\r\n usuarioFinalizacion: '',\r\n empresaID: 0,\r\n personaID: 0,\r\n NombreCompleto: '',\r\n importe: 0\r\n }\r\n \r\n const [servicioSeleccionado, setServicioSeleccionado] = useState(initialState)\r\n\r\n const handleClose = () => {\r\n setOpenDialog(false)\r\n setServicioSeleccionado(initialState)\r\n };\r\n\r\n\r\n useEffect(() => {\r\n obtenerServicios();\r\n\r\n BuscarPermisoUsuarioActual();\r\n }, [])\r\n\r\n const obtenerServicios = async () => {\r\n const token = await getTokenSilently();\r\n getServicios(user, token)\r\n .then(respuestaServicios => {\r\n setServicios(respuestaServicios);\r\n })\r\n };\r\n const BuscarPermisoUsuarioActual = async () => {\r\n const token = await getTokenSilently();\r\n GetPermisoUsuarioActual(user, token)\r\n .then(respuestaPermiso => {\r\n setUsuarioTareas(respuestaPermiso.permisoID === 3);\r\n })\r\n }\r\n\r\n\r\n const finalizarServicio = servicio => {\r\n setCustomDialog({\r\n show: true,\r\n title: \"Finalizar\",\r\n text: \"¿Está seguro que desea finalizar este Servicio?\",\r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n };\r\n\r\n const eliminarServicio = servicio => {\r\n setCustomDialog({\r\n show: true, \r\n title: \"Eliminar\", \r\n text: \"¿Está seguro que desea eliminar este Servicio?\", \r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n };\r\n\r\n const finalizar = async (servicio) => {\r\n const token = await getTokenSilently();\r\n const result = await checkServicio(user, token, servicio);\r\n if (result.status === 'Success') {\r\n guardarServicio(servicio, \"DELETE\")\r\n }\r\n\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n\r\n setCustomDialog(initialCustomDialog)\r\n }\r\n\r\n\r\n const eliminar = async (servicio) => {\r\n const token = await getTokenSilently();\r\n const result = await deleteServicio(servicio, user, token);\r\n if (result.status === 'Success') {\r\n guardarServicio(servicio, \"DELETE\")\r\n }\r\n\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n\r\n setCustomDialog(initialCustomDialog)\r\n }\r\n\r\n\r\n const editarServicio = servicio => {\r\n setServicioSeleccionado(servicio);\r\n setOpenDialog(true);\r\n };\r\n\r\n const guardarServicio = (servicio, action) => {\r\n switch (action) {\r\n case \"POST\":\r\n setServicios([...servicios, servicio]); \r\n break;\r\n case \"PUT\":\r\n setServicios([...servicios.map(s => s.servicioID === servicio.servicioID ? {...servicio} : s)]); \r\n break;\r\n case \"DELETE\":\r\n setServicios([...servicios.filter(s => s.servicioID !== servicio.servicioID)]);\r\n break;\r\n }\r\n handleClose();\r\n }\r\n \r\n const handleNotifications = async (servicio, activar = true) => {\r\n const token = await getTokenSilently();\r\n const result = await activarNotificacion(servicio, activar, user, token);\r\n if(result) {\r\n setServicios([...servicios.map(s => s.servicioID === servicio.servicioID ? {...servicio, notificar: activar} : s)]);\r\n }\r\n }\r\n\r\n\r\n return (\r\n
\r\n

Servicios

\r\n
\r\n \r\n {servicios.map((servicio) => (\r\n \r\n {moment(servicio.fechaServicio).format(\"L\")}\r\n \r\n \r\n {servicio.titulo}\r\n \r\n \r\n
\r\n {\r\n !usuarioTareas && \r\n <>\r\n {servicio.notificar ? (\r\n \r\n \r\n ({ bgcolor: theme.palette.primary.mainOpacity, color: theme.palette.primary.main })} \r\n onClick={() => handleNotifications(servicio, false)} \r\n aria-label=\"notify\" \r\n disabled={usuarioTareas}\r\n >\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n handleNotifications(servicio)} aria-label=\"notify\" disabled={usuarioTareas}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n \r\n \r\n eliminarServicio(servicio)} aria-label=\"delete\" disabled={usuarioTareas}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n finalizarServicio(servicio)} aria-label=\"finish\" disabled={usuarioTareas}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n\r\n setOpenDialog(true)} color=\"primary\" position=\"fixed\" disabled={usuarioTareas}>\r\n \r\n \r\n\r\n console.log('asdas')}\r\n >\r\n \r\n \r\n\r\n\r\n \r\n \r\n
\r\n )\r\n}","export const getTipoTareas = async(user, token) => {\r\n const response = await fetch('api/TiposTareas/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport const postTipoTarea = async(tipoTarea, user, token) => {\r\n tipoTarea.tipoTareaNombre = tipoTarea.tipoTareaNombre.toUpperCase();\r\n \r\n const response = await fetch('api/TiposTareas/' + user.sub, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(tipoTarea)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport const putTipoTarea = async(tipoTarea, user, token) => {\r\n tipoTarea.tipoTareaNombre = tipoTarea.tipoTareaNombre.toUpperCase();\r\n\r\n const response = await fetch('api/TiposTareas/' + tipoTarea.tipoTareaID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(tipoTarea)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport const deleteTipoTarea = async(tipoTarea, user, token) => {\r\n const response = await fetch('api/TiposTareas/' + tipoTarea.tipoTareaID + '/' + user.sub, {\r\n method: \"DELETE\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}","import React, { useState } from \"react\"\r\n\r\nimport Box from '@mui/material/Box';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport { postTipoTarea, putTipoTarea } from \"../../helpers/tipoTareas\";\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport CheckIcon from '@mui/icons-material/Check';\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\nexport default function NuevoTipoTarea({ tipoTareasSeleccionada, guardarTipoTarea }) {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [tipoTarea, setTipoTarea] = useState(tipoTareasSeleccionada)\r\n \r\n const handleChange = (evento) => {\r\n evento.persist();\r\n const {name, value} = evento.target;\r\n setTipoTarea({...tipoTarea, [name]: value});\r\n }\r\n\r\n const guardar = async (e) => {\r\n e.preventDefault();\r\n const token = await getTokenSilently();\r\n\r\n if (tipoTarea.tipoTareaID > 0) {\r\n const result = await putTipoTarea(tipoTarea, user, token);\r\n guardarTipoTarea(result, \"PUT\")\r\n }\r\n else {\r\n const result = await postTipoTarea(tipoTarea, user, token);\r\n guardarTipoTarea(result, \"POST\")\r\n }\r\n }\r\n \r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}","import React from \"react\"\r\nimport { useEffect, useState } from 'react';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport Button from '@mui/material/Button';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\n\r\nimport { getTipoTareas, deleteTipoTarea } from \"../../helpers/tipoTareas\";\r\nimport FullScreenDialog from \"../fullScreenDialog\";\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport CustomTable, { StyledTableCell, StyledTableRow } from \"../customTable\";\r\nimport NuevoTipoTarea from \"./nuevoTipoTarea\";\r\nimport CustomDialog from \"../customDialog\";\r\nimport CustomSnackbar from '../customSnackbar';\r\nimport { GetPermisoUsuarioActual } from \"../../helpers/empresa\";\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n\r\nexport default function TipoTareas() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [openDialog, setOpenDialog] = React.useState(false);\r\n const initialCustomDialog = { show: false, title: \"\", text: \"\", buttons: [] };\r\n const [customDialog, setCustomDialog] = React.useState(initialCustomDialog);\r\n const [customSnackbar, setCustomSnackbar] = React.useState(undefined);\r\n const [tipoTareas, setTipoTareas] = useState([]);\r\n const [usuarioTareas, setUsuarioTareas] = useState(false);\r\n\r\n const initialState = {\r\n tipoTareaID: 0,\r\n tipoTareaNombre: ''\r\n }\r\n\r\n const [tipoTareasSeleccionada, setTipoTareasSeleccionada] = useState(initialState)\r\n\r\n const handleClose = () => {\r\n setOpenDialog(false)\r\n setTipoTareasSeleccionada(initialState)\r\n };\r\n\r\n\r\n useEffect(() => {\r\n obtenerTareas();\r\n\r\n BuscarPermisoUsuarioActual();\r\n }, [])\r\n\r\n const obtenerTareas = async () => {\r\n const token = await getTokenSilently();\r\n getTipoTareas(user, token)\r\n .then(respuestaTipoTareas => {\r\n setTipoTareas(respuestaTipoTareas);\r\n })\r\n };\r\n const BuscarPermisoUsuarioActual = async () => {\r\n const token = await getTokenSilently();\r\n GetPermisoUsuarioActual(user, token)\r\n .then(respuestaPermiso => {\r\n setUsuarioTareas(respuestaPermiso.permisoID === 3);\r\n })\r\n }\r\n\r\n const eliminarTipoTarea = tipoTarea => {\r\n setCustomDialog({\r\n show: true, \r\n title: \"Eliminar\", \r\n text: \"¿Está seguro que desea eliminar este Tipo de Tarea?\", \r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n };\r\n\r\n const eliminar = async (tipoTarea) => {\r\n const token = await getTokenSilently();\r\n const result = await deleteTipoTarea(tipoTarea, user, token);\r\n if (result.status === 'Success') {\r\n guardarTipoTarea(tipoTarea, \"DELETE\")\r\n }\r\n\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n\r\n setCustomDialog(initialCustomDialog)\r\n }\r\n\r\n const editarTipoTarea = tipoTarea => {\r\n setTipoTareasSeleccionada(tipoTarea);\r\n setOpenDialog(true);\r\n };\r\n\r\n const guardarTipoTarea = (tipoTarea, action) => {\r\n switch (action) {\r\n case \"POST\":\r\n setTipoTareas([...tipoTareas, tipoTarea]); \r\n break;\r\n case \"PUT\":\r\n setTipoTareas([...tipoTareas.map(tt => tt.tipoTareaID === tipoTarea.tipoTareaID ? {...tipoTarea} : tt)]); \r\n break;\r\n case \"DELETE\":\r\n setTipoTareas([...tipoTareas.filter(tt => tt.tipoTareaID !== tipoTarea.tipoTareaID)]);\r\n break;\r\n }\r\n handleClose();\r\n }\r\n\r\n return (\r\n
\r\n

Tipos de Tareas

\r\n
\r\n \r\n {tipoTareas.map((tipoTarea) => (\r\n \r\n \r\n {tipoTarea.tipoTareaNombre}\r\n \r\n \r\n \r\n \r\n eliminarTipoTarea(tipoTarea)} aria-label=\"delete\" disabled={usuarioTareas}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n setOpenDialog(true)} color=\"primary\" position=\"fixed\" disabled={usuarioTareas}>\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
\r\n )\r\n}","import React, { useState } from \"react\"\r\n\r\nimport Box from '@mui/material/Box';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport { postPermisoUsuario, putPermisoUsuario } from \"../../helpers/empresa\";\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport CheckIcon from '@mui/icons-material/Check';\r\nimport { MenuItem } from \"@mui/material\";\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n\r\nexport default function NuevoPermisoUsuario({ usuarioSeleccionado, guardarPermisoUsuario,tipoPermisos }) {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [permisoUsuario, setPermisoUsuario] = useState(usuarioSeleccionado)\r\n \r\n const handleChange = (evento) => {\r\n const {name, value} = evento.target;\r\n setPermisoUsuario({...permisoUsuario, [name]: value});\r\n }\r\n\r\n const guardar = async (e) => {\r\n e.preventDefault();\r\n const token = await getTokenSilently();\r\n\r\n if (permisoUsuario.permisoUsuarioID > 0) {\r\n const result = await putPermisoUsuario(user, token, permisoUsuario);\r\n guardarPermisoUsuario(result, \"PUT\")\r\n }\r\n else {\r\n const result = await postPermisoUsuario(user, token, permisoUsuario);\r\n guardarPermisoUsuario(result, \"POST\") \r\n }\r\n }\r\n \r\n return (\r\n \r\n \r\n\r\n \r\n\r\n {/* */}\r\n\r\n \r\n {tipoPermisos.map((option) => (\r\n \r\n {option.permisoNombre}\r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n )\r\n}","import React, { useEffect } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Backdrop from '@mui/material/Backdrop';\r\nimport SpeedDial from '@mui/material/SpeedDial';\r\nimport SpeedDialIcon from '@mui/material/SpeedDialIcon';\r\nimport SpeedDialAction from '@mui/material/SpeedDialAction';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopyOutlined';\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport PrintIcon from '@mui/icons-material/Print';\r\nimport ShareIcon from '@mui/icons-material/Share';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport AddIcon from '@mui/icons-material/Add';\r\n\r\nconst actions = {\r\n Copy: ,\r\n Save: ,\r\n Print: ,\r\n Share: ,\r\n Edit: ,\r\n Add: ,\r\n};\r\n\r\nexport default function SpeedDialButton({options, position, disabled}) {\r\n const [open, setOpen] = React.useState(false);\r\n const handleOpen = () => setOpen(true);\r\n const handleClose = () => setOpen(false);\r\n\r\n const acciones = options.map((option) => \r\n ({icon: actions[option[0]], name: option[1], onClick: option[2]})\r\n );\r\n\r\n const fabStyle = {\r\n position: position || 'absolute',\r\n bottom: 16,\r\n right: 16,\r\n };\r\n\r\n return (\r\n \r\n \r\n }\r\n onClose={handleClose}\r\n onOpen={handleOpen}\r\n open={open}\r\n hidden={disabled}\r\n >\r\n {acciones.map((accion) => (\r\n {\r\n handleClose();\r\n accion.onClick();\r\n }}\r\n />\r\n ))}\r\n \r\n \r\n );\r\n}","import React from \"react\"\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport CheckIcon from '@mui/icons-material/Check';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { getPermisosUsuarios, getTipoPermisos, activarDesactivarPermisoUsuario, GetPermisoUsuarioActual } from \"../../helpers/empresa\";\r\nimport FullScreenDialog from \"../fullScreenDialog\";\r\nimport CustomTable, { StyledTableCell, StyledTableRow } from \"../customTable\";\r\nimport NuevoPermisoUsuario from \"./nuevoUsuarioEmpresa\";\r\nimport CustomDialog from \"../customDialog\";\r\nimport SpeedDialButton from \"../sdButton\";\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n//ESTA VISTA PERMITE VISUALIZAR LOS USUARIOS DE LA EMPRESA CON SUS PERMISOS\r\n//CREAR USUARIOS NUEVOS\r\n\r\nexport default function UsuariosEmpresa() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const navegar = useHistory();\r\n const [openDialog, setOpenDialog] = React.useState(false);\r\n const initialCustomDialog = { show: false, title: \"\", text: \"\", buttons: [] };\r\n const [customDialog, setCustomDialog] = React.useState(initialCustomDialog);\r\n const [permisosUsuarios, setPermisosUsuarios] = useState([]);\r\n const tipoPermisos = useRef([]);\r\n const [usuarioTareas, setUsuarioTareas] = useState(false);\r\n\r\n const initialState = {\r\n permisoUsuarioID: 0,\r\n email: '',\r\n password: '',\r\n usuarioID: '',\r\n permisoID: 1,\r\n }\r\n\r\n const [usuarioSeleccionado, setUsuarioSeleccionado] = useState(initialState)\r\n\r\n const handleClose = () => {\r\n setOpenDialog(false)\r\n setUsuarioSeleccionado(initialState)\r\n };\r\n\r\n useEffect(() => {\r\n BuscarTipoPermisos();\r\n\r\n BuscarPermisosUsuarios();\r\n\r\n BuscarPermisoUsuarioActual();\r\n }, [])\r\n\r\n const BuscarTipoPermisos = async () => {\r\n const token = await getTokenSilently();\r\n getTipoPermisos(token)\r\n .then(respuestaTipoPermisos => {\r\n tipoPermisos.current = [...respuestaTipoPermisos];\r\n \r\n })\r\n }\r\n const BuscarPermisosUsuarios = async () => {\r\n const token = await getTokenSilently();\r\n getPermisosUsuarios(user, token)\r\n .then(respuestaPermisosUsuarios => {\r\n setPermisosUsuarios(respuestaPermisosUsuarios);\r\n })\r\n }\r\n const BuscarPermisoUsuarioActual = async () => {\r\n const token = await getTokenSilently();\r\n GetPermisoUsuarioActual(user, token)\r\n .then(respuestaPermiso => {\r\n setUsuarioTareas(respuestaPermiso.permisoID === 3);\r\n })\r\n }\r\n\r\n\r\n const desvincularPermisoUsuario = permisoUsuario => {\r\n setCustomDialog({\r\n show: true, \r\n title: !permisoUsuario.desvinculado ? \"Desvincular Usuario\" : \"Vincular Usuario\", \r\n text: !permisoUsuario.desvinculado ? \"¿Está seguro que desea desvincular este Usuario del Sistema?\" : \"¿Está seguro que desea vincular este Usuario del Sistema?\", \r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n };\r\n\r\n const desvincular = async (permisoUsuario) => {\r\n const token = await getTokenSilently();\r\n const result = await activarDesactivarPermisoUsuario(user, token, permisoUsuario);\r\n if (result) {\r\n guardarPermisoUsuario({...permisoUsuario, desvinculado : result.desvinculado}, \"DELETE\")\r\n }\r\n }\r\n\r\n const editarPermisoUsuario = permisoUsuario => {\r\n setUsuarioSeleccionado(permisoUsuario);\r\n setOpenDialog(true);\r\n };\r\n\r\n const guardarPermisoUsuario = (permisoUsuario, action) => {\r\n switch (action) {\r\n case \"POST\":\r\n if(permisoUsuario.permisoID > 0){\r\n setPermisosUsuarios([...permisosUsuarios, permisoUsuario]); \r\n }\r\n else{\r\n setCustomDialog(initialCustomDialog)\r\n }\r\n break;\r\n case \"PUT\":\r\n setPermisosUsuarios([...permisosUsuarios.map(tt => tt.permisoUsuarioID === permisoUsuario.permisoUsuarioID ? {...permisoUsuario} : tt)]); \r\n break;\r\n case \"DELETE\":\r\n setPermisosUsuarios([...permisosUsuarios.map(tt => tt.permisoUsuarioID === permisoUsuario.permisoUsuarioID ? {...permisoUsuario} : tt)]); \r\n setCustomDialog(initialCustomDialog)\r\n break;\r\n default:\r\n console.log('guardarPermisoUsuario()', { permisoUsuario, action })\r\n }\r\n handleClose();\r\n }\r\n\r\n return (\r\n
\r\n

Usuarios Empresa

\r\n
\r\n \r\n {permisosUsuarios.map((permisoUsuario) => (\r\n \r\n \r\n {!permisoUsuario.desvinculado && }{permisoUsuario.nombreUsuario}\r\n \r\n \r\n {!permisoUsuario.desvinculado && }{permisoUsuario.email}\r\n \r\n \r\n {permisoUsuario.permisoNombre}\r\n \r\n \r\n \r\n desvincularPermisoUsuario(permisoUsuario)} aria-label=\"delete\" disabled={usuarioTareas}>\r\n {!permisoUsuario.desvinculado ? : }\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n setOpenDialog(true)], [\"Edit\", \"Editar Empresa\", () => navegar.push(\"/empresa/datosEmpresa\")]]} />\r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n )\r\n}","import React, { useState, useEffect } from \"react\"\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport TextField from '@mui/material/TextField';\r\nimport { Paper } from \"@mui/material\";\r\nimport CheckIcon from '@mui/icons-material/Check';\r\n\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { getEmpresas, getEmpresaActual, postEmpresa, putEmpresa } from \"../../helpers/empresa\";\r\nimport FloatingActionButtons from \"../fabButton\";\r\n\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n\r\nexport default function NuevaEmpresa() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const navegar = useHistory();\r\n\r\n //CODIGO QUE IRIA EN EL REGISTRAR\r\n const initialState = {\r\n empresaID: 0,\r\n nombreEmpresa: '',\r\n empresaIDGestion: 0,\r\n urlGestion: '',\r\n token: '',\r\n direccion: '',\r\n telefono: '',\r\n imagen: null,\r\n logo: null,\r\n imagenString: '',\r\n logoString: '',\r\n personaID: 0,\r\n usuarioID: ''\r\n }\r\n\r\n const [empresa, setEmpresa] = useState(initialState)\r\n \r\n\r\n const obtenerEmpresa = async () => {\r\n const token = await getTokenSilently();\r\n getEmpresaActual(user, token)\r\n .then(respuestaEmpresa => {\r\n if(respuestaEmpresa.empresaID > 0){\r\n setEmpresa(respuestaEmpresa);\r\n }\r\n })\r\n };\r\n\r\n useEffect(() => {\r\n obtenerEmpresa();\r\n }, [])\r\n\r\n \r\n \r\n const handleChange = (evento) => {\r\n const {name, value} = evento.target;\r\n setEmpresa({...empresa, [name]: value});\r\n }\r\n\r\n const guardar = async () => {\r\n const token = await getTokenSilently();\r\n\r\n // if(empresa.empresaID === 0){\r\n // const result = await postEmpresa(empresa, token);\r\n // }\r\n // else{\r\n const result = await putEmpresa(empresa, user, token);\r\n // }\r\n \r\n navegar.push(\"/\");\r\n }\r\n\r\n var onChangeFileButton = (e) => {\r\n const fileReader = new FileReader();\r\n fileReader.onload = () => {\r\n if (fileReader.readyState === 2) {\r\n setEmpresa({...empresa, imagenString: fileReader.result, imagen:null});\r\n }\r\n };\r\n fileReader.readAsDataURL(e.target.files[0]);\r\n }\r\n\r\n var onChangeIcon = (e) => {\r\n const fileReader = new FileReader();\r\n fileReader.onload = () => {\r\n if (fileReader.readyState === 2) {\r\n setEmpresa({...empresa, logoString: fileReader.result, logo: null });\r\n }\r\n };\r\n fileReader.readAsDataURL(e.target.files[0]);\r\n }\r\n\r\n const handleDeleteImg = () => setEmpresa({ ...empresa, imagenString: '', imagen: null });\r\n const handleDeleteLogo = () => setEmpresa({ ...empresa, logoString: '', logo: null });\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n empresa.imagenString && (\r\n \r\n )\r\n }\r\n \r\n\r\n {\r\n empresa.imagenString && \r\n \r\n \r\n \r\n }\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n empresa.logoString && (\r\n \r\n )\r\n }\r\n \r\n\r\n {\r\n empresa.logoString && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n\r\n \r\n \r\n )\r\n}","export const getLocalidades = async(user, token) => {\r\n const response = await fetch('api/Localidades/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const postLocalidad = async(localidad, user, token) => {\r\n localidad.nombre = localidad.nombre.toUpperCase();\r\n \r\n const response = await fetch('api/Localidades/' + user.sub, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(localidad)\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const putLocalidad = async(localidad, user, token) => {\r\n localidad.nombre = localidad.nombre.toUpperCase();\r\n\r\n const response = await fetch('api/Localidades/' + localidad.localidadID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(localidad)\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const deleteLocalidad = async(localidad, user, token) => {\r\n const response = await fetch('api/Localidades/' + localidad.localidadID + '/' + user.sub, {\r\n method: \"DELETE\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n","import React, { useState, useRef } from \"react\"\r\nimport { isEqual } from 'lodash';\r\nimport { MenuItem, TextField, Box } from \"@mui/material\";\r\n//Iconos\r\nimport CheckIcon from '@mui/icons-material/Check';\r\n//Helpers\r\nimport { postLocalidad, putLocalidad } from \"../../helpers/localidades\";\r\n//Custom Components\r\nimport FloatingActionButtons from \"../fabButton\";\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\nexport default function NuevaLocalidad({ localidadSeleccionada, guardar, provincias, setCustomSnackbar }) {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [ localidad, setLocalidad ] = useState(localidadSeleccionada);\r\n\r\n const localidadSinCambios = useRef(localidadSeleccionada);\r\n\r\n const handleChange = (evento) => {\r\n const { name, value } = evento.target;\r\n setLocalidad({ ...localidad, [ name ]: value });\r\n }\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n \r\n const token = await getTokenSilently();\r\n if (localidad.localidadID > 0) {\r\n const result = await putLocalidad(localidad, user, token);\r\n if(result.status != 'Error'){\r\n guardar(result, \"PUT\")\r\n }else{\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n\r\n }\r\n \r\n }\r\n else {\r\n const result = await postLocalidad(localidad, user, token);\r\n if(result.status != 'Error'){\r\n guardar(result, \"POST\")\r\n }else{\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n }\r\n \r\n }\r\n }\r\n\r\n const BotonGuardarComponent = () => {\r\n if(isEqual(localidad, localidadSinCambios.current)) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n {provincias.map((option) => (\r\n \r\n {option.provinciaNombre}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","export const getProvincias = async(user, token) => {\r\n const response = await fetch('api/Provincias/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const postProvincia = async(provincia, user, token) => {\r\n provincia.provinciaNombre = provincia.provinciaNombre.toUpperCase();\r\n \r\n const response = await fetch('api/Provincias/' + user.sub, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(provincia)\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const putProvincia = async(provincia, user, token) => {\r\n provincia.provinciaNombre = provincia.provinciaNombre.toUpperCase();\r\n\r\n const response = await fetch('api/Provincias/' + provincia.provinciaID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(provincia)\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const deleteProvincia = async(provincia, user, token) => {\r\n const response = await fetch('api/Provincias/' + provincia.provinciaID + '/' + user.sub, {\r\n method: \"DELETE\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n","import React, { useRef, useCallback, useEffect, useState } from \"react\"\r\n//Icons\r\nimport AddIcon from '@mui/icons-material/Add';\r\n\r\n//Custom Components\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport FullScreenDialog from \"../fullScreenDialog\";\r\nimport CustomDialog from \"../customDialog\";\r\nimport CustomSnackbar from '../customSnackbar';\r\nimport CustomTable, { StyledTableCell, StyledTableRow } from \"../customTable\";\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Button from '@mui/material/Button';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport { GetPermisoUsuarioActual } from '../../helpers/empresa';\r\n\r\n//Views\r\nimport NuevaLocalidad from \"./nuevaLocalidad\";\r\n\r\n//Helpers\r\nimport { getProvincias } from \"../../helpers/provincias\";\r\nimport { getLocalidades, deleteLocalidad } from \"../../helpers/localidades\";\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\nimport { result } from \"lodash\";\r\n\r\nexport default function Localidades() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const initialCustomDialog = { show: false, title: \"\", text: \"\", buttons: [] };\r\n const [customDialog, setCustomDialog] = useState(initialCustomDialog);\r\n const [customSnackbar, setCustomSnackbar] = React.useState(undefined);\r\n const [usuarioTareas, setUsuarioTareas] = useState(false);\r\n const [openDialog, setOpenDialog] = useState(false);\r\n const [localidades, setLocalidades] = useState([]);\r\n const provincias = useRef([]);\r\n\r\n const initialState = {\r\n localidadID: 0,\r\n nombre: '',\r\n codigoPostal: '',\r\n provinciaID: 0\r\n }\r\n const [localidadSeleccionada, setLocalidadSeleccionada] = useState(initialState)\r\n\r\n useEffect(() => {\r\n obtenerLocalidades();\r\n BuscarPermisoUsuarioActual();\r\n InitialFetch();\r\n return function() {\r\n provincias.current = [];\r\n }\r\n }, [])\r\n\r\n const obtenerLocalidades = async () => {\r\n const token = await getTokenSilently();\r\n getLocalidades(user, token)\r\n .then(respuestaLocalidades => {\r\n setLocalidades(respuestaLocalidades);\r\n })\r\n };\r\n\r\n const InitialFetch = async () => {\r\n try {\r\n const token = await getTokenSilently();\r\n const provinciasResponse = await getProvincias(user, token);\r\n provincias.current = provinciasResponse;\r\n } catch(error) {\r\n console.error('Ocurrio un error en Localidad - InitialFetch: \\n', error);\r\n }\r\n }\r\n\r\n const handleOpenDialog = useCallback(() => setOpenDialog(true), []);\r\n\r\n const handleClose = useCallback(() => {\r\n setOpenDialog(false)\r\n setLocalidadSeleccionada(initialState)\r\n }, [initialState]);\r\n\r\n const BuscarPermisoUsuarioActual = async () => {\r\n const token = await getTokenSilently();\r\n GetPermisoUsuarioActual(user, token)\r\n .then(respuestaPermiso => {\r\n setUsuarioTareas(respuestaPermiso.permisoID === 3);\r\n })\r\n }\r\n\r\n const eliminarLocalidad = localidad => {\r\n setCustomDialog({\r\n show: true, \r\n title: \"Eliminar\", \r\n text: \"¿Está seguro que desea eliminar esta Localidad?\", \r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n };\r\n\r\n const eliminar = async (localidad) => {\r\n const token = await getTokenSilently();\r\n const result = await deleteLocalidad(localidad, user, token);\r\n if (result.status === 'Success') {\r\n guardarLocalidad(localidad, \"DELETE\")\r\n }\r\n\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n\r\n setCustomDialog(initialCustomDialog)\r\n }\r\n\r\n const editarLocalidad = localidad => {\r\n setLocalidadSeleccionada(localidad);\r\n setOpenDialog(true);\r\n };\r\n\r\n const guardarLocalidad = useCallback((localidad, action) => {\r\n switch (action) {\r\n case \"POST\":\r\n setLocalidades([...localidades, localidad]);\r\n break;\r\n case \"PUT\":\r\n setLocalidades([...localidades.map(l => l.localidadID === localidad.localidadID ? { ...localidad } : l)]);\r\n break;\r\n case \"DELETE\":\r\n setLocalidades([...localidades.filter(l => l.localidadID !== localidad.localidadID)]);\r\n setCustomDialog(initialCustomDialog)\r\n break;\r\n }\r\n\r\n handleClose();\r\n\r\n }, [initialCustomDialog])\r\n return (\r\n
\r\n

Listado de Localidades

\r\n
\r\n \r\n \r\n {localidades.map((localidad) => (\r\n \r\n \r\n {localidad.nombre}\r\n \r\n \r\n {localidad.codigoPostal}\r\n \r\n \r\n {localidad.provincia.provinciaNombre}\r\n \r\n \r\n \r\n \r\n eliminarLocalidad(localidad)} aria-label=\"delete\" disabled={usuarioTareas}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport IconButton from '@mui/material/IconButton';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\n\r\nimport Tooltip from \"@mui/material/Tooltip\";\r\n\r\nimport {useTheme, useMediaQuery} from '@mui/material'\r\nimport { GetPermisoUsuarioActual } from '../../helpers/empresa';\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\nexport default function BotonesAccionesTabla({ persona, eliminar }) {\r\n const { user, getTokenSilently } = useAuth0();\r\n const theme = useTheme();\r\n const match_md = useMediaQuery(theme.breakpoints.up('md'));\r\n const [usuarioTareas, setUsuarioTareas] = useState(false);\r\n useEffect(() => {\r\n BuscarPermisoUsuarioActual();\r\n \r\n return () => {\r\n }\r\n }, [])\r\n \r\n \r\n const BuscarPermisoUsuarioActual = async () => {\r\n const token = await getTokenSilently();\r\n GetPermisoUsuarioActual(user, token)\r\n .then(respuestaPermiso => {\r\n setUsuarioTareas(respuestaPermiso.permisoID === 3);\r\n })\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n eliminar(persona)} \r\n aria-label=\"delete\" \r\n size={match_md ? \"medium\" : \"small\"}\r\n disabled={usuarioTareas}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}","import React, { Fragment, useRef, useState, useCallback, useEffect } from 'react';\r\nimport { Box, Grid, TextField } from '@mui/material';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\n\r\nimport CustomTable, { StyledTableCell, StyledTableRow } from \"../customTable\";\r\nimport BotonesAccionesTabla from \"./botonesAccionesTabla\";\r\nimport { GetPermisoUsuarioActual } from '../../helpers/empresa';\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\nexport default function Table({ headers, lista, actions }) {\r\n const inputBuscarRef = useRef();\r\n const { user, getTokenSilently } = useAuth0();\r\n const [usuarioTareas, setUsuarioTareas] = useState(false);\r\n const [personas, setPersonas] = useState([]);\r\n\r\n const { editar, eliminar } = actions;\r\n\r\n\r\n const theme = useTheme();\r\n \r\n const matches_sm = useMediaQuery(theme.breakpoints.up('sm'));\r\n\r\n const filtrarAgruparTareas = useCallback((value = '') => {\r\n const fechaTareasAgrupadas = lista.filter(persona => (value !== '' && persona.nombreCompleto.toLowerCase().includes(value.toLowerCase())) || value === '')\r\n .reduce((acc, persona) => {\r\n const personaNombre = (persona.nombreCompleto);\r\n const existe = acc[personaNombre];\r\n if (!existe) {\r\n acc[personaNombre] = [persona];\r\n }\r\n else {\r\n acc[personaNombre] = [...existe, persona]\r\n }\r\n return acc\r\n },\r\n {});\r\n\r\n return fechaTareasAgrupadas\r\n }, [lista])\r\n\r\n const handleChangeBuscar = () => {\r\n setPersonas(filtrarAgruparTareas(inputBuscarRef.current.value));\r\n };\r\n\r\n useEffect(() => {\r\n BuscarPermisoUsuarioActual();\r\n setPersonas(filtrarAgruparTareas(inputBuscarRef.current ? inputBuscarRef.current.value : null));\r\n }, [lista, filtrarAgruparTareas])\r\n\r\n const BuscarPermisoUsuarioActual = async () => {\r\n const token = await getTokenSilently();\r\n GetPermisoUsuarioActual(user, token)\r\n .then(respuestaPermiso => {\r\n setUsuarioTareas(respuestaPermiso.permisoID === 3);\r\n })\r\n }\r\n \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n Object.keys(personas).map((group) => (\r\n \r\n \r\n \r\n {personas[ group ].map((persona) => (\r\n \r\n \r\n \r\n {persona.nombreCompleto}\r\n \r\n \r\n {persona.nombreFantasia}\r\n \r\n \r\n {persona.dni}\r\n \r\n \r\n {persona.celular}\r\n \r\n \r\n {persona.direccion}\r\n \r\n \r\n {persona.correoElectronico}\r\n \r\n \r\n {persona.localidad.nombre}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))\r\n }\r\n \r\n\r\n {Object.keys(personas).length === 0 &&

NO EXISTEN PERSONAS PARA MOSTRAR.

}\r\n
\r\n )\r\n}","export const getPersonas = async(user, token) => {\r\n const response = await fetch('api/Personas/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const postPersona = async(persona, user, token) => {\r\n persona.nombreCompleto = persona.nombreCompleto.toUpperCase();\r\n persona.nombreFantasia = persona.nombreFantasia.toUpperCase();\r\n persona.direccion = persona.direccion.toUpperCase();\r\n persona.correoElectronico = persona.correoElectronico.toUpperCase();\r\n\r\n const response = await fetch('api/Personas/' + user.sub, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(persona)\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const putPersona = async(persona, user, token) => {\r\n persona.nombreCompleto = persona.nombreCompleto.toUpperCase();\r\n persona.nombreFantasia = persona.nombreFantasia.toUpperCase();\r\n persona.direccion = persona.direccion.toUpperCase();\r\n persona.correoElectronico = persona.correoElectronico.toUpperCase();\r\n\r\n const response = await fetch('api/Personas/' + persona.personaID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(persona)\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const deletePersona = async(persona, user, token) => {\r\n const response = await fetch('api/Personas/' + persona.personaID + '/' + user.sub, {\r\n method: \"DELETE\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n","import React, { useState, useRef } from \"react\"\r\nimport { isEqual } from 'lodash';\r\nimport { MenuItem, TextField, Box } from \"@mui/material\";\r\n//Iconos\r\nimport CheckIcon from '@mui/icons-material/Check';\r\n//Helpers\r\nimport { postPersona, putPersona } from \"../../helpers/persona\";\r\n//Custom Components\r\nimport FloatingActionButtons from \"../fabButton\";\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\nexport default function Nuevapersona({ personaSeleccionada, guardar, localidades, setCustomSnackbar }) {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [ persona, setPersona ] = useState(personaSeleccionada);\r\n\r\n const personaSinCambios = useRef(personaSeleccionada);\r\n\r\n const handleChange = (evento) => {\r\n const { name, value } = evento.target;\r\n setPersona({ ...persona, [ name ]: value });\r\n }\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n \r\n const token = await getTokenSilently();\r\n if (persona.personaID > 0) {\r\n const result = await putPersona(persona, user, token);\r\n if(result.status != 'Error'){\r\n guardar(result, \"PUT\")\r\n }else{\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n }\r\n }\r\n else {\r\n const result = await postPersona(persona, user, token);\r\n if(result.status != 'Error'){\r\n guardar(result, \"POST\")\r\n }else{\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n }\r\n }\r\n }\r\n\r\n const BotonGuardarComponent = () => {\r\n if(isEqual(persona, personaSinCambios.current)) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n { e.target.value = e.target.value.replace(/[^0-9]/g, '') }}\r\n />\r\n { e.target.value = e.target.value.replace(/[^0-9]/g, '') }}\r\n />\r\n \r\n \r\n\r\n \r\n {localidades.map((option) => (\r\n \r\n {option.nombre}({option.codigoPostal})/{option.provincia.provinciaNombre}\r\n \r\n ))}\r\n
\r\n\r\n \r\n \r\n )\r\n}\r\n","import React, { useRef, useCallback, useEffect, useState } from \"react\"\r\n//Icons\r\nimport AddIcon from '@mui/icons-material/Add';\r\n\r\n//Custom Components\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport FullScreenDialog from \"../fullScreenDialog\";\r\nimport CustomDialog from \"../customDialog\";\r\nimport CustomTable, { StyledTableCell, StyledTableRow } from \"../customTable\";\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Button from '@mui/material/Button';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport CustomSnackbar from '../customSnackbar';\r\n//Views\r\nimport Table from \"./tabla\";\r\n\r\n\r\n//Helpers\r\nimport { getLocalidades } from \"../../helpers/localidades\";\r\nimport { getPersonas, deletePersona } from \"../../helpers/persona\";\r\nimport { GetPermisoUsuarioActual } from '../../helpers/empresa';\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\nimport NuevaPersona from \"./nuevaPersona\";\r\n\r\n\r\nexport default function Personas() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [state, setState] = useState({ loading: false, view: 'table' });\r\n const initialCustomDialog = { show: false, title: \"\", text: \"\", buttons: [] };\r\n const [customDialog, setCustomDialog] = useState(initialCustomDialog);\r\n const [customSnackbar, setCustomSnackbar] = React.useState(undefined);\r\n const [usuarioTareas, setUsuarioTareas] = useState(false);\r\n const [openDialog, setOpenDialog] = useState(false);\r\n const [personas, setPersonas] = useState([]);\r\n const localidades = useRef([]);\r\n\r\n const initialState = {\r\n personaID: 0,\r\n nombreCompleto: '',\r\n nombreFantasia: '',\r\n dni: '',\r\n celular: '',\r\n direccion: '',\r\n correoElectronico: '',\r\n localidadID: 0,\r\n }\r\n const [personaSeleccionada, setPersonaSeleccionada] = useState(initialState)\r\n\r\n useEffect(() => {\r\n obtenerPersonas();\r\n BuscarPermisoUsuarioActual();\r\n async function InitialFetch() {\r\n try {\r\n const token = await getTokenSilently();\r\n const localidadesResponse = await getLocalidades(user, token);\r\n localidades.current = localidadesResponse;\r\n } catch(error) {\r\n console.error('Ocurrio un error en Localidad - InitialFetch: \\n', error);\r\n }\r\n }\r\n InitialFetch();\r\n return function() {\r\n localidades.current = [];\r\n }\r\n }, [])\r\n const obtenerPersonas = async () => {\r\n const token = await getTokenSilently();\r\n getPersonas(user, token)\r\n .then(respuestaPersonas => {\r\n setPersonas(respuestaPersonas);\r\n })\r\n };\r\n const BuscarPermisoUsuarioActual = async () => {\r\n const token = await getTokenSilently();\r\n GetPermisoUsuarioActual(user, token)\r\n .then(respuestaPermiso => {\r\n setUsuarioTareas(respuestaPermiso.permisoID === 3);\r\n })\r\n }\r\n const handleOpenDialog = useCallback(() => setOpenDialog(true), []);\r\n\r\n const handleClose = useCallback(() => {\r\n setOpenDialog(false)\r\n setPersonaSeleccionada(initialState)\r\n }, [initialState]);\r\n\r\n\r\n const eliminarPersona = persona => {\r\n setCustomDialog({\r\n show: true, \r\n title: \"Eliminar\", \r\n text: \"¿Está seguro que desea eliminar esta Persona?\", \r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n };\r\n\r\n const eliminar = async (persona) => {\r\n const token = await getTokenSilently();\r\n const result = await deletePersona(persona, user, token,);\r\n if (result.status === 'Success') {\r\n guardarPersona(persona, \"DELETE\")\r\n }\r\n\r\n setCustomSnackbar({\r\n mensaje: result.message,\r\n tipo: result.status.toLowerCase(),\r\n direccion: \"right\",\r\n open: true,\r\n handleClose: () => setCustomSnackbar(prevState => ({...prevState, open: false}))\r\n });\r\n\r\n setCustomDialog(initialCustomDialog)\r\n }\r\n\r\n const editarPersona = persona => {\r\n setPersonaSeleccionada(persona);\r\n setOpenDialog(true);\r\n \r\n };\r\n\r\n const guardarPersona = useCallback((persona, action) => {\r\n switch (action) {\r\n case \"POST\":\r\n setPersonas([...personas, persona]);\r\n break;\r\n case \"PUT\":\r\n setPersonas([...personas.map(p => p.personaID === persona.personaID ? { ...persona } : p)]);\r\n break;\r\n case \"DELETE\":\r\n setPersonas([...personas.filter(p => p.personaID !== persona.personaID)]);\r\n setCustomDialog(initialCustomDialog)\r\n break;\r\n }\r\n\r\n handleClose();\r\n\r\n }, [initialCustomDialog])\r\n\r\n return (\r\n
\r\n

Listado de Personas

\r\n
\r\n \r\n {/* \r\n {personas.map((persona) => (\r\n \r\n \r\n {persona.nombreCompleto}\r\n \r\n \r\n {persona.nombreFantasia}\r\n \r\n \r\n {persona.dni}\r\n \r\n \r\n {persona.celular}\r\n \r\n \r\n {persona.direccion}\r\n \r\n \r\n {persona.correoElectronico}\r\n \r\n \r\n {persona.localidad.nombre}\r\n \r\n \r\n \r\n \r\n eliminarPersona(persona)} aria-label=\"delete\" disabled={usuarioTareas}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n */}\r\n\r\n {state.view === 'table' && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import * as React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardActions from '@mui/material/CardActions';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Button from '@mui/material/Button';\r\nimport Typography from '@mui/material/Typography';\r\n\r\n\r\nexport default function CustomBasicCard({Titulo, TextoSecundario, Descripcion, Detalle}) {\r\n return (\r\n \r\n \r\n \r\n {TextoSecundario}\r\n \r\n \r\n {Titulo}\r\n \r\n \r\n
Observación:
\r\n {Descripcion}\r\n
\r\n
\r\n \r\n
Detalle:
\r\n {Detalle}\r\n
\r\n\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n );\r\n}\r\n","import moment from 'moment'\r\n\r\nexport const getTareasEstado = async(user, estadoTareaID = 1, fechaDesde, fechaHasta, servicioID = 0, tipoTareaID = 0, usuarioID, sinFecha, token) => {\r\n const fechaD = moment(fechaDesde).format();\r\n const fechaH = moment(fechaHasta).format();\r\n \r\n const response = await fetch(`api/Tareas/GetTareasEstado/${user.sub}?EstadoTareaID=${estadoTareaID}&FechaDesde=${fechaD}&FechaHasta=${fechaH}&ServicioID=${servicioID}&TipoTareaID=${tipoTareaID}&UsuarioID=${usuarioID}&SinFecha=${sinFecha}`, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const getTareasEstadoAgenda = async(user, estadoTareaID = 1, fechaDesde, fechaHasta, servicioID = 0, tipoTareaID = 0, token) => {\r\n const fechaD = moment(fechaDesde).format();\r\n const fechaH = moment(fechaHasta).format();\r\n \r\n const response = await fetch(`api/Tareas/GetTareasEstadoAgenda/${user.sub}?EstadoTareaID=${estadoTareaID}&FechaDesde=${fechaD}&FechaHasta=${fechaH}&ServicioID=${servicioID}&TipoTareaID=${tipoTareaID}`, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n\r\nexport const postTarea = async(tarea, user, token) => {\r\n tarea.nombre = tarea.nombre.toUpperCase();\r\n\r\n const response = await fetch('api/Tareas/' + user.sub, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(tarea)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const putTarea = async(tarea, user, token) => {\r\n tarea.nombre = tarea.nombre.toUpperCase();\r\n if(moment(tarea.fechaTarea).isAfter(tarea.fechaTareaFin)) {\r\n tarea.fechaTareaFin = tarea.fechaTarea;\r\n }\r\n \r\n const response = await fetch('api/Tareas/' + tarea.tareaID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(tarea)\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const deleteTarea = async(tarea, user, token) => {\r\n const response = await fetch('api/Tareas/' + tarea.tareaID + '/' + user.sub, {\r\n method: \"DELETE\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n return response.ok;\r\n}\r\n\r\nexport const enProcesoTarea = async(tarea, user, token) => {\r\n const response = await fetch('api/Tareas/EnProceso/' + tarea.tareaID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n //return response.ok;\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const checkTarea = async(tarea, user, token) => {\r\n const response = await fetch('api/Tareas/CheckTarea/' + tarea.tareaID + '/' + user.sub, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n // return response.ok;\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const activarNotificacion = async(tarea, user, token, activar = true) => {\r\n const response = await fetch(`api/Tareas/ActivarNotificaciones/${tarea.tareaID}/${user.sub}?activar=${Number(activar)}`, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport const getTareasObservaciones = async(user, tareaFiltrar, token) => {\r\n const fechaDesde = moment(tareaFiltrar.fechaDesde).format();\r\n const fechaHasta = moment(tareaFiltrar.fechaHasta).format();\r\n\r\n const response = await fetch(`api/Tareas/GetTareasObservaciones/${user.sub}?EstadoTareaID=${tareaFiltrar.estadoTareaID}&FechaDesde=${fechaDesde}&FechaHasta=${fechaHasta}`, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}","export const getEstadoTareas = async(token) => {\r\n const response = await fetch('api/EstadosTareas', {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\n// export const getEstadoTareasConsulta = async(token) => {\r\n// const response = await fetch('api/EstadosTareas/GetEstadoTareasConsulta', {\r\n// headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n// });\r\n\r\n// // if (response.status === 401) {\r\n// // await authService.signIn();\r\n// // }\r\n\r\n// const data = await response.json();\r\n// return data;\r\n// }","import React, { useCallback, useEffect, useRef, useState } from 'react'\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Grid, MenuItem, TextField } from '@mui/material'\r\nimport { Box } from '@mui/system'\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\n\r\nimport moment from \"moment\";\r\nimport CustomBasicCard from '../customBasicCard';\r\nimport { getTareasObservaciones } from '../../helpers/tareas';\r\nimport { getEstadoTareas } from '../../helpers/estadoTareas';\r\n\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\nexport default function VisualizarObservaciones() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [estadoTarea, setEstadoTarea] = useState([]);\r\n const [tareas, setTareas] = useState([]);\r\n const [tareasFiltradas, setTareasFiltradas] = useState([]);\r\n const inputBuscarRef = useRef(null);\r\n\r\n const initialState = {\r\n fechaDesde: moment().startOf(window.localStorage.getItem('filtroMensualStartObservacion') || \"week\").format(\"yyyy-MM-DDTHH:mm\"),\r\n fechaHasta: moment().endOf(window.localStorage.getItem('filtroMensualEdnObservacion') || \"week\").format(\"yyyy-MM-DDTHH:mm\"),\r\n estadoTareaID: 1,\r\n buscar: ''\r\n }\r\n\r\n const [tareaFiltrar, setTareaFiltrar] = useState(initialState)\r\n \r\n const theme = useTheme();\r\n const matches_md = useMediaQuery(theme.breakpoints.up('md'));\r\n const matches_sm = useMediaQuery(theme.breakpoints.up('sm'));\r\n\r\n \r\n useEffect(() => {\r\n obtenerTareas();\r\n }, [])\r\n const obtenerTareas = async () => {\r\n const token = await getTokenSilently();\r\n getEstadoTareas(token)\r\n .then(respuestaEstadoTareas => {\r\n setEstadoTarea(respuestaEstadoTareas)\r\n })\r\n };\r\n\r\n\r\n useEffect(() => {\r\n filtrarTareas();\r\n }, [tareaFiltrar])\r\n\r\n useEffect(() => {\r\n setTareasFiltradas([...tareas]);\r\n }, [tareas])\r\n\r\n \r\n const handleChange = (evento) => {\r\n const { value, name } = evento.target;\r\n setTareaFiltrar({...tareaFiltrar, [name]: value})\r\n }\r\n\r\n const filtrarTareas = async () => {\r\n const token = await getTokenSilently();\r\n getTareasObservaciones(user, tareaFiltrar, token)\r\n .then(respuestaTareas => {\r\n setTareas(respuestaTareas);\r\n })\r\n }\r\n\r\n const handleChangeFiltrar = () => {\r\n setTareasFiltradas(filtrarTareasTexto(inputBuscarRef.current.value));\r\n };\r\n \r\n const filtrarTareasTexto = useCallback((value = '') => {\r\n const tarea = \r\n tareas.filter(tareaa => (value !== '' && tareaa.nombre.toLowerCase().includes(value.toLowerCase())) || value === '');\r\n\r\n return tarea\r\n }, [tareas])\r\n\r\n \r\n return (\r\n
\r\n

Detalle y Observaciones de Tareas

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n [TODAS LOS ESTADOS]\r\n \r\n {estadoTarea.map((option) => (\r\n \r\n {option.estadoTareaNombre}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n {tareasFiltradas.map((option) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n
\r\n )\r\n}","import * as React from 'react';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nexport default function CustomAutocomplete({elements, elementsActive, label, ...props}) {\r\n return (\r\n option.email}\r\n filterSelectedOptions\r\n value={elementsActive || []}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n );\r\n}","import React, { useState } from 'react';\r\nimport { Tab, Tabs, Box } from '@mui/material';\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n [TODOS LOS ESTADOS]\r\n \r\n {estadosTareas.map((option) => (\r\n \r\n {option.estadoTareaNombre}\r\n \r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n [TODOS LOS TIPOS TAREAS]\r\n \r\n {tiposTareas.map((option) => (\r\n \r\n {option.tipoTareaNombre}\r\n \r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n [TODOS LOS SERVICIOS]\r\n \r\n {servicios.map((option) => (\r\n \r\n {option.titulo}\r\n \r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n [TODOS LOS USUARIOS]\r\n \r\n {usuariosEmpresa.map((option) => (\r\n \r\n {option.email}\r\n \r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n Object.keys(tareasAgrupadas).map((group) => (\r\n \r\n \r\n \r\n {group}\r\n \r\n \r\n {tareasAgrupadas[ group ].map((tarea) => (\r\n \r\n \r\n \r\n {tarea.nombre}\r\n \r\n {tarea.tipoTarea && }\r\n {tarea.servicioID !== 0 && }\r\n {tarea.estadoTareaID === 1 && }\r\n {tarea.estadoTareaID === 2 && }\r\n {tarea.estadoTareaID === 3 && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))\r\n }\r\n \r\n\r\n {Object.keys(tareasAgrupadas).length === 0 &&

NO EXISTEN TAREAS PARA MOSTRAR.

}\r\n \r\n )\r\n}","import React, { useRef, useCallback, useEffect, useState } from \"react\"\r\nimport moment from \"moment\";\r\n//Icons\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport AccessTimeIcon from '@mui/icons-material/AccessTime';\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport DoneAllIcon from '@mui/icons-material/DoneAll';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone';\r\nimport NotificationsActiveIcon from '@mui/icons-material/NotificationsActive';\r\n//Components\r\nimport Button from '@mui/material/Button';\r\n//Custom Components\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport FullScreenDialog from \"../fullScreenDialog\";\r\nimport CustomDialog from \"../customDialog\";\r\n//Views\r\nimport NuevaTarea from \"./nuevaTarea\";\r\nimport Table from \"./tabla\";\r\n\r\n//Helpers\r\nimport { checkTarea, deleteTarea, enProcesoTarea, getTareasEstado, getTodasTareasEstado, activarNotificacion } from \"../../helpers/tareas\";\r\nimport { getServicios } from \"../../helpers/servicios\";\r\nimport { getTipoTareas } from \"../../helpers/tipoTareas\";\r\nimport { getEstadoTareas } from \"../../helpers/estadoTareas\";\r\nimport { GetPermisoUsuarioActual } from \"../../helpers/empresa\";\r\nimport { getPermisosUsuarios } from \"../../helpers/empresa\";\r\n\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n\r\nconst labelEstadoTarea = (text) => text.split(\" \").map(word => word.charAt(0) + word.slice(1).toLowerCase()).join(\" \");\r\n\r\nexport default function VistaTabla() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [state, setState] = useState({ loading: false, view: 'panel' });\r\n const initialCustomDialog = { show: false, title: \"\", text: \"\", buttons: [] };\r\n const [customDialog, setCustomDialog] = useState(initialCustomDialog);\r\n \r\n const [openDialog, setOpenDialog] = useState(false);\r\n\r\n const [tareas, setTareas] = useState([]);\r\n const [ultimaTareaEditada, setUltimaTareaEditada] = useState(0);\r\n \r\n const estadosTareas = useRef([]);\r\n const estadosTareasConsulta = useRef([]);\r\n const servicios = useRef([]);\r\n const tiposTareas = useRef([]);\r\n const esUsuarioTareas = useRef(false);\r\n const usuariosEmpresa = useRef([]);\r\n\r\n const initialState = {\r\n tareaID: 0,\r\n nombre: '',\r\n fechaTarea: moment().format(\"yyyy-MM-DDTHH:mm\"),\r\n fechaTareaFin: moment().format(\"yyyy-MM-DDTHH:mm\"),\r\n fechaCreacion: moment().format(\"yyyy-MM-DDTHH:mm\"),\r\n servicioID: 0,\r\n tipoTareaID: 0,\r\n estadoTareaID: 1,\r\n detalle: '',\r\n observacionInterna: '',\r\n listadoUsuarios: []\r\n }\r\n const [tareaSeleccionada, setTareaSeleccionada] = useState(initialState)\r\n\r\n useEffect(() => {\r\n setState(prevState => ({ ...prevState, loading: true, view: window.localStorage.getItem('vista-tareas') || 'panel' }));\r\n\r\n async function InitialFetch() {\r\n try {\r\n const token = await getTokenSilently();\r\n const estadosTareasResponse = await getEstadoTareas(token);\r\n estadosTareas.current = estadosTareasResponse.map(estado => {\r\n switch (estado.estadoTareaID) {\r\n case 2: //EN PROCESO\r\n return {...estado, label: labelEstadoTarea(estado.estadoTareaNombre), icon: , color: 'inProcessTask'}\r\n case 3: //FINALIZADA\r\n return {...estado, label: labelEstadoTarea(estado.estadoTareaNombre), icon: , color: 'finishedTask'}\r\n default:\r\n return {...estado, label: labelEstadoTarea(estado.estadoTareaNombre), icon: , color: 'pendingTask'}\r\n }\r\n })\r\n\r\n // const estadosTareasConsultaResponse = await getEstadoTareasConsulta(token);\r\n // estadosTareasConsulta.current = estadosTareasConsultaResponse;\r\n\r\n const permisoResponse = await GetPermisoUsuarioActual(user, token);\r\n esUsuarioTareas.current = permisoResponse.permisoID === 3;\r\n\r\n const usuariosEmpresaResponse = await getPermisosUsuarios(user, token);\r\n usuariosEmpresa.current = usuariosEmpresaResponse;\r\n\r\n const serviciosResponse = await getServicios(user, token);\r\n servicios.current = serviciosResponse;\r\n\r\n const tiposTareasResponse = await getTipoTareas(user, token);\r\n tiposTareas.current = tiposTareasResponse;\r\n\r\n setState(prevState => ({ ...prevState, loading: false }));\r\n\r\n } catch(error) {\r\n console.error('Ocurrio un error en Tareas - InitialFetch: \\n', error);\r\n }\r\n }\r\n \r\n InitialFetch();\r\n \r\n return function() {\r\n estadosTareas.current = [];\r\n usuariosEmpresa.current = [];\r\n tiposTareas.current = [];\r\n servicios.current = [];\r\n esUsuarioTareas.current = false;\r\n }\r\n }, [])\r\n\r\n \r\n const handleOpenDialog = useCallback(() => setOpenDialog(true), []);\r\n\r\n const filtrarTareas = useCallback(async (estadoId = 0, fechaDesde, fechaHasta, servicioID, tipoTareaID, usuarioID, sinFecha) => {\r\n try {\r\n const token = await getTokenSilently();\r\n const tareasResponse = await getTareasEstado(user, estadoId, fechaDesde, fechaHasta, servicioID, tipoTareaID, usuarioID, sinFecha, token);\r\n setTareas(tareasResponse);\r\n } catch(error) {\r\n console.error('Ocurrio un error en Tareas - filtrarTareas: \\n', error);\r\n }\r\n }, [])\r\n\r\n const handleClose = useCallback(() => {\r\n setOpenDialog(false)\r\n setTareaSeleccionada(initialState)\r\n }, [initialState]);\r\n\r\n const eliminarTarea = useCallback(tarea => {\r\n if(openDialog) {\r\n setOpenDialog(false)\r\n }\r\n\r\n const eliminar = async (tarea) => {\r\n const token = await getTokenSilently();\r\n const result = await deleteTarea(tarea, user, token);\r\n if (result === true) {\r\n guardarTarea(tarea, \"DELETE\")\r\n }\r\n }\r\n\r\n setCustomDialog({\r\n show: true,\r\n title: \"Eliminar\",\r\n text: \"¿Está seguro que desea eliminar esta Tarea?\",\r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n }, [initialCustomDialog])\r\n\r\n const finalizarTarea = useCallback((tarea, action = \"DELETE\") => {\r\n const enProceso = async (tarea) => {\r\n setCustomDialog(initialCustomDialog)\r\n\r\n const token = await getTokenSilently();\r\n // const result = await enProcesoTarea(tarea, user, token);\r\n // if (result === true) {\r\n // guardarTarea({...tarea, estadoTareaID: 2, fechaInicio: moment().format(), usuarioInicioEmail: user.name }, action)\r\n // }\r\n\r\n const tareaEditada = await enProcesoTarea(tarea, user, token); \r\n setTareas([...tareas.map(t => t.tareaID === tareaEditada.tareaID ? { ...tareaEditada } : t)]);\r\n handleClose();\r\n setTimeout(() => setUltimaTareaEditada(0), 1500)\r\n }\r\n \r\n const finalizar = async (tarea) => {\r\n setCustomDialog(initialCustomDialog)\r\n\r\n const token = await getTokenSilently();\r\n // const result = await checkTarea(tarea, user, token);\r\n // if (result === true) {\r\n // guardarTarea({...tarea, estadoTareaID: 3, fechaFinalizacion: moment().format(), usuarioInicioEmail: user.name }, action)\r\n // }\r\n const tareaEditada = await checkTarea(tarea, user, token); \r\n setTareas([...tareas.map(t => t.tareaID === tareaEditada.tareaID ? { ...tareaEditada } : t)]);\r\n handleClose();\r\n setTimeout(() => setUltimaTareaEditada(0), 1500)\r\n }\r\n\r\n if (tarea.estadoTareaID === 1) {\r\n setCustomDialog({\r\n show: true,\r\n title: \"Comenzar\",\r\n text: \"¿Está seguro que desea comenzar a realizar esta Tarea?\",\r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n }\r\n\r\n if (tarea.estadoTareaID === 2) {\r\n setCustomDialog({\r\n show: true,\r\n title: \"Finalizar\",\r\n text: \"¿Está seguro que desea finalizar esta Tarea?\",\r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n }\r\n }, [initialCustomDialog])\r\n\r\n const editarTarea = tarea => {\r\n setTareaSeleccionada(tarea);\r\n setOpenDialog(true);\r\n };\r\n\r\n const guardarTarea = useCallback((tarea, action) => {\r\n setUltimaTareaEditada(tarea.tareaID);\r\n \r\n switch (action) {\r\n case \"POST\":\r\n setTareas([...tareas, tarea]);\r\n break;\r\n case \"PUT\":\r\n setTareas([...tareas.map(t => t.tareaID === tarea.tareaID ? { ...tarea } : t)]);\r\n break;\r\n case \"DELETE\":\r\n setTareas([...tareas.filter(t => t.tareaID !== tarea.tareaID)]);\r\n setCustomDialog(initialCustomDialog)\r\n break;\r\n }\r\n\r\n handleClose();\r\n\r\n setTimeout(() => setUltimaTareaEditada(0), 1500)\r\n }, [initialCustomDialog])\r\n\r\n const handleNotifications = useCallback(async (tarea, activar = true) => { \r\n const token = await getTokenSilently(); \r\n const result = await activarNotificacion(tarea, user, token, activar);\r\n if(result) {\r\n setTareas(prevState => [...prevState.map(t => t.tareaID === tarea.tareaID ? { ...tarea, notificar: activar } : t)]);\r\n }\r\n }, [])\r\n \r\n return (\r\n
\r\n

Listado de Tareas

\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n {\r\n handleClose();\r\n handleNotifications(tareaSeleccionada, !tareaSeleccionada.notificar);\r\n },\r\n color: 'primary',\r\n variant: tareaSeleccionada.notificar ? 'contained' : 'outlined',\r\n startIcon: tareaSeleccionada.notificar ? : \r\n },\r\n {\r\n label: 'Eliminar',\r\n 'aria-label': 'delete',\r\n onClick: () => {\r\n handleClose();\r\n eliminarTarea(tareaSeleccionada);\r\n },\r\n color: 'error', \r\n startIcon: \r\n },\r\n {\r\n label: tareaSeleccionada.estadoTareaID === 1 ? 'Comenzar' : 'Finalizar',\r\n 'aria-label': tareaSeleccionada.estadoTareaID === 1 ? 'start' : 'finish',\r\n color: tareaSeleccionada.estadoTareaID === 1 ? 'inProcessTask' : 'finishedTask',\r\n onClick: () => {\r\n handleClose();\r\n finalizarTarea(tareaSeleccionada, \"PUT\")\r\n },\r\n startIcon: tareaSeleccionada.estadoTareaID === 1 ? : \r\n }\r\n ] : null}\r\n >\r\n \r\n \r\n
\r\n )\r\n}","import moment from \"moment\";\r\nimport \"moment/locale/es\"\r\n\r\nexport const esDiaActual = (dia) => {\r\n return moment().isSame(moment(dia), 'day')\r\n}\r\n\r\nexport const esDiaAnterior = (dia) => {\r\n return moment().isSame(moment(dia).add(1, 'days'), 'day')\r\n}\r\n\r\nexport const esDiaPosterior = (dia) => {\r\n return moment().isSame(moment(dia).subtract(1, 'days'), 'day')\r\n}\r\n\r\nexport const esPrimerDiaSemana = (dia) => {\r\n return moment(dia).day() === 0\r\n}\r\n\r\nexport const horasDelDia = () => {\r\n const horas = [];\r\n for(let i = 0; i < 24; i++) {\r\n const hora = i < 10 ? `0${i}:00` : `${i}:00`;\r\n horas.push(hora)\r\n }\r\n\r\n return horas\r\n}\r\n\r\nexport const diasPorSemana = (semana = null) => {\r\n const dias = [];\r\n const comienzoSemana = semana ? moment().week(semana) : moment();\r\n for(let i = 0; i < 7; i++) {\r\n const dia = comienzoSemana.day(i)\r\n const fecha = `${dia.date()} de ${dia.format('MMMM')}`;\r\n const nombre = dia.format('dddd').substring(0, 1).toUpperCase() + dia.format('dddd').substring(1);\r\n dias.push({\r\n fecha,\r\n nombre,\r\n diaSemana: dia.day(),\r\n dia: dia.format()\r\n })\r\n }\r\n\r\n return dias\r\n}\r\n\r\nexport const esMismaHora = (fecha, hora, dia) => {\r\n const horaFecha = moment(fecha).hours() < 10 ? `0${moment(fecha).hours()}:00` : `${moment(fecha).hours()}:00`;\r\n return horaFecha === hora\r\n}\r\n\r\nexport const estaDentroHora = (fechaInicio, fechaFin, hora, dia) => {\r\n // if(moment(fechaInicio).isBefore(fechaFin) && )\r\n if(moment(dia).isBefore(fechaFin, 'day')) {\r\n if(moment(dia).isSame(fechaInicio, 'day')) {\r\n return parseInt(hora) >= moment(fechaInicio).hours()\r\n }\r\n if(moment(dia).isAfter(fechaInicio, 'day')) {\r\n return true\r\n }\r\n }\r\n\r\n if(moment(dia).isAfter(fechaInicio, 'day') && moment(dia).isSame(fechaFin, 'day')) {\r\n return parseInt(hora) <= moment(fechaFin).hours()\r\n }\r\n\r\n return parseInt(hora) >= moment(fechaInicio).hours() && parseInt(hora) <= moment(fechaFin).hours()\r\n}","import moment from 'moment'\r\n\r\nexport const filtrarTareasPorDia = (tarea, dia) => {\r\n\r\n // console.log({ \r\n // inicio: tarea.fechaTarea, \r\n // fin: tarea.fechaTareaFin, \r\n // dia, \r\n // isBetween: moment(dia).isBetween(tarea.fechaTarea, tarea.fechaTareaFin, 'day', '[]') \r\n // })\r\n\r\n // return moment(tarea.fechaTarea).isSame(dia, 'day')\r\n return moment(dia).isBetween(tarea.fechaTarea, tarea.fechaTareaFin, 'day', '[]')\r\n}","import { Box } from '@mui/material'\r\nimport { styled } from '@mui/material/styles'\r\n\r\nexport const Container = styled('section')`\r\n width: 80%;\r\n height: 90vh;\r\n min-height: 240px; \r\n overflow-y: scroll;\r\n user-select: none;\r\n border-radius: 10px;\r\n position: relative;\r\n box-shadow: ${({theme}) => theme.shadows[2]};\r\n \r\n &::-webkit-scrollbar {\r\n display: none\r\n }\r\n\r\n ${({ theme }) => theme.breakpoints.up('md')} {\r\n width: auto;\r\n height: 70vh;\r\n min-height: 500px;\r\n }\r\n`;\r\n\r\nexport const ContainerHeader = styled('header')`\r\n position: sticky; \r\n top: 0;\r\n box-shadow: 0 2px 5px rgba(0,0,0, .5);\r\n z-index: 999;\r\n`;\r\n\r\nexport const Header = styled(Box)`\r\n background-color: ${({theme}) => theme.palette.primary.main};\r\n padding: ${({theme}) => `${theme.spacing(2)}px`};\r\n color: ${({ theme }) => theme.palette.mode === 'dark' ? theme.palette.text.secondary : theme.palette.common.white};\r\n text-align: center;\r\n border-radius: 0;\r\n border: 3px solid transparent;\r\n min-width: 60px;\r\n &.currentDay {\r\n background-color: ${({ theme }) => theme.palette.mode === 'dark' ? '#080808' : '#F5F5F5'};\r\n border-bottom-color: ${({ theme }) => theme.palette.primary.main};\r\n color: ${({ theme }) => theme.palette.primary.main};\r\n }\r\n`;\r\n\r\nexport const ItemTarea = styled(Box)`\r\n --bg-color: ${({ theme }) => theme.palette.background.paper};\r\n ${({ theme }) => theme.typography.body2}\r\n background-color: var(--bg-color);\r\n padding: 0 2px;\r\n color: ${({ theme }) => theme.palette.text.secondary};\r\n border-radius: 0;\r\n width: 100%;\r\n /* height: 100px; */\r\n ${({ hasElements }) => hasElements ? 'height: 100px;' : 'height: auto;'}\r\n overflow: hidden;\r\n overflow-y: scroll;\r\n\r\n &::-webkit-scrollbar {\r\n display: none\r\n }\r\n\r\n & .hour {\r\n background: var(--bg-color);\r\n background: linear-gradient(90deg, var(--bg-color), transparent 50%);\r\n font-size: 9px;\r\n position: sticky;\r\n top: 0;\r\n display: inline-block;\r\n width: 100%;\r\n z-index: 2;\r\n padding-left: 2px;\r\n }\r\n\r\n & .task_container {\r\n padding: 2px; \r\n display: flex; \r\n gap: 2px; \r\n flex-direction: column;\r\n & .MuiChip-root {\r\n font-size: 10px;\r\n justify-content: start;\r\n z-index: 1;\r\n }\r\n }\r\n\r\n ${({ theme }) => theme.breakpoints.up('md')} {\r\n height: 100px;\r\n }\r\n`;\r\n\r\nexport const Columna = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n borderTop: 0,\r\n borderStyle: 'solid',\r\n borderColor: theme.palette.mode === 'dark' ? '#484848' : '#d1d1d1',\r\n borderLeftWidth: 0,\r\n borderRightWidth: '1px',\r\n borderBottomWidth: '1px',\r\n\r\n [theme.breakpoints.up('md')]: {\r\n ['&.esDiaActual']: {\r\n borderColor: theme.palette.primary.main, \r\n borderLeftWidth: '3px',\r\n borderRightWidth: '3px'\r\n },\r\n \r\n ['&.esDiaAnterior']: {\r\n borderRightWidth: 0\r\n },\r\n \r\n ['&.esPrimerDiaSemana:first-of-type']: {\r\n borderLeftWidth: '1px',\r\n },\r\n },\r\n\r\n ['& .MuiBox-root']: {\r\n borderBottom: '1px dotted',\r\n borderBottomColor: theme.palette.mode === 'dark' ? '#484848' : theme.palette.text.secondary,\r\n ['&:last-of-type']: {\r\n borderBottom: 0,\r\n }\r\n }\r\n}));\r\n\r\n\r\nexport const BotonTarea = styled('button')(({ theme }) => ({\r\n border: '1px', \r\n borderStyle: 'solid',\r\n borderColor: theme.palette.grey[800],\r\n backgroundColor: theme.palette.mode === 'dark' ? theme.palette.grey[900] : theme.palette.grey[300],\r\n color: theme.palette.mode === 'dark' ? theme.palette.grey[50] : theme.palette.grey[800],\r\n cursor: 'pointer', \r\n fontSize: '9px', \r\n padding: '4px', \r\n textAlign: 'left',\r\n borderRadius: '.5rem',\r\n // opacity: .8,\r\n transition: 'all .15s ease-in-out',\r\n // filter: theme.palette.mode === 'dark' ? 'brightness(90%)' : 'brightness(100%)',\r\n\r\n // ['&:hover']: {\r\n // filter: theme.palette.mode === 'dark' ? 'brightness(100%)' : 'brightness(90%)',\r\n // },\r\n\r\n ['&.primary']: {\r\n borderColor: theme.palette.primary.light,\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n ['&:hover']: {\r\n backgroundColor: theme.palette.primary[theme.palette.mode],\r\n },\r\n ['&:disabled']: {\r\n color: theme.palette.primary.main\r\n },\r\n },\r\n ['&.success']: {\r\n borderColor: theme.palette.success.light,\r\n backgroundColor: theme.palette.success.main,\r\n color: theme.palette.success.contrastText,\r\n ['&:hover']: {\r\n backgroundColor: theme.palette.success[theme.palette.mode],\r\n },\r\n ['&:disabled']: {\r\n color: theme.palette.success.main\r\n },\r\n },\r\n\r\n ['&:active']: {\r\n transform: 'scale(.95)'\r\n },\r\n\r\n ['&:disabled']: {\r\n backgroundColor: 'transparent',\r\n filter: 'none',\r\n cursor: 'default',\r\n transform: 'none',\r\n color: theme.palette.grey[800],\r\n },\r\n\r\n ['& .MuiSvgIcon-root']: {\r\n fontSize: '1rem',\r\n }\r\n}));\r\n\r\nexport const BotonTareaTitulo = styled('p')(({ theme }) => ({\r\n margin: 0,\r\n marginLeft: '4px',\r\n flex: 'initial', \r\n width: '100%', \r\n bgcolor: 'red', \r\n textAlign: 'left', \r\n whiteSpace: 'nowrap', \r\n overflow: 'hidden', \r\n textOverflow: 'ellipsis',\r\n}));\r\n\r\nexport const ContainerFilters = styled('section')(({theme}) => ({\r\n my: 1, \r\n display: 'flex', \r\n flexDirection: theme.breakpoints.up('sm') ? 'row' : 'column', \r\n justifyContent: 'start', \r\n alignItems: 'center', \r\n gap: 2\r\n}));\r\n\r\nexport const StateTaskContainer = styled(Box)`\r\n display: flex; \r\n justify-content: center; \r\n gap: 1;\r\n padding: 10px 0;\r\n\r\n & .MuiChip-root {\r\n font-size: 10px;\r\n height: 20px;\r\n & .MuiSvgIcon-root {\r\n font-size: 14px;\r\n }\r\n }\r\n`;","import React, { useState, useEffect } from 'react';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport Tabs from '@mui/material/Tabs';\r\nimport Tab from '@mui/material/Tab';\r\nimport Typography from '@mui/material/Typography';\r\nimport Box from '@mui/material/Box'\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Button from '@mui/material/Button';\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\r\n\r\nimport { ColumnaHorasDia } from './panel';\r\nimport { Container } from './styledComponents';\r\n\r\nimport { filtrarTareasPorDia } from '../../utils/tareas'\r\n\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Todos\r\n \r\n {tiposTareas.map((option) => (\r\n \r\n {option.tipoTareaNombre}\r\n \r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {\r\n [\r\n { variant: 'outlined', startIcon: , onClick: handleLastWeek, label: 'Anterior Semana' },\r\n { variant: state.semanaNumero === moment().week() ? \"contained\" : \"outlined\", endIcon: , onClick: handleCurrentWeek, label: 'Semana Actual' },\r\n { variant: 'outlined', endIcon: , onClick: handleNextWeek, label: 'Próxima Semana' },\r\n ].map(({ label, ...props }, index) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n state.diasSemana.map((item, index) => (\r\n \r\n {item.nombre}\r\n {item.fecha}\r\n \r\n ))\r\n }\r\n \r\n \r\n {\r\n state.diasSemana.map(item => {\r\n const tareasDia = tareas.filter(tarea => filtrarTareasPorDia(tarea, item.dia));\r\n return (\r\n \r\n editar(tarea)} estadosTareas={estadosTareas} />\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {estadosTareas.map((estado, index) => {\r\n const { label, icon, color } = estado;\r\n return (\r\n id === estado.estadoTareaID) ? 'contained' : 'outlined'}\r\n onClick={!esUsuarioTareas ? () => handleFiltrarPorEstado(estado.estadoTareaID, !filtros.estados.some(id => id === estado.estadoTareaID)) : null}\r\n sx={{ ['&:not(:last-child)']: { mr: 1 } }}\r\n {...{ label, icon, color }}\r\n />\r\n )\r\n })}\r\n \r\n \r\n \r\n {!esUsuarioTareas && (\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n }\r\n \r\n )\r\n}","import React, { useRef, useCallback, useEffect, useState } from \"react\"\r\nimport moment from \"moment\";\r\n//Icons\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport AccessTimeIcon from '@mui/icons-material/AccessTime';\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport DoneAllIcon from '@mui/icons-material/DoneAll';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone';\r\nimport NotificationsActiveIcon from '@mui/icons-material/NotificationsActive';\r\n//Components\r\nimport Button from '@mui/material/Button';\r\n//Custom Components\r\nimport FloatingActionButtons from \"../fabButton\";\r\nimport FullScreenDialog from \"../fullScreenDialog\";\r\nimport CustomDialog from \"../customDialog\";\r\n//Views\r\nimport NuevaTarea from \"./nuevaTarea\";\r\n// import Table from \"./tabla\";\r\nimport Panel from \"./panel\";\r\n\r\n//Helpers\r\nimport { checkTarea, deleteTarea, enProcesoTarea, getTareasEstadoAgenda, activarNotificacion } from \"../../helpers/tareas\";\r\nimport { getServicios } from \"../../helpers/servicios\";\r\nimport { getTipoTareas } from \"../../helpers/tipoTareas\";\r\nimport { getEstadoTareas } from \"../../helpers/estadoTareas\";\r\nimport { GetPermisoUsuarioActual } from \"../../helpers/empresa\";\r\nimport { getPermisosUsuarios } from \"../../helpers/empresa\";\r\n\r\n\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\n\r\nconst labelEstadoTarea = (text) => text.split(\" \").map(word => word.charAt(0) + word.slice(1).toLowerCase()).join(\" \");\r\n\r\nexport default function VistaAgenda() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [state, setState] = useState({ loading: false, view: 'panel' });\r\n const initialCustomDialog = { show: false, title: \"\", text: \"\", buttons: [] };\r\n const [customDialog, setCustomDialog] = useState(initialCustomDialog);\r\n \r\n const [openDialog, setOpenDialog] = useState(false);\r\n\r\n const [tareas, setTareas] = useState([]);\r\n const [ultimaTareaEditada, setUltimaTareaEditada] = useState(0);\r\n \r\n const estadosTareas = useRef([]);\r\n const servicios = useRef([]);\r\n const tiposTareas = useRef([]);\r\n const esUsuarioTareas = useRef(false);\r\n const usuariosEmpresa = useRef([]);\r\n\r\n const initialState = {\r\n tareaID: 0,\r\n nombre: '',\r\n fechaTarea: moment().format(\"yyyy-MM-DDTHH:mm\"),\r\n fechaTareaFin: moment().format(\"yyyy-MM-DDTHH:mm\"),\r\n fechaCreacion: moment().format(\"yyyy-MM-DDTHH:mm\"),\r\n servicioID: 0,\r\n tipoTareaID: 0,\r\n estadoTareaID: 1,\r\n detalle: '',\r\n observacionInterna: '',\r\n listadoUsuarios: []\r\n }\r\n const [tareaSeleccionada, setTareaSeleccionada] = useState(initialState)\r\n\r\n useEffect(() => {\r\n // setState(prevState => ({ ...prevState, loading: true, view: window.localStorage.getItem('vista-tareas') || 'panel' }));\r\n\r\n async function InitialFetch() {\r\n try {\r\n const token = await getTokenSilently();\r\n const estadosTareasResponse = await getEstadoTareas(token);\r\n estadosTareas.current = estadosTareasResponse.map(estado => {\r\n switch (estado.estadoTareaID) {\r\n case 2: //EN PROCESO\r\n return {...estado, label: labelEstadoTarea(estado.estadoTareaNombre), icon: , color: 'inProcessTask'}\r\n case 3: //FINALIZADA\r\n return {...estado, label: labelEstadoTarea(estado.estadoTareaNombre), icon: , color: 'finishedTask'}\r\n default:\r\n return {...estado, label: labelEstadoTarea(estado.estadoTareaNombre), icon: , color: 'pendingTask'}\r\n }\r\n })\r\n\r\n const permisoResponse = await GetPermisoUsuarioActual(user, token);\r\n esUsuarioTareas.current = permisoResponse.permisoID === 3;\r\n\r\n const usuariosEmpresaResponse = await getPermisosUsuarios(user, token);\r\n usuariosEmpresa.current = usuariosEmpresaResponse;\r\n\r\n const serviciosResponse = await getServicios(user, token);\r\n servicios.current = serviciosResponse;\r\n\r\n const tiposTareasResponse = await getTipoTareas(user, token);\r\n tiposTareas.current = tiposTareasResponse;\r\n\r\n setState(prevState => ({ ...prevState, loading: false }));\r\n\r\n } catch(error) {\r\n console.error('Ocurrio un error en Tareas - InitialFetch: \\n', error);\r\n }\r\n }\r\n \r\n InitialFetch();\r\n \r\n return function() {\r\n estadosTareas.current = [];\r\n usuariosEmpresa.current = [];\r\n tiposTareas.current = [];\r\n servicios.current = [];\r\n esUsuarioTareas.current = false;\r\n }\r\n }, [])\r\n\r\n \r\n const handleOpenDialog = useCallback(() => setOpenDialog(true), []);\r\n\r\n const filtrarTareasAgenda = useCallback(async (estadoId = 0, fechaDesde, fechaHasta, servicioID, tipoTareaID) => {\r\n try {\r\n const token = await getTokenSilently();\r\n const tareasResponse = await getTareasEstadoAgenda(user, estadoId, fechaDesde, fechaHasta, servicioID, tipoTareaID, token);\r\n setTareas(tareasResponse);\r\n } catch(error) {\r\n console.error('Ocurrio un error en Tareas - filtrarTareas: \\n', error);\r\n }\r\n }, [])\r\n\r\n const handleClose = useCallback(() => {\r\n setOpenDialog(false)\r\n setTareaSeleccionada(initialState)\r\n }, [initialState]);\r\n\r\n const eliminarTarea = useCallback(tarea => {\r\n if(openDialog) {\r\n setOpenDialog(false)\r\n }\r\n\r\n const eliminar = async (tarea) => {\r\n const token = await getTokenSilently();\r\n const result = await deleteTarea(tarea, user, token);\r\n if (result === true) {\r\n guardarTarea(tarea, \"DELETE\")\r\n }\r\n }\r\n\r\n setCustomDialog({\r\n show: true,\r\n title: \"Eliminar\",\r\n text: \"¿Está seguro que desea eliminar esta Tarea?\",\r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n }, [initialCustomDialog])\r\n\r\n const finalizarTarea = useCallback((tarea, action = \"DELETE\") => {\r\n const enProceso = async (tarea) => {\r\n setCustomDialog(initialCustomDialog)\r\n const token = await getTokenSilently();\r\n const tareaEditada = await enProcesoTarea(tarea, user, token); \r\n setTareas([...tareas.map(t => t.tareaID === tareaEditada.tareaID ? { ...tareaEditada } : t)]);\r\n handleClose();\r\n setTimeout(() => setUltimaTareaEditada(0), 1500)\r\n }\r\n \r\n const finalizar = async (tarea) => {\r\n setCustomDialog(initialCustomDialog)\r\n const token = await getTokenSilently();\r\n const tareaEditada = await checkTarea(tarea, user, token); \r\n setTareas([...tareas.map(t => t.tareaID === tareaEditada.tareaID ? { ...tareaEditada } : t)]);\r\n handleClose();\r\n setTimeout(() => setUltimaTareaEditada(0), 1500)\r\n }\r\n\r\n if (tarea.estadoTareaID === 1) {\r\n setCustomDialog({\r\n show: true,\r\n title: \"Comenzar\",\r\n text: \"¿Está seguro que desea comenzar a realizar esta Tarea?\",\r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n }\r\n\r\n if (tarea.estadoTareaID === 2) {\r\n setCustomDialog({\r\n show: true,\r\n title: \"Finalizar\",\r\n text: \"¿Está seguro que desea finalizar esta Tarea?\",\r\n buttons: [\r\n ,\r\n ,\r\n ]\r\n });\r\n }\r\n }, [initialCustomDialog])\r\n\r\n const editarTarea = tarea => {\r\n setTareaSeleccionada(tarea);\r\n setOpenDialog(true);\r\n };\r\n\r\n const guardarTarea = useCallback((tarea, action) => {\r\n setUltimaTareaEditada(tarea.tareaID);\r\n \r\n switch (action) {\r\n case \"POST\":\r\n setTareas([...tareas, tarea]);\r\n break;\r\n case \"PUT\":\r\n setTareas([...tareas.map(t => t.tareaID === tarea.tareaID ? { ...tarea } : t)]);\r\n break;\r\n case \"DELETE\":\r\n setTareas([...tareas.filter(t => t.tareaID !== tarea.tareaID)]);\r\n setCustomDialog(initialCustomDialog)\r\n break;\r\n }\r\n\r\n handleClose();\r\n\r\n setTimeout(() => setUltimaTareaEditada(0), 1500)\r\n }, [initialCustomDialog])\r\n\r\n const handleNotifications = useCallback(async (tarea, activar = true) => { \r\n const token = await getTokenSilently(); \r\n const result = await activarNotificacion(tarea, user, token, activar);\r\n if(result) {\r\n setTareas(prevState => [...prevState.map(t => t.tareaID === tarea.tareaID ? { ...tarea, notificar: activar } : t)]);\r\n }\r\n }, [])\r\n \r\n return (\r\n
\r\n

Listado de Tareas

\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {\r\n handleClose();\r\n handleNotifications(tareaSeleccionada, !tareaSeleccionada.notificar);\r\n },\r\n color: 'primary',\r\n variant: tareaSeleccionada.notificar ? 'contained' : 'outlined',\r\n startIcon: tareaSeleccionada.notificar ? : \r\n },\r\n {\r\n label: 'Eliminar',\r\n 'aria-label': 'delete',\r\n disabled: esUsuarioTareas.current,\r\n onClick: () => {\r\n handleClose();\r\n eliminarTarea(tareaSeleccionada);\r\n },\r\n color: 'error', \r\n startIcon: \r\n },\r\n {\r\n label: tareaSeleccionada.estadoTareaID === 1 ? 'Comenzar' : 'Finalizar',\r\n 'aria-label': tareaSeleccionada.estadoTareaID === 1 ? 'start' : 'finish',\r\n color: tareaSeleccionada.estadoTareaID === 1 ? 'inProcessTask' : 'finishedTask',\r\n onClick: () => {\r\n handleClose();\r\n finalizarTarea(tareaSeleccionada, \"PUT\")\r\n },\r\n startIcon: tareaSeleccionada.estadoTareaID === 1 ? : \r\n }\r\n ] : null}\r\n >\r\n \r\n \r\n
\r\n )\r\n}","export async function requestNotificationAccess() {\r\n if (checkNotificationPromise()) {\r\n const status = await Notification.requestPermission();\r\n return status;\r\n }\r\n}\r\n\r\nexport async function getSubscription(applicationServerKey) {\r\n const serviceWorker = await navigator.serviceWorker.ready;\r\n\r\n const subscripcion = await serviceWorker.pushManager.getSubscription();\r\n if (subscripcion === null) {\r\n try {\r\n const sub = await serviceWorker.pushManager.subscribe({userVisibleOnly: true, applicationServerKey: urlB64ToUint8Array(applicationServerKey)});\r\n const values = fillSubscribeFields(sub);\r\n return {ok: true, values}\r\n }\r\n catch (e) {\r\n const error = \"Unable to subscribe to push\" + e;\r\n console.error(error);\r\n return {ok: false}\r\n }\r\n }\r\n\r\n const values = fillSubscribeFields(subscripcion);\r\n return {ok: true, values}\r\n}\r\n\r\nfunction fillSubscribeFields(sub) {\r\n return {\r\n endpoint: sub.endpoint,\r\n p256dh: arrayBufferToBase64(sub.getKey(\"p256dh\")),\r\n auth: arrayBufferToBase64(sub.getKey(\"auth\"))\r\n }\r\n}\r\n\r\nfunction arrayBufferToBase64(buffer) {\r\n const base64String = btoa(String.fromCharCode(...new Uint8Array(buffer)));\r\n return base64String;\r\n}\r\n\r\nfunction urlB64ToUint8Array(base64String) {\r\n const padding = '='.repeat((4 - base64String.length % 4) % 4);\r\n const base64 = (base64String + padding)\r\n .replace(/-/g, '+')\r\n .replace(/_/g, '/');\r\n\r\n const rawData = window.atob(base64);\r\n const outputArray = new Uint8Array(rawData.length);\r\n\r\n for (let i = 0; i < rawData.length; ++i) {\r\n outputArray[ i ] = rawData.charCodeAt(i);\r\n }\r\n return outputArray;\r\n}\r\n\r\nfunction checkNotificationPromise() {\r\n try {\r\n Notification.requestPermission().then();\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport async function getSubscriptionServer(user, token) {\r\n const response = await fetch('api/SubscripcionesNotificaciones/Subscribe/' + user.sub, {\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` }\r\n });\r\n\r\n if (!response.ok) {\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n return\r\n }\r\n\r\n const data = await response.json();\r\n return data;\r\n}\r\n\r\nexport async function subscribe(user, values, token) {\r\n try {\r\n const response = await fetch('api/SubscripcionesNotificaciones/Subscribe/' + user.sub, {\r\n method: 'POST',\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n body: JSON.stringify(values)\r\n });\r\n\r\n if (!response.ok) {\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n\r\n return false\r\n }\r\n\r\n console.log(response);\r\n\r\n return true\r\n } catch (error) {\r\n console.error('ERROR en subscribe(): ', error)\r\n return false\r\n }\r\n}\r\n\r\nexport async function unsubscribe(user, token) {\r\n try {\r\n const response = await fetch('api/SubscripcionesNotificaciones/Unsubscibe/' + user.sub, {\r\n method: 'POST',\r\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${token}` },\r\n });\r\n\r\n if (!response.ok) {\r\n // if (response.status === 401) {\r\n // await authService.signIn();\r\n // }\r\n \r\n return false;\r\n }\r\n\r\n return true;\r\n } catch (error) {\r\n console.error('ERROR en unsubscribe(): ', error)\r\n return false\r\n }\r\n}\r\n\r\nexport async function notificar(user, token, mensaje) {\r\n try {\r\n await fetch(`api/SubscripcionesNotificaciones/Notify?message=${mensaje}`, {\r\n method: 'POST',\r\n headers: { \"Content-Type\": \"application/json\" , Authorization: `Bearer ${token}` },\r\n });\r\n }\r\n catch (error) {\r\n console.error('ERROR en notificar(): ', error)\r\n }\r\n\r\n return\r\n}","import React, { useEffect, useState } from 'react'\r\nimport { isEqual } from 'lodash'\r\nimport Button from '@mui/material/Button'\r\nimport Box from '@mui/material/Box'\r\nimport Alert from '@mui/material/Alert'\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone'\r\nimport NotificationsOffIcon from '@mui/icons-material/NotificationsOff'\r\nimport NotificationsActiveIcon from '@mui/icons-material/NotificationsActive'\r\n\r\nimport { useAuth0 } from \"../react-auth0-spa\";\r\n\r\nimport { requestNotificationAccess, getSubscription, getSubscriptionServer, subscribe, unsubscribe } from '../helpers/notificaciones'\r\n\r\nconst NOTIFICATION_PERMISSION = {\r\n GRANTED: 'granted',\r\n BLOCKED: 'blocked',\r\n DENIED: 'denied',\r\n DEFAULT: 'default'\r\n}\r\n\r\nconst areSubscriptionEquals = (localSubs, serverSubs) => {\r\n const serverSubscription = { ...serverSubs, p256dh: serverSubs.p256DH };\r\n delete serverSubscription.p256DH;\r\n\r\n return isEqual(serverSubscription, localSubs)\r\n}\r\n\r\nexport default function ActivarNotificacion() {\r\n const { user, getTokenSilently } = useAuth0();\r\n const [state, setState] = useState({ permiso: NOTIFICATION_PERMISSION.DEFAULT, loading: true });\r\n const [subscription, setSubscription] = useState({ applicationServerKey: '', hasSubscription: false });\r\n const [alert, setAlert] = useState(null);\r\n const [buttonActivate, setButtonActivate] = useState(null);\r\n\r\n useEffect(() => {\r\n // const FetchGetSubscription = async () => {\r\n // const sub = await getSubscriptionServer();\r\n // const { applicationServerKey, subscripcionNotificacion } = sub;\r\n // setSubscription(prevState => ({...prevState, applicationServerKey}));\r\n\r\n // try {\r\n // const localSubscription = await getSubscription(applicationServerKey);\r\n // console.log({subscripcionNotificacion, localSubscription})\r\n\r\n // if(!localSubscription.ok || !subscripcionNotificacion) return\r\n\r\n // if(areSubscriptionEquals(localSubscription.values, subscripcionNotificacion)) {\r\n // setSubscription(prevState => ({...prevState, hasSubscription: true}));\r\n // } else {\r\n // const unsubscribeSuccessfully = await unsubscribe();\r\n // if(unsubscribeSuccessfully) {\r\n // const newSubscription = await getSubscription(applicationServerKey);\r\n // if(newSubscription.ok) {\r\n // const subscribeSuccessfully = await subscribe(newSubscription.values);\r\n // if(subscribeSuccessfully) {\r\n // setSubscription(prevState => ({ ...prevState, hasSubscription: true }));\r\n // }\r\n // }\r\n // }\r\n // }\r\n // } catch(e) {\r\n // console.error('Error in ActivarNotificacion - useEffect - FetchGetSubscription:', e);\r\n // }\r\n // }\r\n\r\n FetchGetSubscription();\r\n\r\n switch (Notification.permission) {\r\n case NOTIFICATION_PERMISSION.GRANTED:\r\n setState({ permiso: NOTIFICATION_PERMISSION.GRANTED, loading: false })\r\n break;\r\n case NOTIFICATION_PERMISSION.BLOCKED:\r\n case NOTIFICATION_PERMISSION.DENIED:\r\n setState({ permiso: NOTIFICATION_PERMISSION.BLOCKED, loading: false })\r\n break;\r\n default:\r\n setState({ permiso: NOTIFICATION_PERMISSION.DEFAULT, loading: false })\r\n }\r\n\r\n }, [])\r\n\r\n const FetchGetSubscription = async () => {\r\n const token = await getTokenSilently();\r\n const sub = await getSubscriptionServer(user, token);\r\n const { applicationServerKey, subscripcionNotificacion } = sub;\r\n setSubscription(prevState => ({ ...prevState, applicationServerKey }));\r\n\r\n try {\r\n const localSubscription = await getSubscription(applicationServerKey);\r\n\r\n if (!localSubscription.ok || !subscripcionNotificacion) return\r\n\r\n if (areSubscriptionEquals(localSubscription.values, subscripcionNotificacion)) {\r\n setSubscription(prevState => ({ ...prevState, hasSubscription: true }));\r\n } else {\r\n const unsubscribeSuccessfully = await unsubscribe(user, token);\r\n \r\n if (unsubscribeSuccessfully) {\r\n const newSubscription = await getSubscription(applicationServerKey);\r\n \r\n if (newSubscription.ok) {\r\n const subscribeSuccessfully = await subscribe(user, newSubscription.values, token);\r\n if (subscribeSuccessfully) {\r\n setSubscription(prevState => ({ ...prevState, hasSubscription: true }));\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.error('Error in ActivarNotificacion - useEffect - FetchGetSubscription:', e);\r\n }\r\n }\r\n\r\n\r\n\r\n const handlePermisosNotificaciones = async () => {\r\n setState(prevState => ({ ...prevState, loading: true }));\r\n\r\n const permiso = await requestNotificationAccess();\r\n setState({ permiso, loading: false });\r\n }\r\n\r\n const handleSubscripcionNotificaciones = async () => {\r\n //debugger\r\n setState(prevState => ({ ...prevState, loading: true }));\r\n const token = await getTokenSilently();\r\n const { applicationServerKey } = subscription;\r\n const { ok, values } = await getSubscription(applicationServerKey);\r\n if (ok) {\r\n const subscribeSuccessfully = await subscribe(user, values, token);\r\n if (subscribeSuccessfully) {\r\n setSubscription(prevState => ({ ...prevState, hasSubscription: true }));\r\n }\r\n }\r\n\r\n setState(prevState => ({ ...prevState, loading: false }));\r\n }\r\n\r\n const handleDesubscripcionNotificaciones = async () => {\r\n setState(prevState => ({ ...prevState, loading: true }));\r\n\r\n const unsubscribeSuccessfully = await unsubscribe();\r\n if (unsubscribeSuccessfully) {\r\n setSubscription(prevState => ({ ...prevState, hasSubscription: false }));\r\n }\r\n\r\n setState(prevState => ({ ...prevState, loading: false }));\r\n }\r\n\r\n useEffect(() => {\r\n switch (state.permiso) {\r\n case NOTIFICATION_PERMISSION.BLOCKED:\r\n case NOTIFICATION_PERMISSION.DENIED:\r\n setAlert({\r\n severity: 'error',\r\n message: 'Notificaciones bloquedas en este Dispositivo.'\r\n });\r\n setButtonActivate(null)\r\n break\r\n case NOTIFICATION_PERMISSION.DEFAULT:\r\n setAlert({\r\n severity: 'info',\r\n message: 'Habilitar los permisos para recibir notificaciones.'\r\n });\r\n setButtonActivate({\r\n variant: 'contained',\r\n startIcon: ,\r\n children: 'Habilitar Notificaciones',\r\n onClick: handlePermisosNotificaciones\r\n })\r\n break;\r\n case NOTIFICATION_PERMISSION.GRANTED:\r\n if (!subscription.hasSubscription) {\r\n setAlert({\r\n severity: 'info',\r\n message: 'Activar notificaciones.'\r\n });\r\n setButtonActivate({\r\n variant: 'contained',\r\n startIcon: ,\r\n children: 'Recibir Notificaciones',\r\n onClick: handleSubscripcionNotificaciones\r\n })\r\n } else {\r\n setAlert({\r\n severity: 'success',\r\n message: 'Notificaciones Activadas.'\r\n });\r\n setButtonActivate({\r\n variant: 'outlined',\r\n startIcon: ,\r\n children: 'Dejar de Recibir Notificaciones',\r\n onClick: handleDesubscripcionNotificaciones\r\n })\r\n }\r\n break\r\n default:\r\n setAlert(null)\r\n setButtonActivate(null)\r\n }\r\n\r\n }, [state.permiso, subscription.hasSubscription])\r\n\r\n return (\r\n \r\n {alert && {alert.message}}\r\n {buttonActivate && \r\n \r\n \r\n \r\n */}\r\n {/* {vistaTareas === 'table' && ( */}\r\n \r\n Filtrar tareas por mes\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* )} */}\r\n \r\n Filtrar observaciones por mes \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React from 'react';\r\n\r\nimport './index.css'\r\n\r\nimport { Box, Paper, Typography, Button } from '@mui/material';\r\nimport { useAuth0 } from '../../react-auth0-spa';\r\nimport { registrarUsuarioAuth0, getUsuarioSinEmpresa } from '../../helpers/empresa';\r\nimport { useEffect, useState } from 'react';\r\n\r\n\r\nexport default function UsersSinEmpresa() {\r\n const { user, logout, getTokenSilently } = useAuth0();\r\n const [esUsuarioEmpresa, setEsUsuarioEmpresa] = useState(false);\r\n\r\n useEffect(() => {\r\n usuarioTieneEmpresa(user); \r\n }, [])\r\n\r\n if(!user) return null\r\n\r\n const usuarioTieneEmpresa = async (user) => {\r\n const token = await getTokenSilently();\r\n getUsuarioSinEmpresa(user, token)\r\n .then(result => {\r\n setEsUsuarioEmpresa(result);\r\n })\r\n };\r\n\r\n const funcionRegistrarUsuarioAuth0 = async (user) => {\r\n const token = await getTokenSilently();\r\n //console.log(token);\r\n const result = await registrarUsuarioAuth0(user, token);\r\n if(result){\r\n setEsUsuarioEmpresa(true);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {user.name}\r\n \r\n \r\n {user.name}\r\n \r\n \r\n Email: {user.email}\r\n \r\n {/* \r\n Id: {user.sub}\r\n */}\r\n \r\n \r\n\r\n { \r\n !esUsuarioEmpresa ? \r\n
\r\n \r\n Esperar a ser asignado\r\n \r\n \r\n Para asociarse a una empresa presione el botón esperar a ser asignado y luego contáctese con su administrador para que le brinde acceso a la misma.\r\n \r\n
:\r\n
\r\n \r\n Asociarse a una Empresa\r\n \r\n \r\n Para asociarse a una empresa contáctese con su administrador enviándole como información el email que se muestra en esta vista para así ingresar al sistema.\r\n \r\n
\r\n }\r\n \r\n
\r\n \r\n \r\n \r\n { \r\n !esUsuarioEmpresa && \r\n }\r\n \r\n \r\n
\r\n
\r\n )\r\n}","import React, { useEffect } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { useAuth0 } from \"../../react-auth0-spa\";\r\n\r\nconst PrivateRoute = ({ component: Component, path, ...rest }) => {\r\n const { loading, isAuthenticated, loginWithRedirect } = useAuth0();\r\n\r\n useEffect(() => {\r\n if (loading || isAuthenticated) {\r\n return;\r\n }\r\n const fn = async () => {\r\n await loginWithRedirect({\r\n appState: { targetUrl: path },\r\n });\r\n };\r\n fn();\r\n }, [loading, isAuthenticated, loginWithRedirect, path]);\r\n\r\n const render = (props) =>\r\n !loading && isAuthenticated === true ? (\r\n \r\n ) : (\r\n loginWithRedirect\r\n );\r\n\r\n return ;\r\n};\r\n\r\nexport default PrivateRoute;","import {createTheme} from '@mui/material/styles';\r\n\r\nconst taskColors = {\r\n inProcessTask: {\r\n main: \"#ffa13d\",\r\n light: '#ffd26d',\r\n dark: '#c77200',\r\n contrastText: '#ffffff'\r\n },\r\n finishedTask: {\r\n main: \"#12994b\",\r\n light: '#55cb78',\r\n dark: '#006a20',\r\n contrastText: '#ffffff'\r\n }\r\n}\r\n\r\nconst pendingTaskColor = {\r\n dark: {\r\n pendingTask: {\r\n main: \"#EC3D3D\",\r\n light: '#BF2A2A',\r\n dark: '#BF2A2A',\r\n contrastText: '#fff',\r\n hoverOpacity: 0.1,\r\n },\r\n },\r\n light: {\r\n pendingTask: {\r\n main: \"#EC3D3D\",\r\n light: '#BF2A2A',\r\n dark: '#BF2A2A',\r\n contrastText: '#fff'\r\n }\r\n }\r\n}\r\n\r\nexport const darkTheme = createTheme({\r\n palette: {\r\n mode: 'dark',\r\n primary: {\r\n main: '#0076be',\r\n light: '#209ce8',\r\n dark: '#075585',\r\n mainOpacity: '#0076be24'\r\n },\r\n success: {\r\n main: '#00BE48',\r\n contrastText: '#fff'\r\n },\r\n info: {\r\n main: '#00BEA7',\r\n },\r\n danger: {\r\n main: '#f87d7d'\r\n },\r\n grey: {\r\n agrupadosTabla: '#000',\r\n },\r\n action: {\r\n hoverOpacity: 0.1,\r\n },\r\n ...taskColors,\r\n ...pendingTaskColor.dark,\r\n },\r\n});\r\n\r\nexport const lightTheme = createTheme({\r\n palette: {\r\n primary: {\r\n main: '#0076be',\r\n light: '#209ce8',\r\n dark: '#075585',\r\n mainOpacity: '#0076be24'\r\n },\r\n success: {\r\n main: '#00BE48',\r\n light: '#20e36a',\r\n dark: '#098237',\r\n contrastText: '#fff'\r\n },\r\n info: {\r\n main: '#0076be',\r\n },\r\n danger: {\r\n main: '#f87d7d'\r\n },\r\n grey: {\r\n agrupadosTabla: '#e6e6e6',\r\n },\r\n action: {\r\n hoverOpacity: 0.1,\r\n },\r\n ...taskColors,\r\n ...pendingTaskColor.light,\r\n },\r\n});","// import React, { Component } from 'react';\r\n// import { Route } from 'react-router';\r\n// import { Layout } from './components/Layout';\r\n// import { Home } from './components/Home';\r\n// import { FetchData } from './components/FetchData';\r\n// import { Counter } from './components/Counter';\r\n\r\n// import './custom.css'\r\n// import LoginButton from './components/LoginButton';\r\n// import LogoutButton from './components/LogoutButton';\r\n// import Profile from './components/Profile';\r\n// // import PrivateRoute from './components/common/PrivateRoute';\r\n\r\n// export default class App extends Component {\r\n// static displayName = App.name;\r\n\r\n// render () {\r\n// return (\r\n// \r\n// \r\n// \r\n// {/* */}\r\n// {/* */}\r\n// \r\n// \r\n// \r\n// \r\n// );\r\n// }\r\n// }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Paper } from '@mui/material';\r\n\r\nimport { FetchData } from './components/FetchData';\r\nimport { ThemeProvider } from '@mui/material/styles';\r\nimport Home from './components/Home/index';\r\nimport Servicios from './components/Servicios';\r\nimport TipoTareas from './components/TipoTareas';\r\nimport Empresa from './components/Empresa';\r\nimport DatosEmpresa from './components/Empresa/datosEmpresa';\r\nimport Tareas from './components/Tareas';\r\nimport Localidades from './components/Localidades';\r\n// import Provincias from './components/Provincias';\r\nimport Personas from './components/Personas';\r\nimport VisualizarObservaciones from './components/Tareas/visualizarObservaciones';\r\nimport VistaTabla from './components/Tareas/indexTabla';\r\nimport VistaAgenda from './components/Tareas/indexAgenda';\r\nimport Configuracion from './components/Configuracion';\r\nimport UsersSinEmpresa from './components/Home/usersSinEmpresa';\r\n\r\nimport PrivateRoute from './components/common/PrivateRoute';\r\n\r\nimport './custom.css'\r\nimport \"moment/locale/es\"\r\n\r\nimport { useAuth0 } from './react-auth0-spa';\r\nimport { getUsuarioEmpresa } from './helpers/empresa';\r\n\r\n\r\n// THEME.\r\nimport { darkTheme, lightTheme } from './customTheme';\r\n\r\nexport default function App (){\r\n const [theme, setTheme] = useState('light');\r\n const [usuarioExiste, setUsuarioExiste] = useState(false);\r\n const { user, getTokenSilently } = useAuth0();\r\n const history = useHistory();\r\n \r\n\r\n useEffect(() => {\r\n const preferenciasTema = window.localStorage.getItem('tema');\r\n if(preferenciasTema) {\r\n setTheme(preferenciasTema);\r\n document.documentElement.style.setProperty('--tema', preferenciasTema);\r\n return\r\n }\r\n\r\n //// TEMA POR DEFECTO DEL NAVAGADOR.\r\n if (matchMedia('(prefers-color-scheme: light)').matches) {\r\n setTheme('light');\r\n document.documentElement.style.setProperty('--tema', 'light');\r\n }\r\n else{\r\n setTheme('dark');\r\n document.documentElement.style.setProperty('--tema', 'dark');\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(!user) return\r\n\r\n async function ExisteUsuario() {\r\n const token = await getTokenSilently();\r\n const usuarioEncontrado = await getUsuarioEmpresa(user, token);\r\n setUsuarioExiste(usuarioEncontrado);\r\n if(!usuarioEncontrado) {\r\n history.push('userSinEmpresa')\r\n }\r\n }\r\n \r\n ExisteUsuario();\r\n }, [user])\r\n\r\n const toggleTheme = () => {\r\n if (theme === 'light') {\r\n setTheme('dark');\r\n document.documentElement.style.setProperty('--tema', 'dark');\r\n window.localStorage.setItem('tema', 'dark')\r\n return\r\n }\r\n\r\n setTheme('light');\r\n document.documentElement.style.setProperty('--tema', 'light');\r\n window.localStorage.setItem('tema', 'light')\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n}","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://cra.link/PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://cra.link/PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","const baseUrl = \"api/settings\";\r\n\r\nexport async function getAuthSettings() {\r\n const response = await fetch(`${baseUrl}/auth`, {\r\n headers: { Accept: \"application/json\" },\r\n });\r\n const data = await response.json();\r\n return data;\r\n}","// import 'bootstrap/dist/css/bootstrap.css';\r\n// import React from 'react';\r\n// import ReactDOM from 'react-dom';\r\n// import { BrowserRouter } from 'react-router-dom';\r\n// import App from './App';\r\n// import * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\n// import reportWebVitals from './reportWebVitals';\r\n\r\n// import history from \"./utils/history\";\r\n// import { Auth0Provider } from \"@auth0/auth0-react\";\r\n\r\n// const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\n// const rootElement = document.getElementById('root');\r\n\r\n// ReactDOM.render(\r\n// \r\n// \r\n// \r\n// ,\r\n// ,\r\n// rootElement);\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nimport 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport history from \"./utils/history\";\r\nimport App from './App';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nimport * as settings from \"./helpers/settings\";\r\nimport { Auth0Provider } from \"./react-auth0-spa\";\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nconst onRedirectCallback = (appState) => {\r\n history.push(\r\n appState && appState.targetUrl\r\n ? appState.targetUrl\r\n : window.location.pathname\r\n );\r\n};\r\n\r\nsettings\r\n .getAuthSettings()\r\n .then((authSettings) => {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n rootElement\r\n );\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\nserviceWorkerRegistration.register();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}