Skip to content
Snippets Groups Projects
Commit 73938c32 authored by Anthony's avatar Anthony
Browse files

Finish rewriting miradorAnnotationPlugin.js

parent 43fcac60
No related branches found
No related tags found
1 merge request!10Draft: MigratingAnnotationCreation to MUI5.
import * as actions from "mirador/dist/es/src/state/actions"; import * as actions from 'mirador/dist/es/src/state/actions';
import { getCompanionWindow } from 'mirador/dist/es/src/state/selectors/companionWindows'; import { getCompanionWindow } from 'mirador/dist/es/src/state/selectors/companionWindows';
import { getWindowCurrentTime, getWindowPausedStatus } from 'mirador/dist/es/src/state/selectors/window' import { getWindowCurrentTime, getWindowPausedStatus } from 'mirador/dist/es/src/state/selectors/window'
import { getVisibleCanvases } from 'mirador/dist/es/src/state/selectors/canvases'; import { getVisibleCanvases } from 'mirador/dist/es/src/state/selectors/canvases';
......
...@@ -12,29 +12,34 @@ import AnnotationExportDialog from '../AnnotationExportDialog'; ...@@ -12,29 +12,34 @@ import AnnotationExportDialog from '../AnnotationExportDialog';
import LocalStorageAdapter from '../LocalStorageAdapter'; import LocalStorageAdapter from '../LocalStorageAdapter';
/** */ /** */
function MiradorAnnotation(props) { function MiradorAnnotation({ targetProps, TargetComponent }) {
const [annotationExportDialogOpen, setAnnotationExportDialogOpen] = useState(false); const [annotationExportDialogOpen, setAnnotationExportDialogOpen] = useState(false);
const [singleCanvasDialogOpen, setSingleCanvasDialogOpen] = useState(false); const [singleCanvasDialogOpen, setSingleCanvasDialogOpen] = useState(false);
const [currentCompanionWindowId, setCurrentCompanionWindowId] = useState(null);
const dispatch = useDispatch(); const dispatch = useDispatch();
/** Open the companion window for annotation */
const addCompanionWindow = (content, additionalProps) => { const addCompanionWindow = (content, additionalProps) => {
dispatch(actions.addCompanionWindow(props.targetProps.windowId, { content, ...additionalProps })); console.log(targetProps.windowId);
setCurrentCompanionWindowId(targetProps.windowId);
dispatch(actions.addCompanionWindow(targetProps.windowId, { content, ...additionalProps }));
}; };
/** */
const switchToSingleCanvasView = () => { const switchToSingleCanvasView = () => {
dispatch(actions.setWindowViewType(props.targetProps.windowId, 'single')); dispatch(actions.setWindowViewType(targetProps.windowId, 'single'));
}; };
const windowViewType = useSelector((state) => getWindowViewType(state, { windowId: props.targetProps.windowId })); const windowViewType = useSelector((state) => getWindowViewType(state, { windowId: targetProps.windowId }));
const canvases = useSelector((state) => getVisibleCanvases(state, { windowId: props.targetProps.windowId })); const canvases = useSelector((state) => getVisibleCanvases(state, { windowId: targetProps.windowId }));
const config = useSelector((state) => state.config); const config = useSelector((state) => state.config);
const openCreateAnnotationCompanionWindow = useCallback((e) => { const openCreateAnnotationCompanionWindow = useCallback((e) => {
addCompanionWindow('annotationCreation', { addCompanionWindow('annotationCreation', {
position: 'right', position: 'right',
}); });
}, [props]); }, [targetProps.windowId]);
const toggleSingleCanvasDialogOpen = useCallback(() => { const toggleSingleCanvasDialogOpen = useCallback(() => {
setSingleCanvasDialogOpen(!singleCanvasDialogOpen); setSingleCanvasDialogOpen(!singleCanvasDialogOpen);
...@@ -50,7 +55,7 @@ function MiradorAnnotation(props) { ...@@ -50,7 +55,7 @@ function MiradorAnnotation(props) {
return ( return (
<div> <div>
<props.TargetComponent {...props.targetProps} /> <TargetComponent {...targetProps} />
<MiradorMenuButton <MiradorMenuButton
aria-label="Create new annotation" aria-label="Create new annotation"
onClick={windowViewType === 'single' ? openCreateAnnotationCompanionWindow : toggleSingleCanvasDialogOpen} onClick={windowViewType === 'single' ? openCreateAnnotationCompanionWindow : toggleSingleCanvasDialogOpen}
...@@ -104,7 +109,6 @@ MiradorAnnotation.propTypes = { ...@@ -104,7 +109,6 @@ MiradorAnnotation.propTypes = {
windowViewType: PropTypes.string.isRequired, windowViewType: PropTypes.string.isRequired,
}; };
export default { export default {
component: MiradorAnnotation, component: MiradorAnnotation,
mode: 'wrap', mode: 'wrap',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment