diff options
Diffstat (limited to 'animism-align/frontend/app/views/venue/containers')
3 files changed, 34 insertions, 13 deletions
diff --git a/animism-align/frontend/app/views/venue/containers/venue.edit.js b/animism-align/frontend/app/views/venue/containers/venue.edit.js index 4d55c6e..c5ab075 100644 --- a/animism-align/frontend/app/views/venue/containers/venue.edit.js +++ b/animism-align/frontend/app/views/venue/containers/venue.edit.js @@ -20,7 +20,7 @@ class VenueEdit extends Component { .then(response => { // response console.log(response) - history.push('/venue/') + history.push(`/project/${response.res.project_id}/venues/`) }) } diff --git a/animism-align/frontend/app/views/venue/containers/venue.index.js b/animism-align/frontend/app/views/venue/containers/venue.index.js index 9a44fa7..9ab9ba1 100644 --- a/animism-align/frontend/app/views/venue/containers/venue.index.js +++ b/animism-align/frontend/app/views/venue/containers/venue.index.js @@ -20,7 +20,8 @@ class VenueIndex extends Component { render() { const { loading, lookup, order } = this.props.venue.index - if (loading) { + const project_id = parseInt(this.props.match.params.id) + if (loading || this.props.project.loading) { return ( <section> <Loader /> @@ -42,19 +43,23 @@ class VenueIndex extends Component { </section> ) } + const project = this.props.project.lookup[project_id] return ( <section> <div className="row venue-index"> <VenueMenu /> <div className="venue-list"> - <h1>Venues</h1> + <h1>{project.title}</h1> + <h2>Venues</h2> {order.map(id => ( - <div key={id}> - <Link to={"/venue/" + id + "/edit/"}> - {lookup[id].title} - </Link> - {lookup[id].date} - </div> + lookup[id].project_id === project_id && ( + <div key={id}> + <Link to={"/venue/" + id + "/edit/"}> + {lookup[id].title} + </Link> + {lookup[id].date} + </div> + ) ))} </div> </div> @@ -65,6 +70,7 @@ class VenueIndex extends Component { } const mapStateToProps = state => ({ + project: state.project.index, venue: state.venue, }) diff --git a/animism-align/frontend/app/views/venue/containers/venue.new.js b/animism-align/frontend/app/views/venue/containers/venue.new.js index f39dc19..fdab291 100644 --- a/animism-align/frontend/app/views/venue/containers/venue.new.js +++ b/animism-align/frontend/app/views/venue/containers/venue.new.js @@ -13,9 +13,23 @@ class VenueNew extends Component { loading: true, initialData: {}, } - componentDidMount() { - this.setState({ loading: false }) + this.ready() + } + componentDidUpdate(prevProps) { + if (this.props.project.lookup !== prevProps.project.lookup) { + this.ready() + } + } + ready() { + if (!this.props.project.lookup) return + const { project_id } = this.props.match.params + const project = parseInt(this.props.project.lookup[project_id]) + this.setState({ + loading: false, + initialData: { project_id }, + project, + }) } handleSubmit(data) { @@ -24,7 +38,7 @@ class VenueNew extends Component { .then(res => { console.log(res) if (res.res && res.res.id) { - history.push('/venue/') + history.push(`/project/${res.res.project_id}/venues/`) } }) .catch(err => { @@ -44,6 +58,7 @@ class VenueNew extends Component { <VenueForm isNew data={this.state.initialData} + project={this.state.project} onSubmit={this.handleSubmit.bind(this)} /> </div> @@ -52,7 +67,7 @@ class VenueNew extends Component { } const mapStateToProps = state => ({ - venue: state.venue, + project: state.project.index, }) export default connect(mapStateToProps)(VenueNew) |
