Upgrade Subject section. Add Update Form
parent
21c6bffdeb
commit
21f0dabc76
|
|
@ -0,0 +1,102 @@
|
||||||
|
import React, { useState } from 'react'
|
||||||
|
import { connect } from 'react-redux'
|
||||||
|
|
||||||
|
import { refreshThreadSubjects } from '../../stores/threads/duck/operations'
|
||||||
|
import { getSubjectComments, updateSubject } from '../../stores/subjects/duck/operations'
|
||||||
|
|
||||||
|
import '../../styles/indexForum.scss'
|
||||||
|
|
||||||
|
const ForumSubjectUpdate = ({
|
||||||
|
user,
|
||||||
|
threads, deactivate,
|
||||||
|
subjects, updateSubject, getSubjectComments,
|
||||||
|
subject, thisSubject }) => {
|
||||||
|
|
||||||
|
const [formDiv, setFormDiv] = useState(false)
|
||||||
|
|
||||||
|
const updateSubjectTitle = React.createRef()
|
||||||
|
const updateSubjectAuthor = React.createRef()
|
||||||
|
|
||||||
|
const updateOldSubject = (event) => {
|
||||||
|
event.preventDefault()
|
||||||
|
if ( updateSubjectTitle.current.value !== '') {
|
||||||
|
let putSubject = {
|
||||||
|
id: subject.id,
|
||||||
|
name: updateSubjectTitle.current.value,
|
||||||
|
user_id: user.id,
|
||||||
|
thread_id: threads.actualThreadID,
|
||||||
|
token: user.token
|
||||||
|
}
|
||||||
|
updateSubject(putSubject)
|
||||||
|
updateSubjectTitle.current.value = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const [subjectTitleText, setSubjectTitleText] = useState(0)
|
||||||
|
const [titleText, setTitleText] = useState(0)
|
||||||
|
|
||||||
|
if ( thisSubject.isActive === true && thisSubject.subject_id === subject.id) {
|
||||||
|
return (
|
||||||
|
<div className='forumFormSubject'>
|
||||||
|
<form onSubmit={ updateOldSubject }>
|
||||||
|
<input
|
||||||
|
name='updateSubjectTitleText'
|
||||||
|
placeholder={ subject.name }
|
||||||
|
ref={ updateSubjectTitle }
|
||||||
|
cols='150'
|
||||||
|
maxLength='30'
|
||||||
|
onChange={ e => setSubjectTitleText( e.target.value.length ) }>
|
||||||
|
</input>
|
||||||
|
{ (user.privilige >= 2) ? (
|
||||||
|
<div>
|
||||||
|
<select
|
||||||
|
name='updateSubjectAuthorText'
|
||||||
|
value={ user.allUsersList }
|
||||||
|
ref={ updateSubjectAuthor }>
|
||||||
|
{ user.allUsersList.map( userObject =>
|
||||||
|
<option value={userObject.id}>{userObject.login}, Privilige: { userObject.privilige >= 2 ? 'Moderator' : 'Normal User' }</option>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
<select
|
||||||
|
name='updateSubjectAuthorText'
|
||||||
|
value={ threads.threadsList }>
|
||||||
|
{ threads.threadsList.map( threadObject =>
|
||||||
|
<option value={threadObject.id}>{threadObject.name}, moderator: {threadObject.moderator}</option>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<div></div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
<p>{subjectTitleText}/30</p>
|
||||||
|
<button>
|
||||||
|
Update Subject
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
return (
|
||||||
|
<div className='forumHiddenDiv'>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const mapStateToProps = state => ({
|
||||||
|
user: state.user,
|
||||||
|
threads: state.threads,
|
||||||
|
subjects: state.subjects,
|
||||||
|
comments: state.comments
|
||||||
|
})
|
||||||
|
|
||||||
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
refreshThreadSubjects: threads => dispatch( refreshThreadSubjects(threads) ),
|
||||||
|
getSubjectComments: subjects => dispatch( getSubjectComments(subjects) ),
|
||||||
|
updateSubject: subjects => dispatch( updateSubject(subjects) )
|
||||||
|
})
|
||||||
|
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(ForumSubjectUpdate)
|
||||||
Loading…
Reference in New Issue