CCM NG: PageModelsEditor: Selecting PageModel to edit now works

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5466 8810af33-2d31-482b-a856-94f89814c4df

Former-commit-id: dcf681a834
pull/2/head
jensp 2018-06-02 06:57:13 +00:00
parent 900c602984
commit 07352ce4aa
1 changed files with 26 additions and 9 deletions

View File

@ -24,6 +24,7 @@ export {
interface PageModelEditorContext { interface PageModelEditorContext {
pageModelSelected: boolean;
selectedPageModel: PageModel; selectedPageModel: PageModel;
} }
@ -158,7 +159,10 @@ class PageModelListItem
<a data-pagemodel-id="{this.props.pageModel.pageModelId}" <a data-pagemodel-id="{this.props.pageModel.pageModelId}"
href="#" href="#"
onClick={ onClick={
(event) => this.props.selectPageModel(this.props.pageModel) (event) => {
console.log("A PageModel has been selected");
this.props.selectPageModel(this.props.pageModel)
}
}> }>
{this.props.pageModel.title} {this.props.pageModel.title}
</a> </a>
@ -184,14 +188,18 @@ class PageModelEditor
super(props); super(props);
this.state = { this.state = {
// selectedPageModel: newPageModel,
context: {
pageModelSelected: false,
selectedPageModel: newPageModel, selectedPageModel: newPageModel,
},
}; };
} }
public render() { public render() {
return <React.Fragment> return <React.Fragment>
<pageModelEditorContext.Provider value={this.state.selectedPageModel}> <pageModelEditorContext.Provider value={this.state.context}>
<div id="left"> <div id="left">
<div className="column-head"></div> <div className="column-head"></div>
<div className="column-content"> <div className="column-content">
@ -211,9 +219,13 @@ class PageModelEditor
dispatcherPrefix={this.getDispatcherPrefix()} dispatcherPrefix={this.getDispatcherPrefix()}
selectPageModel={(pageModel: PageModel) => { selectPageModel={(pageModel: PageModel) => {
this.setState((state: any) => { this.setState((state: any) => {
console.log("Updating state for selectedPageModel");
return { return {
...state, // ...state,
context: {
pageModelSelected: true,
selectedPageModel: pageModel, selectedPageModel: pageModel,
}
}; };
}); });
}} /> }} />
@ -233,11 +245,16 @@ class PageModelEditor
PageModelEditor Placeholder PageModelEditor Placeholder
<pageModelEditorContext.Consumer> <pageModelEditorContext.Consumer>
{(context) => {(context) =>
<React.Fragment>
<pre> <pre>
{context.pageModelSelected && pageModelSelected: {context.pageModelSelected ? "true" : "false" }
context.selectedPageModel.name
}
</pre> </pre>
{context.pageModelSelected && <pre>
{context.selectedPageModel.name}
</pre>
}
</React.Fragment>
} }
</pageModelEditorContext.Consumer> </pageModelEditorContext.Consumer>
<pre> <pre>