diff --git a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx index 6b806c060..bcf937640 100644 --- a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx +++ b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx @@ -22,10 +22,32 @@ export { * ); */ +interface PageModelEditorContext { + + selectedPageModel: PageModel; +} + +const newPageModel: PageModel = { + description: "New PageModel", + modelUuid: "", + name: "newPageModel", + pageModelId: 0, + title: "A new PageModel", + type: "", + uuid: "", + version: PageModelVersion.DRAFT, +}; + +const pageModelEditorContext = React.createContext({ + pageModelSelected: false, + selectedPageModel: newPageModel, +}); + interface PageModelsListProps { ccmApplication: string; dispatcherPrefix: string; + selectPageModel: (selectedPageModel: PageModel) => void; } interface PageModelsListState { @@ -104,7 +126,8 @@ class PageModelsList {this.state.pageModels.length > 0 && } @@ -114,6 +137,7 @@ class PageModelsList interface PageModelListItemProps { pageModel: PageModel; + selectPageModel: (selectedPageModel: PageModel) => void; } // interface PageModelListItemState { @@ -123,9 +147,19 @@ interface PageModelListItemProps { class PageModelListItem extends React.Component { + private onClick(event: any): void { + + console.log(`Setting selected PageModel. this is ${this}`); + this.props.selectPageModel(this.props.pageModel); + } + public render() { return
  • - + this.props.selectPageModel(this.props.pageModel) + }> {this.props.pageModel.title}
  • ; @@ -138,50 +172,80 @@ class PageModelListItem // // interface PageModelEditorState { // +// selectedPageModel: PageModel | null; +// // } class PageModelEditor - extends React.Component<{}, {}> { + extends React.Component<{}, any> { + + constructor(props: any) { + + super(props); + + this.state = { + selectedPageModel: newPageModel, + }; + } public render() { return -
    -
    -
    -
    -
    -
    -

    - Available PageModels + +
    +
    +
    +
    +
    +
    +

    + Available PageModels

    -
    - - - + { + this.setState((state: any) => { + return { + ...state, + selectedPageModel: pageModel, + }; + }); + }} /> + +
    -

    -