Skip to content
Snippets Groups Projects
Commit 0a33481c authored by Antoine Roy's avatar Antoine Roy
Browse files

Rend impossible d'avoir plusieurs pannel de création d'annotation ouvert

parent a750c04c
No related branches found
No related tags found
1 merge request!20Autorisation un unique pannel annotation
Pipeline #1794 failed
...@@ -18,21 +18,37 @@ class MiradorAnnotation extends Component { ...@@ -18,21 +18,37 @@ class MiradorAnnotation extends Component {
this.state = { this.state = {
annotationExportDialogOpen: false, annotationExportDialogOpen: false,
singleCanvasDialogOpen: false, singleCanvasDialogOpen: false,
creationAnnotationIsOpen: false,
id: "",
payload:{}
}; };
this.openCreateAnnotationCompanionWindow = this.openCreateAnnotationCompanionWindow.bind(this); this.handleAnnotationCompanionWindow = this.handleAnnotationCompanionWindow.bind(this);
this.toggleCanvasExportDialog = this.toggleCanvasExportDialog.bind(this); this.toggleCanvasExportDialog = this.toggleCanvasExportDialog.bind(this);
this.toggleSingleCanvasDialogOpen = this.toggleSingleCanvasDialogOpen.bind(this); this.toggleSingleCanvasDialogOpen = this.toggleSingleCanvasDialogOpen.bind(this);
} }
/** */ /** */
openCreateAnnotationCompanionWindow(e) { handleAnnotationCompanionWindow(e) {
const { const {
addCompanionWindow, addCompanionWindow,
closeCompanionWindow,
targetProps
} = this.props; } = this.props;
if(!this.state.creationAnnotationIsOpen){
addCompanionWindow('annotationCreation', {
const myAnnotationPannel = addCompanionWindow('annotationCreation', {
position: 'right', position: 'right',
}); });
this.setState({creationAnnotationIsOpen: true});
this.setState({id: myAnnotationPannel.id})
this.setState({payload: myAnnotationPannel.payload})
}else{
closeCompanionWindow(this.state.id)
this.setState({creationAnnotationIsOpen: false})
}
} }
/** */ /** */
...@@ -73,7 +89,7 @@ class MiradorAnnotation extends Component { ...@@ -73,7 +89,7 @@ class MiradorAnnotation extends Component {
/> />
<MiradorMenuButton <MiradorMenuButton
aria-label="Create new annotation" aria-label="Create new annotation"
onClick={windowViewType === 'single' ? this.openCreateAnnotationCompanionWindow : this.toggleSingleCanvasDialogOpen} onClick={windowViewType === 'single' ? this.handleAnnotationCompanionWindow : this.toggleSingleCanvasDialogOpen}
size="small" size="small"
> >
<AddBoxIcon /> <AddBoxIcon />
...@@ -125,6 +141,7 @@ MiradorAnnotation.propTypes = { ...@@ -125,6 +141,7 @@ MiradorAnnotation.propTypes = {
]).isRequired, ]).isRequired,
targetProps: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types targetProps: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
windowViewType: PropTypes.string.isRequired, windowViewType: PropTypes.string.isRequired,
closeCompanionWindow: PropTypes.func.isRequired,
}; };
/** */ /** */
...@@ -135,6 +152,9 @@ const mapDispatchToProps = (dispatch, props) => ({ ...@@ -135,6 +152,9 @@ const mapDispatchToProps = (dispatch, props) => ({
switchToSingleCanvasView: () => dispatch( switchToSingleCanvasView: () => dispatch(
actions.setWindowViewType(props.targetProps.windowId, 'single'), actions.setWindowViewType(props.targetProps.windowId, 'single'),
), ),
closeCompanionWindow: (id) => dispatch(
actions.removeCompanionWindow(props.targetProps.windowId, id),
)
}); });
/** */ /** */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment