music.service.frontend/src/components/index/indexConsole/commands/fetchCommands/Album/Delete.js

82 lines
2.0 KiB
JavaScript

import React, { useState, useEffect } from 'react'
import { connect } from 'react-redux'
import { deleteAlbum } from '../../../../../../stores/album/duck/operations'
import { AbstractDelete } from '../Abstract Utils/AbstractDelete'
import { FormGenerator } from '../Abstract Utils/FormGenerator'
import { ResetComponent } from '../Abstract Utils/ResetComponent'
const AlbumDelete = ({
user,
deleteAlbum,
consoleHistory, setConsoleHistory,
componentVisible, setComponentVisible,
activateConsoleInput
}) => {
const [message, setMessage] = useState('')
const idInput = React.createRef()
let refList = [
idInput
]
let inputList = [
{
type: 'info',
action: 'Delete',
endpoint: 'Album'
},
{
type: 'text',
name: 'id',
ref: idInput
}
]
const deleteFetch = (event) => {
AbstractDelete(
refList,
consoleHistory,
setConsoleHistory,
setMessage,
deleteAlbum,
user.token
)
}
const resetState = () => {
setConsoleHistory( consoleHistory + message )
setComponentVisible( false )
setMessage('')
}
return (
<div>
<FormGenerator
inputList={ inputList }
refList={ refList }
action={ deleteFetch }
/>
<ResetComponent
resetState={ resetState }
refList={ refList }
message={ message }
componentVisible={ componentVisible }
activateConsoleInput={ activateConsoleInput }
/>
</div>
)
}
const mapStateToProps = state => ({
user: state.user
})
const mapDispatchToProps = dispatch => ({
deleteAlbum: (id, token) => deleteAlbum(id, token)
})
export default connect(mapStateToProps, mapDispatchToProps)(AlbumDelete)