{"version":3,"sources":["components/loading/Loading.js","components/notification/Notification.js","components/NavMenu.js","components/leerCantico/LeerCantico.js","components/favoritos/Favoritos.js","components/configuracion/Configuracion.js","components/cuentaUsuario/CuentaUsuario.js","components/navmenu/bottom/Drawers.js","components/navmenu/bottom/bottomMenu.js","layout/layout/Layout.js","layout/loginLayout/LoginLayout.js","screen/login/Login.js","screen/login/register.js","screen/login/forget.js","components/cardCanticos/Canticos.js","components/Indice.js","components/search/Search.js","screen/Home.js","screen/Player/Reproductor.js","router/index.js","App.js","registerServiceWorker.js","index.js"],"names":["useStyles","makeStyles","theme","backdrop","backgroundColor","zIndex","drawer","flexDirection","color","Loading","props","visible","classes","Backdrop","className","open","CircularProgress","style","height","width","appBar","position","title","marginLeft","spacing","flex","Transition","React","forwardRef","ref","Slide","direction","Notification","useState","loading","setLoading","JSON","parse","localStorage","getItem","user","btnShowNotificaciones","setBtnShowNotificaciones","showModalNotificaciones","setShowModalNotificaciones","notificaciones","setNotificaciones","useEffect","loadNotificaciones","a","fetch","id","token","response","json","size","console","error","Swal","fire","text","confirmButtonText","btnCerrarNotificaciones","method","headers","Accept","then","responseJson","catch","allowOutsideClick","allowEscapeKey","allowEnterKey","IconButton","aria-label","aria-controls","aria-haspopup","onClick","class","Dialog","fullScreen","onClose","TransitionComponent","AppBar","Toolbar","edge","Typography","variant","List","map","data","i","ListItem","button","divider","ListItemText","primary","bsong_title","secondary","bsong_type_desc","root","flexGrow","menuButton","marginRight","NavMenu","screenName","Container","padding","whiteSpace","overflow","textOverflow","appBarBottom","top","bottom","LeerCantico","handle","favorito","setFavorito","cantico","setCantico","buscarFavorito","undefined","bsong_id","rfavo_bsong_id","bsong_rfavo","configuration","$","css","espaciado","letra","alineacion","cerrarModal","document","ready","html","bsong_letter","justifyContent","sendData","rfavo_id","body","stringify","rfavo_buser_id","Configuracion","useParams","type","setData","showLeer","setShowLeer","selectCantico","setSelectCantico","loadData","handreLeerCantico","d","key","rfavo_bsong_title","rfavo_bsong_type_desc","ListItemSecondaryAction","setConfiguration","modoNocturno","setModoNocturno","loadConfiguration","btnAlineacion","conf","setItem","ListItemIcon","Switch","onChange","append","attr","remove","checked","inputProps","gutterBottom","ButtonGroup","fullWidth","Button","e","Slider","name","defaultValue","event","newValue","aria-labelledby","step","marks","min","max","valueLabelDisplay","password","setPassword","setName","lastname","lastName","setLastName","email","setEmail","newEmail","setNewEmail","btnModificar","preventDefault","buser_name","buser_lastname","buser_email","buser_password","buser_id","log","status","mensaje","jsonUserNewData","avatar","role","TextField","required","label","target","value","helperText","list","fullList","Drawers","anchor","handleDrawer","history","useHistory","setShowIndice","showFavoritos","setShowFavoritos","showConfig","setShowConfig","showCuentaUsuario","setShowCuentaUsuario","toggleDrawer","handleFavoritos","show","handleConfig","handleUsuario","btnSalir","clear","replace","Fragment","Drawer","clsx","onKeyDown","action","icon","display","index","Divider","BottomMenu","handleScreenName","setValue","showDrawer","setShowDrawer","BottomNavigation","showLabels","borderTopColor","borderTopWidth","borderTopStyle","push","pathname","state","BottomNavigationAction","right","ScrollTop","children","window","trigger","useScrollTrigger","disableHysteresis","threshold","Zoom","in","ownerDocument","querySelector","scrollIntoView","behavior","block","Layout","setsCreenName","changeMode","to","Fab","val","LoginLayout","Login","moment","locale","recordar","cbkRecordar","setCbkRecordar","loadRecordar","btnLogin","serverStatus","server","FormGroup","FormControlLabel","control","Register","btnRegister","Forget","btnRecuperarContrasena","result","isConfirmed","Canticos","indice","jsonCanticos","Inidice","handleIndice","loadIndice","btnHandleIndice","fontSize","indice_letter","Search","handleSearch","InputLabel","htmlFor","InputProps","startAdornment","InputAdornment","Home","typeAnterior","setTypeAnterior","numeroCanticos","setNumeroCanticos","setIndice","buscar","setBuscar","canticos","setCanticos","loadCanticos","filter","toLowerCase","includes","Reproductor","audio","setAudio","script","createElement","cargarScript","src","async","appendChild","click","removeChild","data-read","href","bsong_audio_path","path","exact","component","createMuiTheme","palette","main","overrides","MuiButton","borderRadius","textTransform","border","borderStyle","borderColor","typography","h3","fontWeight","h4","h5","h6","App","ThemeProvider","Component","displayName","require","isLocalhost","Boolean","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","alert","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","URL","process","origin","addEventListener","get","indexOf","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.cf472d6d.chunk.js","sourcesContent":["import React from 'react';\nimport Backdrop from '@material-ui/core/Backdrop';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n backdrop: {\n backgroundColor:'rgb(51 174 255 / 35%)',\n zIndex: theme.zIndex.drawer + 1,\n flexDirection:'column',\n color:'#fff'\n },\n}));\n\nexport default function Loading(props) {\n const { visible } = props;\n const classes = useStyles();\n\n return (\n
\n \n \n

Cargando...

\n
\n
\n );\n}","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ListItem from '@material-ui/core/ListItem';\nimport List from '@material-ui/core/List';\nimport Divider from '@material-ui/core/Divider';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Typography from '@material-ui/core/Typography';\nimport Slide from '@material-ui/core/Slide';\nimport Loading from '../loading/Loading';\nimport Swal from \"sweetalert2\";\nimport { size } from \"lodash\";\n\nconst useStyles = makeStyles((theme) => ({\n appBar: {\n position: 'relative',\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n}));\n\nconst Transition = React.forwardRef(function Transition(props, ref) {\n return ;\n});\n\nexport default function Notification(props) {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const [btnShowNotificaciones, setBtnShowNotificaciones] = useState(false);\n const [showModalNotificaciones, setShowModalNotificaciones] = useState(false);\n const [notificaciones, setNotificaciones] = useState([]);\n\n useEffect(() => {\n loadNotificaciones();\n }, [])\n\n const loadNotificaciones = async () => {\n setLoading(true);\n try {\n const response = await fetch(`bsong/notificaciones?buserId=${user.id}&token=${user.token}`);\n const json = await response.json();\n //console.log(size(json[0]))\n \n if (size(json[0]) > 0) {\n setNotificaciones(json);\n setBtnShowNotificaciones(true);\n }\n else {\n setNotificaciones([]);\n setBtnShowNotificaciones(false);\n }\n } catch (e) {\n setBtnShowNotificaciones(false);\n console.error(e);\n Swal.fire({\n title: 'Error #1.202',\n text: \"Ha ocurrido un error.\",\n confirmButtonText: 'Ok',\n })\n }\n setLoading(false);\n }\n\n //Eliminar notificaciones\n const btnCerrarNotificaciones = async () => {\n setLoading(true);\n fetch(`buser/update/notificaciones?buserId=${user.id}&token=${user.token}`, {\n method: \"PUT\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => response.json())\n .then((responseJson) => {\n setBtnShowNotificaciones(false);\n setShowModalNotificaciones(false);\n })\n .catch((error) => {\n Swal.fire({\n title: 'Error #2',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(error);\n });\n setLoading(false);\n }\n\n return (\n <>\n \n {\n btnShowNotificaciones == true ? (\n { setShowModalNotificaciones(true) }}\n color=\"inherit\">\n \n \n ): null\n }\n\n \n \n \n \n \n \n Cánticos nuevos\n \n \n\n \n {\n size(notificaciones) > 0 ?\n (notificaciones.map((data, i) => (\n \n {data.bsong_title}\n }\n secondary={data.bsong_type_desc}\n />\n \n ))) : (\"\")\n }\n \n \n \n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport IconButton from '@material-ui/core/IconButton';\nimport Switch from '@material-ui/core/Switch';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Menu from '@material-ui/core/Menu';\nimport { Container } from \"reactstrap\";\nimport Notification from '../components/notification/Notification';\n\nimport './NavMenu.css';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n title: {\n flexGrow: 1,\n },\n}));\n\nexport default function NavMenu(props) {\n const {screenName} = props;\n const classes = useStyles();\n\n return (\n
\n \n \n \n {screenName}\n \n \n \n \n
\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ListItem from '@material-ui/core/ListItem';\nimport List from '@material-ui/core/List';\nimport Divider from '@material-ui/core/Divider';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Slide from '@material-ui/core/Slide';\nimport { ListItemSecondaryAction, Switch, ListItemIcon, ButtonGroup, Typography, Slider } from \"@material-ui/core\";\nimport $ from \"jquery\";\nimport Swal from \"sweetalert2\";\nimport { size } from \"lodash\";\nimport Loading from '../../components/loading/Loading';\n\nconst useStyles = makeStyles((theme) => ({\n appBar: {\n position: 'relative',\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n appBarBottom: {\n top: 'auto',\n bottom: 0\n },\n}));\n\nconst Transition = React.forwardRef(function Transition(props, ref) {\n return ;\n});\n\nexport default function LeerCantico(props) {\n const classes = useStyles();\n const { handle, visible, data } = props;\n const [loading, setLoading] = useState(false);\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const [favorito, setFavorito] = useState(false);\n const [cantico, setCantico] = useState([]);\n\n useEffect(() => {\n buscarFavorito();\n }, [data])\n\n const buscarFavorito = async () => {\n setLoading(true);\n try {\n //Validamos si recibe valor de la pantalla de cantico o de favoritos\n if (data.bsong_id != undefined || data.rfavo_bsong_id != undefined) {\n const response = await fetch(`bsong/bsong/get?buserId=${user.id}&token=${user.token}&buserId=${user.id}&bsong_id=${data.bsong_id != undefined ? data.bsong_id : data.rfavo_bsong_id}`);\n const json = await response.json();\n //console.log(json[0])\n setCantico(json[0]);\n\n if (json[0].bsong_rfavo == 0)\n setFavorito(false);\n else setFavorito(true);\n\n //Estilo de las letras.\n let configuration = JSON.parse(localStorage.getItem(\"configuration\"));\n $('#letter').css({ 'line-height': configuration.espaciado + 'px', 'font-size': configuration.letra + 'px', 'text-align': configuration.alineacion });\n }\n\n } catch (e) {\n console.error(e);\n Swal.fire({\n title: 'Error #1.03',\n text: \"Ha ocurrido un error.\",\n confirmButtonText: 'Ok',\n })\n }\n setLoading(false);\n }\n\n const cerrarModal = () => {\n handle(false, '')\n }\n\n //Agregar a la lista.\n const btnAgregarFavorito = () => {\n setLoading(true);\n let sendData = {\n rfavo_buser_id: user.id,\n rfavo_bsong_id: data.bsong_id\n }\n\n fetch(`rfavo/add?token=${user.token}`, {\n method: \"POST\",\n body: JSON.stringify(sendData),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => response.json())\n .then((responseJson) => {\n setFavorito(true);\n Swal.fire({\n title: '',\n text: 'El cántico ha sido agregado a la lista de favoritos.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n })\n .catch((error) => {\n Swal.fire({\n title: 'Error #1',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(error);\n });\n setLoading(false);\n }\n\n //Eliminar de la lista.\n const btneliminarFavorito = () => {\n //e.preventDefault();\n setLoading(true);\n let sendData = {\n rfavo_id: data.bsong_rfavo\n }\n\n fetch(`rfavo/delete?token=${user.token}`, {\n method: \"DELETE\",\n body: JSON.stringify(sendData),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => response.json())\n .then((responseJson) => {\n setFavorito(false);\n Swal.fire({\n title: '',\n text: 'El cántico ha sido eliminado de la lista de favoritos.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n })\n .catch((error) => {\n Swal.fire({\n title: 'Error #1',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(error);\n });\n setLoading(false);\n }\n\n //Agregamos la letra del cantico al blockquote. De esta manera la app puede poner las etiquetas
porque lo interpreta el json como HTML.\n $(document).ready(function () {\n $('#letter').html(cantico.bsong_letter);\n //$('#letter').css({ 'line-height': configuration.espaciado + 'px', 'font-size': configuration.letra + 'px', 'text-align': configuration.alineacion });\n });\n\n\n return (\n
\n \n \n \n \n \n \n {cantico.bsong_title}\n \n \n\n \n
\n\n {\n data.rfavo_bsong_id == undefined ?\n (\n \n \n\n {\n favorito != 0 ?\n (\n \n \n \n ) :\n (\n \n \n )\n }\n \n \n ) : null\n }\n\n
\n
\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ListItem from '@material-ui/core/ListItem';\nimport List from '@material-ui/core/List';\nimport Divider from '@material-ui/core/Divider';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Slide from '@material-ui/core/Slide';\nimport { ListItemSecondaryAction, Switch, ListItemIcon, ButtonGroup, Typography, Slider } from \"@material-ui/core\";\nimport Swal from \"sweetalert2\";\nimport { size } from \"lodash\";\nimport LeerCantico from '../leerCantico/LeerCantico';\n\nconst useStyles = makeStyles((theme) => ({\n appBar: {\n position: 'relative',\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n}));\n\nconst Transition = React.forwardRef(function Transition(props, ref) {\n return ;\n});\n\nexport default function Configuracion(props) {\n const classes = useStyles();\n let { type } = useParams();\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const { handle, visible } = props;\n const [loading, setLoading] = useState(false);\n const [data, setData] = useState([]);\n const [showLeer, setShowLeer] = useState(false);\n const [selectCantico, setSelectCantico] = useState('');\n\n useEffect(() => {\n loadData();\n }, [])\n\n const loadData = async () => {\n setLoading(true);\n\n try {\n const response = await fetch(`rfavo/favoritos?token=${user.token}&buserId=${user.id}`);\n const json = await response.json();\n //console.log(json)\n setData(json);\n } catch (e) {\n console.error(e);\n Swal.fire({\n title: 'Error #1',\n text: \"Ha ocurrido un error.\",\n confirmButtonText: 'Ok',\n })\n }\n setLoading(false);\n }\n\n //Enviamos este handle a Canticos.js y LeerCantico.js\n const handreLeerCantico = (visible, data) => {\n setSelectCantico(data);\n setShowLeer(visible);\n }\n\n return (\n
\n\n { handle(false) }} TransitionComponent={Transition}>\n \n \n { handle(false) }} aria-label=\"close\">\n \n \n Favoritos\n \n \n\n\n \n {\n size(data) > 0 ?\n (data).map((d, i) => (\n \n { handreLeerCantico(true, d); }}\n primary={{d.rfavo_bsong_title}}\n secondary={d.rfavo_bsong_type_desc}\n />\n \n \n \n \n )) : (\"\")\n }\n \n\n \n\n \n
\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ListItem from '@material-ui/core/ListItem';\nimport List from '@material-ui/core/List';\nimport Divider from '@material-ui/core/Divider';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Slide from '@material-ui/core/Slide';\nimport { ListItemSecondaryAction, Switch, ListItemIcon, ButtonGroup, Typography, Slider } from \"@material-ui/core\";\nimport $ from \"jquery\";\n\nconst useStyles = makeStyles((theme) => ({\n appBar: {\n position: 'relative',\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n}));\n\nconst Transition = React.forwardRef(function Transition(props, ref) {\n return ;\n});\n\nexport default function Configuracion(props) {\n const classes = useStyles();\n const { handle, visible } = props;\n const [configuration, setConfiguration] = useState(JSON.parse(localStorage.getItem(\"configuration\")));\n const [modoNocturno, setModoNocturno] = useState(JSON.parse(localStorage.getItem(\"modoNocturno\")));\n\n useEffect(() => {\n loadConfiguration();\n }, [])\n\n const loadConfiguration = () => {\n //console.log(configuration);\n if (configuration == null || configuration == \"\")\n setConfiguration({ alineacion: 'left', letra: '14', espaciado: '24' });\n else setConfiguration(JSON.parse(localStorage.getItem(\"configuration\")));\n\n //console.log(localStorage.getItem(\"modoNocturno\"));\n if (modoNocturno == null || modoNocturno == \"\")\n setModoNocturno(false);\n else setModoNocturno(localStorage.getItem(\"modoNocturno\"));\n }\n\n const handleLetra = (event, newValue) => {\n setConfiguration({ ...configuration, letra: newValue });\n localStorage.setItem(\"configuration\", JSON.stringify(configuration));\n $('.changeLetter').css({ 'line-height': configuration.espaciado + 'px', 'font-size': configuration.letra + 'px', 'text-align': configuration.alineacion });\n };\n\n const handleEspaciado = (event, newValue) => {\n setConfiguration({ ...configuration, espaciado: newValue });\n localStorage.setItem(\"configuration\", JSON.stringify(configuration));\n $('.changeLetter').css({ 'line-height': configuration.espaciado + 'px', 'font-size': configuration.letra + 'px', 'text-align': configuration.alineacion });\n };\n\n const btnAlineacion = (text) => {\n let conf = { ...configuration, alineacion: text };\n setConfiguration(conf);\n localStorage.setItem(\"configuration\", JSON.stringify(conf));\n $('.changeLetter').css({ 'line-height': conf.espaciado + 'px', 'font-size': conf.letra + 'px', 'text-align': conf.alineacion });\n }\n\n const cbModoNocturno = () => {\n setModoNocturno(!modoNocturno)\n localStorage.setItem(\"modoNocturno\", !modoNocturno);\n\n //console.log(!modoNocturno);\n if (!modoNocturno == true)\n $('head').append($('').attr('href', 'assets/css/modoOscuro.css'));\n else $(\"#modoOscuro\").remove();\n }\n\n $(document).ready(function () {\n $('.changeLetter').css({ 'line-height': configuration.espaciado + 'px', 'font-size': configuration.letra + 'px', 'text-align': configuration.alineacion });\n });\n\n return (\n
\n\n { handle(false) }} TransitionComponent={Transition}>\n \n \n { handle(false) }} aria-label=\"close\">\n \n \n Configuración\n \n \n\n \n\n \n \n {\n modoNocturno == true ? () : ()\n }\n \n \n \n \n \n \n \n\n

\n Sea llena mi boca de tu alabanza, de tu gloria todo el día.\n

\n\n
\n Alineación\n \n \n \n \n \n
\n\n
\n Tamaño de letra\n { sliderLetra(e)}}\n onChange={handleLetra}\n aria-labelledby=\"discrete-slider-small-steps\"\n step={1}\n marks\n min={8}\n max={24}\n valueLabelDisplay=\"auto\"\n />\n
\n\n
\n Espaciado entre líneas\n \n
\n\n
\n Versión 3.0.0\n
\n\n
\n
\n );\n}\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Slide from '@material-ui/core/Slide';\nimport { Typography, TextField } from \"@material-ui/core\";\nimport Swal from \"sweetalert2\";\nimport Loading from '../../components/loading/Loading';\n\nconst useStyles = makeStyles((theme) => ({\n appBar: {\n position: 'relative',\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n}));\n\nconst Transition = React.forwardRef(function Transition(props, ref) {\n return ;\n});\n\nexport default function Configuracion(props) {\n const classes = useStyles();\n const { handle, visible } = props;\n const [loading, setLoading] = useState(false);\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const [password, setPassword] = useState(\"\");\n const [name, setName] = useState(user.name);\n const [lastName, setLastName] = useState(user.lastname);\n const [email, setEmail] = useState(user.email);\n const [newEmail, setNewEmail] = useState('');\n //const [avatar, setAvatar] = useState(user.avatar);\n\n const btnModificar = async (e) => {\n e.preventDefault();\n if (!lastName || !name) {\n Swal.fire({\n title: 'Alerta',\n text: 'El nombre y los apellidos son requeridos.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n return;\n }\n\n setLoading(true);\n let sendData = {\n buser_name: name,\n buser_lastname: lastName,\n buser_email: !newEmail ? user.email : newEmail,\n buser_password: password,\n buser_id:user.id\n }\n console.log(sendData);\n fetch(`buser/update?token=${user.token}`, {\n method: \"PUT\",\n body: JSON.stringify(sendData),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => response.json())\n .then((responseJson) => {\n if (responseJson[0].status == 300) {\n Swal.fire({\n title: 'Alerta',\n text: responseJson[0].mensaje,\n confirmButtonText: 'Ok',\n })\n }\n else {\n let jsonUserNewData = {\n token: user.token,\n id: user.id,\n email: !newEmail ? user.email : newEmail,\n name: name,\n lastname: lastName,\n avatar: user.avatar,\n status: user.status,\n role: user.role\n };\n\n localStorage.setItem(\"userAccount\", JSON.stringify(jsonUserNewData));\n setEmail(jsonUserNewData.email);\n setNewEmail(null);\n\n Swal.fire({\n title: '',\n text: 'Su información ha sido actualizada.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n }\n })\n .catch((error) => {\n Swal.fire({\n title: 'Error #5',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(error);\n });\n setLoading(false);\n }\n return (\n
\n \n { handle(false) }} TransitionComponent={Transition}>\n \n \n { handle(false) }} aria-label=\"close\">\n \n \n Cuenta de usuario\n \n \n\n\n\n
\n\n
\n { setName(e.target.value) }}\n fullWidth\n color=\"secondary\"\n //helperText=\"Ingrese su email\"\n />\n
\n\n
\n { setLastName(e.target.value) }}\n fullWidth\n color=\"secondary\"\n //helperText=\"Ingrese su email\"\n />\n
\n\n
\n { setNewEmail(e.target.value) }}\n fullWidth\n color=\"secondary\"\n helperText={`Actual: ${email}`}\n />\n
\n\n
\n { setPassword(e.target.value) }}\n fullWidth\n type=\"password\"\n />\n
\n \n\n
\n
\n
\n );\n}\n","import React from 'react';\nimport {useHistory } from 'react-router-dom';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Drawer from '@material-ui/core/Drawer';\nimport Button from '@material-ui/core/Button';\nimport List from '@material-ui/core/List';\nimport Divider from '@material-ui/core/Divider';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\n\nimport Favoritos from '../../favoritos/Favoritos';\nimport Configuracion from '../../configuracion/Configuracion';\nimport CuentaUsuario from '../../cuentaUsuario/CuentaUsuario';\n\nconst useStyles = makeStyles({\n list: {\n width: 250,\n },\n fullList: {\n width: 'auto',\n },\n});\n\nexport default function Drawers(props) {\n const { visible, handleDrawer } = props;\n let history = useHistory();\n const [showIndice, setShowIndice] = React.useState(false);\n const [showFavoritos, setShowFavoritos] = React.useState(false);\n const [showConfig, setShowConfig] = React.useState(false);\n const [showCuentaUsuario, setShowCuentaUsuario] = React.useState(false);\n const classes = useStyles();\n\n //abrir o cerrar drawer\n const toggleDrawer = (open) => (event) => {\n if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {\n return;\n }\n handleDrawer(!visible);\n };\n\n //abrir o cerrar indice\n const handleIndice = (show) => {\n setShowIndice(show);\n }\n\n //Abrir o cerrar favoritos\n const handleFavoritos = (show) => {\n setShowFavoritos(show);\n }\n\n //Abrir o cerrar el modal de config\n const handleConfig = (show) => {\n setShowConfig(show);\n }\n\n //cuenta de usuario\n const handleUsuario = (show) => {\n setShowCuentaUsuario(show);\n }\n\n const btnSalir = () => {\n localStorage.clear();\n history.replace(\"/login\");\n }\n\n const list = (anchor) => (\n \n\n \n {[{ label: 'Índice', action: () => { handleIndice(true) }, icon: 'fas fa-list-ul', display:'none' },\n { label: 'Favoritos', action: () => { handleFavoritos(true) }, icon: 'fas fa-heart', display: 'visible' }].map((data, index) => (\n \n \n \n \n ))}\n \n \n \n {[{ label: 'Configuración', action: () => { handleConfig(true) }, icon: 'fas fa-cog', display: 'visible' },\n { label: 'Cuenta de usuario', action: () => { handleUsuario(true) }, icon: 'fas fa-user', display: 'visible' },\n { label: 'Salir', action: btnSalir, icon: 'fas fa-door-closed', display: true }].map((data, index) => (\n \n \n \n \n ))}\n \n \n );\n\n return (\n
\n \n \n \n\n \n \n {list('bottom')}\n \n \n
\n );\n}\n","import React from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport {BottomNavigation, BottomNavigationAction} from \"@material-ui/core\";\nimport Drawers from './Drawers';\n\nexport default function BottomMenu(props) {\n const { handleScreenName } = props;\n let history = useHistory();\n const [value, setValue] = React.useState('recents');\n const [showDrawer, setShowDrawer] = React.useState(false);\n\n //Abrir o cerrar el drawer\n const handleDrawer = (show) => {\n setShowDrawer(show);\n }\n\n //Eventos del bottom menu.\n const handleChange = (event, value) => {\n setValue(value);\n\n //Cambiamos el nombre de la pantalla\n if (value != 'mas')\n handleScreenName(value)\n\n if (value == 'Coros') {\n history.push({\n pathname: '/canticos/C',\n state: { type: 'C' }\n });\n }\n else if (value == 'Música') {\n history.push({\n pathname: '/canticos/musica/audio',\n state: { type: '' }\n });\n }\n else if (value == 'Medleys') {\n history.push({\n pathname: '/canticos/MD',\n state: { type: 'MD' }\n });\n }\n else if (value == 'Himnos') {\n history.push({\n pathname: '/canticos/H',\n state: { type: 'H' }\n });\n }\n else if (value == 'mas')\n setShowDrawer(true);\n else {\n history.push({\n pathname: '/canticos/C',\n state: { type: 'C' }\n });\n }\n };\n\n return (\n <>\n \n\n \n }\n />\n }\n />\n\n }\n />\n\n }\n />\n\n }\n />\n \n \n\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { Container } from \"reactstrap\";\nimport { Redirect, useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { Zoom, useScrollTrigger, makeStyles, Fab } from \"@material-ui/core\";\nimport NavMenu from \"../../components/NavMenu\";\nimport BottomMenu from \"../../components/navmenu/bottom/bottomMenu\";\nimport $ from \"jquery\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n position: 'fixed',\n bottom: theme.spacing(8),\n right: theme.spacing(3),\n },\n}));\n\nfunction ScrollTop(props) {\n const { children, window } = props;\n const classes = useStyles();\n const trigger = useScrollTrigger({\n target: window ? window() : undefined,\n disableHysteresis: true,\n threshold: 100,\n });\n\n const handleClick = (event) => {\n const anchor = (event.target.ownerDocument || document).querySelector('#root');\n if (anchor) {\n anchor.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n };\n\n return (\n \n
\n {children}\n
\n
\n );\n}\n\nScrollTop.propTypes = {\n children: PropTypes.element.isRequired,\n window: PropTypes.func,\n};\n\nexport const Layout = (props) => {\n $('body').css('background-color','#f5f5f5');\n let history = useHistory();\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const modoNocturno = JSON.parse(localStorage.getItem(\"modoNocturno\"));\n const [screenName, setsCreenName] = useState('Coros');\n\n useEffect(() => {\n changeMode();\n }, [])\n\n if (user == undefined || user == \"\")\n return \n\n const changeMode = () => {\n if (modoNocturno == true)\n $('head').append($('').attr('href', 'assets/css/modoOscuro.css'));\n else $(\"#modoOscuro\").remove();\n }\n\n //Obtenemos el nombre de la pantalla de acuerdo a la seleccion que se haya hecho en el bottom menu\n const handleScreenName = (val) => {\n setsCreenName(val);\n }\n return (\n <>\n \n \n {props.children}\n\n \n \n \n \n \n \n \n \n );\n};\nexport default Layout;","import React, {useEffect } from \"react\";\nimport { Container } from \"reactstrap\";\nimport \"./styleLoginLayout.css\";\nimport $ from \"jquery\";\n\nexport const LoginLayout = (props) => {\n const modoNocturno = JSON.parse(localStorage.getItem(\"modoNocturno\"));\n\n useEffect(() => {\n changeMode();\n }, [])\n\n const changeMode = () => {\n //console.log(modoNocturno);\n if (modoNocturno === true)\n $('head').append($('').attr('href', 'assets/css/modoOscuro.css'));\n else $(\"#modoOscuro\").remove();\n }\n\n return (\n
\n {props.children}\n
\n );\n};\nexport default LoginLayout;\n","import React, { useEffect, useState } from \"react\";\nimport { Link, useHistory } from 'react-router-dom';\nimport { Container } from \"reactstrap\";\nimport { Button, Switch, FormGroup, FormControlLabel, TextField, Box } from \"@material-ui/core\";\nimport moment from \"moment\";\nimport \"moment/locale/es\";\nimport Swal from \"sweetalert2\";\nimport { size } from \"numeral\";\n//\n\nexport const Login = (props) => {\n let history = useHistory();\n moment.locale(\"es\");\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const [recordar, setRecordar] = useState(JSON.parse(localStorage.getItem(\"recordar\")));\n const [cbkRecordar, setCbkRecordar] = useState(true);\n\n useEffect(() => {\n loadRecordar();\n },[])\n\n const loadRecordar = () => {\n try\n {\n //localStorage.clear();\n localStorage.setItem(\"configuration\", JSON.stringify({ alineacion: 'left', letra: '14', espaciado: '24' }));\n localStorage.setItem(\"modoNocturno\", false);\n\n if (recordar == null || recordar == \"\")\n setCbkRecordar(true);\n else if (recordar == true)\n history.replace(\"/canticos/C\");\n\n } catch (e) {\n console.error(e);\n }\n }\n\n const btnLogin = async (e) => {\n e.preventDefault();\n\n if (!email || !password) {\n Swal.fire({\n title: 'Alerta',\n text: 'El email y la contraseña son requeridos.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n return;\n }\n\n let sendData = {\n buser_email: email,\n buser_password: password\n }\n\n fetch(`buser/login`, {\n method: \"POST\",\n body: JSON.stringify(sendData),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => response.json())\n .then((responseJson) => {\n console.log(responseJson);\n if (responseJson.serverStatus == 200) {\n localStorage.setItem(\"recordar\", cbkRecordar);\n localStorage.setItem(\"userAccount\", JSON.stringify(responseJson));\n history.replace(\"/canticos/C\");\n }\n else if (responseJson.serverStatus == 300) {\n Swal.fire({\n title: '',\n text: responseJson.mensaje,\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n }else {\n Swal.fire({\n title: '',\n text: 'Las credenciales no son validas.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(responseJson[0].server)\n }\n })\n .catch((error) => {\n Swal.fire({\n title: 'Error #2',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(error);\n });\n }\n\n return (\n \n
\n
\n \n
Coritario I.E.R.
\n
\n\n
\n { setEmail(e.target.value) }}\n fullWidth\n color=\"secondary\"\n //helperText=\"Ingrese su email\"\n />\n
\n\n
\n { setPassword(e.target.value) }}\n fullWidth\n type=\"password\"\n />\n
\n\n
\n \n { setCbkRecordar(e.target.checked) }} checked={cbkRecordar} />} label=\"¿Deseas que te recordemos?\" />\n \n
\n\n \n
\n
\n

\n ¿Has perdido la contraseña?\n
\n ¿No tienes una cuenta?\n

\n
\n
\n
\n \n
\n );\n};\n\nexport default Login;\n","import React, {useState } from \"react\";\nimport { Link, useHistory } from 'react-router-dom';\nimport { Container } from \"reactstrap\";\nimport { Button, TextField, Box } from \"@material-ui/core\";\nimport moment from \"moment\";\nimport \"moment/locale/es\";\nimport Swal from \"sweetalert2\";\nimport { size } from \"numeral\";\n//\n\nexport const Register = (props) => {\n let history = useHistory();\n moment.locale(\"es\");\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n\n const btnRegister = async (e) => {\n e.preventDefault();\n if (!email || !password) {\n Swal.fire({\n title: 'Alerta',\n text: 'El email y la contraseña son requeridos.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n return;\n }\n\n let sendData = {\n buser_email: email,\n buser_password: password\n }\n\n fetch(`buser/register`, {\n method: \"POST\",\n body: JSON.stringify(sendData),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => response.json())\n .then((responseJson) => {\n if (responseJson[0].status == 200) {\n //localStorage.setItem(\"userAccount\", JSON.stringify(responseJson));\n history.replace(\"/login\");\n }\n else if (responseJson[0].status == 300) {\n Swal.fire({\n title: 'Alerta',\n text: responseJson[0].mensaje,\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n }\n else {\n Swal.fire({\n title: 'Error #1',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(responseJson)\n }\n })\n .catch((error) => {\n Swal.fire({\n title: 'Error #2',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(error);\n });\n }\n\n return (\n \n
\n
\n \n
Crear cuenta
\n
\n\n
\n { setEmail(e.target.value) }}\n fullWidth\n color=\"secondary\"\n //helperText=\"Ingrese su email\"\n />\n
\n\n
\n { setPassword(e.target.value) }}\n fullWidth\n type=\"password\"\n />\n
\n\n \n
\n
\n

\n ¿Ya tienes una cuenta?\n

\n
\n
\n
\n \n
\n );\n};\n\nexport default Register;","import React, { useState } from \"react\";\nimport { Link, useHistory } from 'react-router-dom';\nimport { Container } from \"reactstrap\";\nimport { Button, TextField } from \"@material-ui/core\";\nimport moment from \"moment\";\nimport \"moment/locale/es\";\nimport Swal from \"sweetalert2\";\n//\n\nexport const Forget = (props) => {\n let history = useHistory();\n moment.locale(\"es\");\n const [email, setEmail] = useState('');\n\n const btnRecuperarContrasena = async (e) => {\n e.preventDefault();\n\n if (!email) {\n Swal.fire({\n title: 'Alerta',\n text: 'El email es requerido.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n return;\n }\n\n let sendData = {\n buser_email: email\n }\n\n fetch(`buser/forget`, {\n method: \"POST\",\n body: JSON.stringify(sendData),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n })\n .then((response) => response.json())\n .then((responseJson) => {\n console.log(responseJson);\n if (responseJson.serverStatus == 200) {\n Swal.fire({\n title: 'Completado',\n text: 'Hemos enviado la contraseña a su email. Si no lo encuentra en su bandeja de entrada verifique en el Spam.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n }).then((result) => {\n if (result.isConfirmed) {\n history.replace(\"/login\");\n } \n })\n }\n else if (responseJson.serverStatus == 300) {\n Swal.fire({\n title: '',\n text: responseJson.mensaje,\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n } else {\n Swal.fire({\n title: '',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(responseJson[0].server)\n }\n })\n .catch((error) => {\n Swal.fire({\n title: 'Error #2',\n text: 'Ha ocurrido un error.',\n confirmButtonText: 'Ok',\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false\n })\n console.error(error);\n });\n }\n\n return (\n \n
\n
\n \n
Recuperar contraseña
\n
\n\n
\n { setEmail(e.target.value) }}\n fullWidth\n color=\"secondary\"\n //helperText=\"Ingrese su email\"\n />\n
\n\n \n
\n
\n

\n ¿Ya tienes una cuenta?\n

\n
\n
\n
\n \n
\n );\n};\n\nexport default Forget;\n","import React from 'react';\nimport { ListItem, ListItemText, ListItemSecondaryAction, ListItemIcon, ButtonGroup, Typography } from \"@material-ui/core\";\n\n\nexport default function Canticos(props) {\n const { indice, jsonCanticos, handle } = props;\n\n return (\n { handle(true, jsonCanticos); }}\n //className=\"bg-white\"\n >\n {jsonCanticos.bsong_title}\n } />\n\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport clsx from 'clsx';\nimport Card from '@material-ui/core/Card';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardActions from '@material-ui/core/CardActions';\nimport Collapse from '@material-ui/core/Collapse';\nimport Avatar from '@material-ui/core/Avatar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Typography from '@material-ui/core/Typography';\nimport Loading from '../components/loading/Loading';\nimport Swal from \"sweetalert2\";\nimport { size } from \"lodash\";\n\nexport default function Inidice(props) {\n const { handleIndice, type } = props;\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const [loading, setLoading] = useState(false);\n const [letras, setLetras] = useState(type);\n const [data, setData] = useState([]);\n\n useEffect(() => {\n loadIndice();\n }, [type])\n\n const loadIndice = async () => {\n setLoading(true);\n\n try {\n const response = await fetch(`bsong/bsong/indice?token=${user.token}&type=${type}`);\n const json = await response.json();\n //console.log(json)\n setData(json);\n } catch (e) {\n console.error(e);\n Swal.fire({\n title: 'Error #1',\n text: \"Ha ocurrido un error.\",\n confirmButtonText: 'Ok',\n })\n }\n setLoading(false);\n }\n\n const btnHandleIndice = (val) => {\n handleIndice(val);\n }\n\n return (\n <>\n \n
\n
    \n
  • { btnHandleIndice('') }} className=\"mb-2\">
  • \n {\n size(data) > 0 ?\n (data).map((d, i) => (\n
  • btnHandleIndice(d.indice_letter)} className=\"mb-2\">{d.indice_letter}
  • \n )) : (\"\")\n }\n
\n
\n \n );\n}","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Input from '@material-ui/core/Input';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\nimport Grid from '@material-ui/core/Grid';\n\nexport default function Search(props) {\n const { handleSearch, value, helperText } = props;\n\n return (\n
\n Buscar\n { handleSearch(e.target.value) }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n helperText={helperText}\n />\n
\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { useParams, useHistory } from 'react-router-dom';\nimport { List } from \"@material-ui/core\";\nimport Canticos from '../components/cardCanticos/Canticos';\nimport Indice from \"../components/Indice\";\nimport Loading from '../components/loading/Loading';\nimport Search from \"../components/search/Search\";\nimport LeerCantico from '../components/leerCantico/LeerCantico';\nimport Swal from \"sweetalert2\";\nimport { size } from \"lodash\";\nimport numeral from 'numeral';\nimport $ from \"jquery\";\n\nexport const Home = (props) => {\n let { type } = useParams();\n const [typeAnterior, setTypeAnterior] = useState('');\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const [numeroCanticos, setNumeroCanticos] = useState('');\n const [indice, setIndice] = useState('');\n const [buscar, setBuscar] = useState('');\n const [canticos, setCanticos] = useState([]);\n const [loading, setLoading] = useState(false);\n const [showLeer, setShowLeer] = useState(false);\n const [selectCantico, setSelectCantico] = useState('');\n\n useEffect(() => {\n //document.getElementById(\"reproductorScript\").remove();\n loadCanticos();\n }, [type, indice])\n\n const loadCanticos = async () => {\n setLoading(true);\n //Si el tipo de cantico no es igual al anterior limpiamos el filtro setIndice\n\n if (typeAnterior != type)\n setIndice('');\n\n try {\n const response = await fetch(`bsong/bsong/get?token=${user.token}&buserId=${user.id}&type=${type}&index=${indice}`);\n const json = await response.json();\n //console.log(json[0].indice)\n setCanticos(json);\n setNumeroCanticos(size(json))\n setTypeAnterior(type);\n } catch (e) {\n console.error(e);\n Swal.fire({\n title: 'Error #1',\n text: \"Ha ocurrido un error.\",\n confirmButtonText: 'Ok',\n })\n }\n setLoading(false);\n }\n\n //Buscar\n const handleSearch = (val) => {\n setBuscar(val);\n }\n\n //Recuperar la seleccion del la letra del indice de la derecha.\n const handleIndice = (val) => {\n setIndice(val);\n }\n //Enviamos este handle a Canticos.js y LeerCantico.js\n const handreLeerCantico = (visible, data) => {\n setSelectCantico(data);\n setShowLeer(visible);\n }\n\n return (\n <>\n \n
\n \n\n \n {numeroCanticos != '' ? 'Total: ' + numeroCanticos : ''}\n \n\n \n {\n size(canticos) > 0 ?\n (canticos.filter((val) => {\n if (buscar == \"\") {\n return val\n }\n if (buscar != \"\" && val.bsong_title.toLowerCase().includes(buscar.toLowerCase())) {\n return val\n }\n }).map((data, i) => (\n \n ))) : (\"\")\n }\n \n\n \n\n \n
\n \n\n );\n};\n\nexport default Home;","import React, { useEffect, useState } from \"react\";\n//import { Link, useHistory } from 'react-router-dom';\nimport Swal from \"sweetalert2\";\nimport { size } from \"lodash\";\nimport Loading from '../../components/loading/Loading';\nimport Search from '../../components/search/Search';\nimport Indice from \"../../components/Indice\";\nimport $ from \"jquery\";\nimport \"./style.css\";\n\nexport const Reproductor = (props) => {\n const [user, setUser] = useState(JSON.parse(localStorage.getItem(\"userAccount\")));\n const [loading, setLoading] = useState(false);\n const [indice, setIndice] = useState(\"\");\n const [audio, setAudio] = useState([]);\n const [numeroCanticos, setNumeroCanticos] = useState('');\n const [buscar, setBuscar] = useState('');\n //Variable para cargar y borrar el script de reproductor.\n const script = document.createElement('script');\n\n useEffect(() => {\n loadData();\n }, [indice])\n\n useEffect(() => {\n //Eliminamos el script del reproductor cuando salimos de la pantalla.\n return () => {\n $(\".pause\").click();\n document.body.removeChild(script);\n }\n }, []);\n\n function cargarScript() {\n script.src = \"./assets/js/musicplayer.js\";\n script.async = true;\n script.id = \"reproductorScript\";\n document.body.appendChild(script);\n }\n\n const loadData = async () => {\n setLoading(true);\n\n try {\n const response = await fetch(`bsong/bsong/audio?token=${user.token}&buserId=${user.id}&index=${indice}&letter=${buscar}`);\n const json = await response.json();\n setAudio(json);\n setNumeroCanticos(size(json))\n //Se cargar el script del repoductor cuando se haya mostrado la lista de los coros.\n cargarScript();\n } catch (e) {\n console.error(e);\n Swal.fire({\n title: 'Error #1',\n text: \"Ha ocurrido un error.\",\n confirmButtonText: 'Ok',\n })\n }\n setLoading(false);\n }\n\n //Indice de la derecha.\n const handleIndice = (val) => {\n setIndice(val);\n }\n\n //Buscar\n const handleSearch = (val) => {\n setBuscar(val);\n cargarScript();\n }\n\n return (\n
\n \n\n \n\n \n {numeroCanticos != '' ? 'Total: ' + numeroCanticos : ''}\n \n\n
\n
    \n {\n size(audio) > 0 ?\n audio.filter((val) => {\n if (buscar == \"\") {\n return val\n }\n if (buscar != \"\" && val.bsong_title.toLowerCase().includes(buscar.toLowerCase())) {\n return val\n }\n }).map((data, i) => (\n
  • \n {data.bsong_title}\n
  • \n )) : (\"\")\n }\n
\n
\n\n \n
\n );\n};\n\nexport default Reproductor;","import React from \"react\";\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\n\nimport Layout from \"../layout/layout/Layout\";\nimport LoginLayout from \"../layout/loginLayout/LoginLayout\";\n\n// views\nimport Login from \"../screen/login/Login\";\nimport Register from \"../screen/login/register\";\nimport Forget from \"../screen/login/forget\";\n\n// admin Views\nimport Home from \"../screen/Home\";\n//import Musica from \"../screen/musica\";\nimport Reproductor from \"../screen/Player/Reproductor\";\n\nexport default () => {\n return (\n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React, { Component } from \"react\";\nimport Routers from \"./router\";\nimport \"./custom.css\";\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core';\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n '&:hover': { // changes colors for button hover state\n backgroundColor: \"red\",\n color: \"greeb\",\n },\n main: \"#33AEFF\",\n },\n secondary: {\n main: \"#019aff\"\n }\n },\n overrides: {\n MuiButton: {\n root: {\n borderRadius: 30,\n textTransform: 'none',\n border: 2,\n borderStyle:'solid',\n borderColor: '#33AEFF',\n fontSize: 16,\n },\n label: { color: \"#fff\" },\n },\n },\n typography: {\n fontSize: 12,\n h3: {\n fontWeight: 700,\n fontSize: '2.2rem'\n },\n h4: {\n fontWeight: 700,\n fontSize: '1.75rem'\n },\n h5: {\n fontWeight: 500\n },\n h6: {\n fontWeight: 500\n }\n }\n});\n\nexport default class App extends Component {\n static displayName = App.name;\n\n render() {\n return (\n \n \n \n );\n }\n}\n","const version = \"3.0.0\";\nconst Swal = require('sweetalert2')\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n alert(\"Hay una nueva versión de la aplicación. Reinicie para poder ver los cambios.\");\n console.log('New content is available; please refresh.');\n } else {\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n alert(\"No tiene acceso a internet.\");\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'bootstrap/dist/css/bootstrap.css';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\n\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nconst rootElement = document.getElementById('root');\n\nReactDOM.render(\n \n \n ,\n rootElement);\n\nregisterServiceWorker();\n\n"],"sourceRoot":""}