Skip to content
Snippets Groups Projects
Commit 0124f049 authored by Chris Beer's avatar Chris Beer
Browse files

eslint expanded its default linelength

parent 4f1b7046
Branches
Tags
3 merge requests!4Integrate upstream tests into gitlab ci,!3Update mirador code from official project,!2test gitlab ci (dont merge)
Showing
with 61 additions and 120 deletions
...@@ -25,12 +25,8 @@ describe('Mirador Invalid API Response Handler Test', () => { ...@@ -25,12 +25,8 @@ describe('Mirador Invalid API Response Handler Test', () => {
it('renders an error message when a manifest cannot be loaded (and allows it to be dismissed)', async () => { it('renders an error message when a manifest cannot be loaded (and allows it to be dismissed)', async () => {
await fetchManifest('http://127.0.0.1:4488/__tests__/fixtures/version-2/broken'); await fetchManifest('http://127.0.0.1:4488/__tests__/fixtures/version-2/broken');
await expect(page).toMatchElement( await expect(page).toMatchElement('p', { text: 'The resource cannot be added:', timeout: 2000 });
'p', { text: 'The resource cannot be added:', timeout: 2000 }, await expect(page).toMatchElement('p', { text: 'http://127.0.0.1:4488/__tests__/fixtures/version-2/broken' });
);
await expect(page).toMatchElement(
'p', { text: 'http://127.0.0.1:4488/__tests__/fixtures/version-2/broken' },
);
await expect(page).toClick('button', { text: 'Dismiss' }); await expect(page).toClick('button', { text: 'Dismiss' });
......
...@@ -270,12 +270,8 @@ describe('OpenSeadragonViewer', () => { ...@@ -270,12 +270,8 @@ describe('OpenSeadragonViewer', () => {
it('calls the OSD viewport panTo and zoomTo with the component state', () => { it('calls the OSD viewport panTo and zoomTo with the component state', () => {
wrapper.instance().componentDidMount(); wrapper.instance().componentDidMount();
expect(panTo).toHaveBeenCalledWith( expect(panTo).toHaveBeenCalledWith({ x: 1, y: 0, zoom: 0.5 }, true);
{ x: 1, y: 0, zoom: 0.5 }, true, expect(zoomTo).toHaveBeenCalledWith(0.5, { x: 1, y: 0, zoom: 0.5 }, true);
);
expect(zoomTo).toHaveBeenCalledWith(
0.5, { x: 1, y: 0, zoom: 0.5 }, true,
);
}); });
it('adds animation-start/finish flag for rerendering performance', () => { it('adds animation-start/finish flag for rerendering performance', () => {
...@@ -330,12 +326,8 @@ describe('OpenSeadragonViewer', () => { ...@@ -330,12 +326,8 @@ describe('OpenSeadragonViewer', () => {
}, },
}); });
expect(panTo).toHaveBeenCalledWith( expect(panTo).toHaveBeenCalledWith(expect.objectContaining({ x: 1, y: 0, zoom: 0.5 }), false);
expect.objectContaining({ x: 1, y: 0, zoom: 0.5 }), false, expect(zoomTo).toHaveBeenCalledWith(0.5, expect.objectContaining({ x: 1, y: 0, zoom: 0.5 }), false);
);
expect(zoomTo).toHaveBeenCalledWith(
0.5, expect.objectContaining({ x: 1, y: 0, zoom: 0.5 }), false,
);
expect(setRotation).toHaveBeenCalledWith(90); expect(setRotation).toHaveBeenCalledWith(90);
expect(setFlip).toHaveBeenCalledWith(true); expect(setFlip).toHaveBeenCalledWith(true);
expect(forceRedraw).not.toHaveBeenCalled(); expect(forceRedraw).not.toHaveBeenCalled();
......
...@@ -36,9 +36,7 @@ describe('SearchPanelControls', () => { ...@@ -36,9 +36,7 @@ describe('SearchPanelControls', () => {
const value = 'somestring'; const value = 'somestring';
wrapper.find(Autocomplete).prop('onChange')({}, { match: value }, {}); wrapper.find(Autocomplete).prop('onChange')({}, { match: value }, {});
expect(wrapper.state().search).toEqual(value); expect(wrapper.state().search).toEqual(value);
expect(fetchSearch).toHaveBeenCalledWith( expect(fetchSearch).toHaveBeenCalledWith('window', 'cw', 'http://example.com/search?q=somestring', 'somestring');
'window', 'cw', 'http://example.com/search?q=somestring', 'somestring',
);
}); });
it('renders a text input through the renderInput prop', () => { it('renders a text input through the renderInput prop', () => {
const wrapper = createWrapper(); const wrapper = createWrapper();
......
...@@ -47,18 +47,14 @@ describe('Window', () => { ...@@ -47,18 +47,14 @@ describe('Window', () => {
describe('when workspaceType is mosaic', () => { describe('when workspaceType is mosaic', () => {
xit('calls the context mosaicWindowActions connectDragSource method to make WindowTopBar draggable', () => { xit('calls the context mosaicWindowActions connectDragSource method to make WindowTopBar draggable', () => {
const connectDragSource = jest.fn(component => component); const connectDragSource = jest.fn(component => component);
wrapper = createWrapper( wrapper = createWrapper({ windowDraggable: true, workspaceType: 'mosaic' }, { mosaicWindowActions: { connectDragSource } });
{ windowDraggable: true, workspaceType: 'mosaic' }, { mosaicWindowActions: { connectDragSource } },
);
expect(wrapper.find(WindowTopBar)).toHaveLength(1); expect(wrapper.find(WindowTopBar)).toHaveLength(1);
expect(connectDragSource).toHaveBeenCalled(); expect(connectDragSource).toHaveBeenCalled();
}); });
it('does not call the context mosaicWindowActions connectDragSource when the windowDraggable is set to false', () => { it('does not call the context mosaicWindowActions connectDragSource when the windowDraggable is set to false', () => {
const connectDragSource = jest.fn(component => component); const connectDragSource = jest.fn(component => component);
wrapper = createWrapper( wrapper = createWrapper({ windowDraggable: false, workspaceType: 'mosaic' }, { mosaicWindowActions: { connectDragSource } });
{ windowDraggable: false, workspaceType: 'mosaic' }, { mosaicWindowActions: { connectDragSource } },
);
expect(wrapper.find(WindowTopBar)).toHaveLength(1); expect(wrapper.find(WindowTopBar)).toHaveLength(1);
expect(connectDragSource).not.toHaveBeenCalled(); expect(connectDragSource).not.toHaveBeenCalled();
}); });
......
...@@ -218,8 +218,10 @@ describe('window-level sagas', () => { ...@@ -218,8 +218,10 @@ describe('window-level sagas', () => {
return expectSaga(setCurrentAnnotationsOnCurrentCanvas, action) return expectSaga(setCurrentAnnotationsOnCurrentCanvas, action)
.provide([ .provide([
[select(getSearchForWindow, [select(
{ windowId: 'abc123' }), {}], getSearchForWindow,
{ windowId: 'abc123' },
), {}],
]) ])
.run() .run()
.then(({ allEffects }) => allEffects.length === 0); .then(({ allEffects }) => allEffects.length === 0);
...@@ -234,8 +236,10 @@ describe('window-level sagas', () => { ...@@ -234,8 +236,10 @@ describe('window-level sagas', () => {
return expectSaga(setCurrentAnnotationsOnCurrentCanvas, action) return expectSaga(setCurrentAnnotationsOnCurrentCanvas, action)
.provide([ .provide([
[select(getSearchForWindow, [select(
{ windowId: 'abc123' }), { cwid: { } }], getSearchForWindow,
{ windowId: 'abc123' },
), { cwid: { } }],
[select(getAnnotationsBySearch, { canvasIds: ['a', 'b'], companionWindowIds: ['cwid'], windowId: 'abc123' }), [select(getAnnotationsBySearch, { canvasIds: ['a', 'b'], companionWindowIds: ['cwid'], windowId: 'abc123' }),
{ }], { }],
]) ])
...@@ -256,8 +260,10 @@ describe('window-level sagas', () => { ...@@ -256,8 +260,10 @@ describe('window-level sagas', () => {
return expectSaga(setCurrentAnnotationsOnCurrentCanvas, action) return expectSaga(setCurrentAnnotationsOnCurrentCanvas, action)
.provide([ .provide([
[select(getSearchForWindow, [select(
{ windowId: 'abc123' }), { cwid: { } }], getSearchForWindow,
{ windowId: 'abc123' },
), { cwid: { } }],
[select(getAnnotationsBySearch, { canvasIds: ['a', 'b'], companionWindowIds: ['cwid'], windowId: 'abc123' }), [select(getAnnotationsBySearch, { canvasIds: ['a', 'b'], companionWindowIds: ['cwid'], windowId: 'abc123' }),
{ cwid: ['annoId'] }], { cwid: ['annoId'] }],
]) ])
......
...@@ -355,9 +355,7 @@ describe('getVisibleCanvasNonTiledResources', () => { ...@@ -355,9 +355,7 @@ describe('getVisibleCanvasNonTiledResources', () => {
}, },
}, },
}; };
expect(getVisibleCanvasNonTiledResources( expect(getVisibleCanvasNonTiledResources(state, { windowId: 'a' })[0].id).toBe('http://iiif.io/api/presentation/2.0/example/fixtures/resources/page1-full.png');
state, { windowId: 'a' },
)[0].id).toBe('http://iiif.io/api/presentation/2.0/example/fixtures/resources/page1-full.png');
}); });
it('works for v3 Presentation API', () => { it('works for v3 Presentation API', () => {
const state = { const state = {
...@@ -376,9 +374,7 @@ describe('getVisibleCanvasNonTiledResources', () => { ...@@ -376,9 +374,7 @@ describe('getVisibleCanvasNonTiledResources', () => {
}, },
}, },
}; };
expect(getVisibleCanvasNonTiledResources( expect(getVisibleCanvasNonTiledResources(state, { windowId: 'a' })[0].id).toBe('http://iiif.io/api/presentation/2.1/example/fixtures/resources/page1-full.png');
state, { windowId: 'a' },
)[0].id).toBe('http://iiif.io/api/presentation/2.1/example/fixtures/resources/page1-full.png');
}); });
describe('getVisibleCanvasVideoResources', () => { describe('getVisibleCanvasVideoResources', () => {
...@@ -399,9 +395,7 @@ describe('getVisibleCanvasNonTiledResources', () => { ...@@ -399,9 +395,7 @@ describe('getVisibleCanvasNonTiledResources', () => {
}, },
}, },
}; };
expect(getVisibleCanvasVideoResources( expect(getVisibleCanvasVideoResources(state, { windowId: 'a' })[0].id).toBe('https://fixtures.iiif.io/video/indiana/30-minute-clock/medium/30-minute-clock.mp4');
state, { windowId: 'a' },
)[0].id).toBe('https://fixtures.iiif.io/video/indiana/30-minute-clock/medium/30-minute-clock.mp4');
}); });
}); });
...@@ -423,9 +417,7 @@ describe('getVisibleCanvasNonTiledResources', () => { ...@@ -423,9 +417,7 @@ describe('getVisibleCanvasNonTiledResources', () => {
}, },
}, },
}; };
expect(getVisibleCanvasCaptions( expect(getVisibleCanvasCaptions(state, { windowId: 'a' })[0].id).toBe('https://example.com/file.vtt');
state, { windowId: 'a' },
)[0].id).toBe('https://example.com/file.vtt');
}); });
}); });
...@@ -447,9 +439,7 @@ describe('getVisibleCanvasNonTiledResources', () => { ...@@ -447,9 +439,7 @@ describe('getVisibleCanvasNonTiledResources', () => {
}, },
}, },
}; };
expect(getVisibleCanvasAudioResources( expect(getVisibleCanvasAudioResources(state, { windowId: 'a' })[0].id).toBe('https://fixtures.iiif.io/audio/indiana/mahler-symphony-3/CD1/medium/128Kbps.mp4');
state, { windowId: 'a' },
)[0].id).toBe('https://fixtures.iiif.io/audio/indiana/mahler-symphony-3/CD1/medium/128Kbps.mp4');
}); });
}); });
}); });
...@@ -309,9 +309,7 @@ describe('getResourceAnnotationForSearchHit', () => { ...@@ -309,9 +309,7 @@ describe('getResourceAnnotationForSearchHit', () => {
}; };
expect( expect(
getResourceAnnotationForSearchHit( getResourceAnnotationForSearchHit(state, { annotationUri: annoId, companionWindowId, windowId: 'a' }).resource['@id'],
state, { annotationUri: annoId, companionWindowId, windowId: 'a' },
).resource['@id'],
).toEqual(annoId); ).toEqual(annoId);
}); });
}); });
...@@ -344,9 +342,7 @@ describe('getResourceAnnotationLabel', () => { ...@@ -344,9 +342,7 @@ describe('getResourceAnnotationLabel', () => {
}; };
expect( expect(
getResourceAnnotationLabel( getResourceAnnotationLabel(state, { annotationUri: annoId, companionWindowId, windowId: 'a' }),
state, { annotationUri: annoId, companionWindowId, windowId: 'a' },
),
).toEqual(['The Annotation Label']); ).toEqual(['The Annotation Label']);
}); });
...@@ -369,9 +365,7 @@ describe('getResourceAnnotationLabel', () => { ...@@ -369,9 +365,7 @@ describe('getResourceAnnotationLabel', () => {
}; };
expect( expect(
getResourceAnnotationLabel( getResourceAnnotationLabel(state, { annotationUri: annoId, companionWindowId, windowId: 'a' }),
state, { annotationUri: annoId, companionWindowId, windowId: 'a' },
),
).toEqual([]); ).toEqual([]);
}); });
}); });
...@@ -85,12 +85,8 @@ export class AnnotationsOverlay extends Component { ...@@ -85,12 +85,8 @@ export class AnnotationsOverlay extends Component {
this.initializeViewer(); this.initializeViewer();
const annotationsUpdated = !AnnotationsOverlay.annotationsMatch( const annotationsUpdated = !AnnotationsOverlay.annotationsMatch(annotations, prevProps.annotations);
annotations, prevProps.annotations, const searchAnnotationsUpdated = !AnnotationsOverlay.annotationsMatch(searchAnnotations, prevProps.searchAnnotations);
);
const searchAnnotationsUpdated = !AnnotationsOverlay.annotationsMatch(
searchAnnotations, prevProps.searchAnnotations,
);
const hoveredAnnotationsUpdated = ( const hoveredAnnotationsUpdated = (
xor(hoveredAnnotationIds, prevProps.hoveredAnnotationIds).length > 0 xor(hoveredAnnotationIds, prevProps.hoveredAnnotationIds).length > 0
......
...@@ -83,8 +83,11 @@ export class Window extends Component { ...@@ -83,8 +83,11 @@ export class Window extends Component {
elevation={1} elevation={1}
id={windowId} id={windowId}
className={ className={
cn(classes.window, ns('window'), cn(
maximized ? classes.maximized : null) classes.window,
ns('window'),
maximized ? classes.maximized : null,
)
} }
aria-label={t('window', { label })} aria-label={t('window', { label })}
> >
......
...@@ -28,9 +28,7 @@ function getIdAndContentOfResources(resources) { ...@@ -28,9 +28,7 @@ function getIdAndContentOfResources(resources) {
/** For connect */ /** For connect */
const mapStateToProps = (state, { canvasId, windowId }) => ({ const mapStateToProps = (state, { canvasId, windowId }) => ({
annotations: getIdAndContentOfResources( annotations: getIdAndContentOfResources(
getAnnotationResourcesByMotivationForCanvas( getAnnotationResourcesByMotivationForCanvas(state, { canvasId, windowId }),
state, { canvasId, windowId },
),
), ),
htmlSanitizationRuleSet: getConfig(state).annotations.htmlSanitizationRuleSet, htmlSanitizationRuleSet: getConfig(state).annotations.htmlSanitizationRuleSet,
label: getCanvasLabel(state, { label: getCanvasLabel(state, {
......
...@@ -23,12 +23,8 @@ const mapStateToProps = (state, { ...@@ -23,12 +23,8 @@ const mapStateToProps = (state, {
annotationId, hit = { annotations: [] }, companionWindowId, windowId, annotationId, hit = { annotations: [] }, companionWindowId, windowId,
}) => { }) => {
const realAnnoId = annotationId || hit.annotations[0]; const realAnnoId = annotationId || hit.annotations[0];
const hitAnnotation = getResourceAnnotationForSearchHit( const hitAnnotation = getResourceAnnotationForSearchHit(state, { annotationUri: realAnnoId, companionWindowId, windowId });
state, { annotationUri: realAnnoId, companionWindowId, windowId }, const annotationLabel = getResourceAnnotationLabel(state, { annotationUri: realAnnoId, companionWindowId, windowId });
);
const annotationLabel = getResourceAnnotationLabel(
state, { annotationUri: realAnnoId, companionWindowId, windowId },
);
const selectedCanvasIds = getVisibleCanvasIds(state, { windowId }); const selectedCanvasIds = getVisibleCanvasIds(state, { windowId });
const selectedContentSearchAnnotationsIds = getSelectedContentSearchAnnotationIds(state, { const selectedContentSearchAnnotationsIds = getSelectedContentSearchAnnotationIds(state, {
......
...@@ -13,9 +13,7 @@ import { WindowAuthenticationBar } from '../components/WindowAuthenticationBar'; ...@@ -13,9 +13,7 @@ import { WindowAuthenticationBar } from '../components/WindowAuthenticationBar';
const styles = theme => ({ const styles = theme => ({
buttonInvert: { buttonInvert: {
'&:hover': { '&:hover': {
backgroundColor: alpha( backgroundColor: alpha(theme.palette.secondary.contrastText, 1 - theme.palette.action.hoverOpacity),
theme.palette.secondary.contrastText, 1 - theme.palette.action.hoverOpacity,
),
}, },
backgroundColor: theme.palette.secondary.contrastText, backgroundColor: theme.palette.secondary.contrastText,
marginLeft: theme.spacing(5), marginLeft: theme.spacing(5),
......
...@@ -90,8 +90,7 @@ class ThumbnailFactory { ...@@ -90,8 +90,7 @@ class ThumbnailFactory {
const imageFitness = (test) => test.width * test.height - targetArea; const imageFitness = (test) => test.width * test.height - targetArea;
/** Look for the size that's just bigger than we prefer... */ /** Look for the size that's just bigger than we prefer... */
closestSize = sizes.reduce( closestSize = sizes.reduce((best, test) => {
(best, test) => {
const score = imageFitness(test); const score = imageFitness(test);
if (score < 0) return best; if (score < 0) return best;
...@@ -99,18 +98,15 @@ class ThumbnailFactory { ...@@ -99,18 +98,15 @@ class ThumbnailFactory {
return Math.abs(score) < Math.abs(imageFitness(best)) return Math.abs(score) < Math.abs(imageFitness(best))
? test ? test
: best; : best;
}, closestSize, }, closestSize);
);
/** .... but not "too" big; we'd rather scale up an image than download too much */ /** .... but not "too" big; we'd rather scale up an image than download too much */
if (closestSize.width * closestSize.height > targetArea * 6) { if (closestSize.width * closestSize.height > targetArea * 6) {
closestSize = sizes.reduce( closestSize = sizes.reduce((best, test) => (
(best, test) => (
Math.abs(imageFitness(test)) < Math.abs(imageFitness(best)) Math.abs(imageFitness(test)) < Math.abs(imageFitness(best))
? test ? test
: best : best
), closestSize, ), closestSize);
);
} }
if (closestSize.default) return undefined; if (closestSize.default) return undefined;
......
...@@ -25,16 +25,12 @@ export default class TruncatedHit { ...@@ -25,16 +25,12 @@ export default class TruncatedHit {
/** */ /** */
get before() { get before() {
if (!this.hit.before) return ''; if (!this.hit.before) return '';
return this.hit.before.substring( return this.hit.before.substring(this.hit.before.length - this.charsOnSide, this.hit.before.length);
this.hit.before.length - this.charsOnSide, this.hit.before.length,
);
} }
/** */ /** */
get after() { get after() {
if (!this.hit.after) return ''; if (!this.hit.after) return '';
return this.hit.after.substring( return this.hit.after.substring(0, Math.min(this.hit.after.length, this.charsOnSide));
0, Math.min(this.hit.after.length, this.charsOnSide),
);
} }
} }
...@@ -27,9 +27,7 @@ function configureStore(pluginReducers, pluginSagas = []) { ...@@ -27,9 +27,7 @@ function configureStore(pluginReducers, pluginSagas = []) {
const store = createStore( const store = createStore(
rootReducer, rootReducer,
composeWithDevTools( composeWithDevTools(
applyMiddleware( applyMiddleware(thunkMiddleware, sagaMiddleware),
thunkMiddleware, sagaMiddleware,
),
), ),
); );
......
...@@ -63,9 +63,7 @@ function* fetchIiifResourceWithAuth(url, iiifResource, options, { degraded, fail ...@@ -63,9 +63,7 @@ function* fetchIiifResourceWithAuth(url, iiifResource, options, { degraded, fail
} }
} }
const { error, json, response } = yield call( const { error, json, response } = yield call(fetchIiifResource, url, urlOptions, { failure: arg => arg, success: arg => arg });
fetchIiifResource, url, urlOptions, { failure: arg => arg, success: arg => arg },
);
// Hard error either requesting the resource or deserializing the JSON. // Hard error either requesting the resource or deserializing the JSON.
if (error) { if (error) {
......
...@@ -94,9 +94,7 @@ export function* setWindowStartingCanvas(action) { ...@@ -94,9 +94,7 @@ export function* setWindowStartingCanvas(action) {
const windowId = action.id || action.window.id; const windowId = action.id || action.window.id;
if (canvasId) { if (canvasId) {
const thunk = yield call( const thunk = yield call(setCanvas, windowId, canvasId, null, { preserveViewport: !!action.payload });
setCanvas, windowId, canvasId, null, { preserveViewport: !!action.payload },
);
yield put(thunk); yield put(thunk);
} else { } else {
const manifestoInstance = yield select(getManifestoInstance, { manifestId }); const manifestoInstance = yield select(getManifestoInstance, { manifestId });
...@@ -156,9 +154,7 @@ export function* setCurrentAnnotationsOnCurrentCanvas({ ...@@ -156,9 +154,7 @@ export function* setCurrentAnnotationsOnCurrentCanvas({
const companionWindowIds = Object.keys(searches || {}); const companionWindowIds = Object.keys(searches || {});
if (companionWindowIds.length === 0) return; if (companionWindowIds.length === 0) return;
const annotationBySearch = yield select( const annotationBySearch = yield select(getAnnotationsBySearch, { canvasIds: visibleCanvases, companionWindowIds, windowId });
getAnnotationsBySearch, { canvasIds: visibleCanvases, companionWindowIds, windowId },
);
yield all( yield all(
Object.keys(annotationBySearch) Object.keys(annotationBySearch)
...@@ -213,9 +209,7 @@ export function* setCanvasOfFirstSearchResult({ companionWindowId, windowId }) { ...@@ -213,9 +209,7 @@ export function* setCanvasOfFirstSearchResult({ companionWindowId, windowId }) {
if (selectedIds.length !== 0) return; if (selectedIds.length !== 0) return;
const annotations = yield select( const annotations = yield select(getSortedSearchAnnotationsForCompanionWindow, { companionWindowId, windowId });
getSortedSearchAnnotationsForCompanionWindow, { companionWindowId, windowId },
);
if (!annotations || annotations.length === 0) return; if (!annotations || annotations.length === 0) return;
yield put(selectAnnotation(windowId, annotations[0].id)); yield put(selectAnnotation(windowId, annotations[0].id));
......
...@@ -108,9 +108,7 @@ export const getSortedSearchHitsForCompanionWindow = createSelector( ...@@ -108,9 +108,7 @@ export const getSortedSearchHitsForCompanionWindow = createSelector(
[ [
getSearchHitsForCompanionWindow, getSearchHitsForCompanionWindow,
getCanvases, getCanvases,
(state, { companionWindowId, windowId }) => annotationUri => getResourceAnnotationForSearchHit( (state, { companionWindowId, windowId }) => annotationUri => getResourceAnnotationForSearchHit(state, { annotationUri, companionWindowId, windowId }),
state, { annotationUri, companionWindowId, windowId },
),
], ],
(searchHits, canvases, annotationForSearchHit) => { (searchHits, canvases, annotationForSearchHit) => {
if (!canvases || canvases.length === 0) return []; if (!canvases || canvases.length === 0) return [];
...@@ -229,9 +227,7 @@ const getAnnotationById = createSelector( ...@@ -229,9 +227,7 @@ const getAnnotationById = createSelector(
export const getCanvasForAnnotation = createSelector( export const getCanvasForAnnotation = createSelector(
[ [
getAnnotationById, getAnnotationById,
(state, { windowId }) => canvasId => getCanvas( (state, { windowId }) => canvasId => getCanvas(state, { canvasId, windowId }),
state, { canvasId, windowId },
),
], ],
(annotation, getCanvasById) => { (annotation, getCanvasById) => {
const canvasId = annotation && annotation.targetId; const canvasId = annotation && annotation.targetId;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment