simple fixes album update && add create track

develop
TBS093A 2020-08-20 12:55:32 +02:00
parent 13e9dc08d7
commit 40415680bc
2 changed files with 140 additions and 0 deletions

View File

@ -82,6 +82,8 @@ const AlbumUpdate = ({
const resetState = () => { const resetState = () => {
setConsoleHistory( consoleHistory + message ) setConsoleHistory( consoleHistory + message )
setComponentVisible( false ) setComponentVisible( false )
setImage('')
setImageInfo('Drop/Click\nfor upload album image...')
setMessage('') setMessage('')
} }

View File

@ -0,0 +1,138 @@
import React, { useState } from 'react'
import { connect } from 'react-redux'
import { createTrack } from '../../../../../../stores/track/duck/operations'
import { generateUrlCode } from '../../../../../generateUrlCode'
import { FormGenerator } from '../Abstract Utils/FormGenerator'
import { ResetComponent } from '../Abstract Utils/ResetComponent'
const TrackCreate = ({
user,
createTrack,
consoleHistory, setConsoleHistory,
componentVisible, setComponentVisible,
activateConsoleInput
}) => {
const [message, setMessage] = useState('')
const [image, setImage] = useState('')
const [imageInfo, setImageInfo] = useState('Drop/Click\nfor upload track image...')
const [audio, setAudio] = useState('')
const [audioInfo, setAudioInfo] = useState('Drop/Click\nfor upload track audio...')
const albumIdInput = React.createRef()
const titleInput = React.createRef()
const descriptionInput = React.createRef()
const textInput = React.createRef()
let refList = [
albumIdInput,
titleInput,
descriptionInput,
textInput
]
let inputList = [
{
type: 'info',
action: 'Create',
endpoint: 'Track'
},
{
type: 'text',
name: 'albumID',
ref: albumIdInput
},
{
type: 'text',
name: 'title',
ref: titleInput
},
{
type: 'text',
name: 'description',
ref: descriptionInput
},
{
type: 'text',
name: 'text',
ref: textInput
},
{
type: 'file',
name: 'image',
fileType: 'image',
dropInfo: imageInfo,
setDropInfo: setImageInfo,
file: image,
setFile: setImage
},
{
type: 'file',
name: 'audio',
fileType: 'audio',
dropInfo: audioInfo,
setDropInfo: setAudioInfo,
file: audio,
setFile: setAudio
}
]
const resetState = () => {
setConsoleHistory( consoleHistory + message )
setComponentVisible( false )
setImage('')
setImageInfo('Drop/Click\nfor upload track image...')
setAudio('')
setAudioInfo('Drop/Click\nfor upload track audio...')
setMessage('')
}
const createFetch = async ( refs ) => {
let track = {
user_id: user.id,
album_id: refs[0].current.value,
title: refs[1].current.value,
description: refs[2].current.value,
text: refs[3].current.value,
image: image,
audio: audio,
url_code: generateUrlCode( 'track' ),
}
await createTrack(
track,
user.token
).then( response => {
setMessage( response['info'] + '\n' )
})
}
return (
<div>
<FormGenerator
inputList={ inputList }
refList={ refList }
action={ createFetch }
/>
<ResetComponent
resetState={ resetState }
refList={ refList }
message={ message }
componentVisible={ componentVisible }
activateConsoleInput={ activateConsoleInput }
/>
</div>
)
}
const mapStateToProps = state => ({
user: state.user
})
const mapDispatchToProps = dispatch => ({
createTrack: (track, token) => createTrack(track, token)
})
export default connect(mapStateToProps, mapDispatchToProps)(TrackCreate)