Skip to content

Commit bb13aac

Browse files
Mingzemergify[bot]
andauthored
feat(region): Hide annotations if visibility is false (#483)
* feat(region): Hide annotations if visibility is false * feat(annotator): Remove visibility state Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
1 parent 4d45470 commit bb13aac

File tree

10 files changed

+20
-31
lines changed

10 files changed

+20
-31
lines changed

src/common/BaseAnnotator.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,10 @@
1919
@import '~box-ui-elements/es/styles/common/links';
2020
@import '~box-ui-elements/es/styles/common/forms';
2121
@import '~box-ui-elements/es/styles/common/buttons';
22+
23+
&.is-hidden {
24+
.ba-Layer {
25+
display: none;
26+
}
27+
}
2228
}

src/common/BaseAnnotator.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,14 @@ export default class BaseAnnotator {
120120
};
121121

122122
setVisibility = (visibility: boolean): void => {
123-
this.store.dispatch(store.setVisibilityAction(visibility));
123+
if (!this.rootEl) {
124+
return;
125+
}
126+
if (visibility) {
127+
this.rootEl.classList.remove('is-hidden');
128+
} else {
129+
this.rootEl.classList.add('is-hidden');
130+
}
124131
};
125132

126133
toggleAnnotationMode(mode: store.Mode): void {

src/common/__tests__/BaseAnnotator-test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,10 @@ describe('BaseAnnotator', () => {
130130
});
131131

132132
describe('setVisibility()', () => {
133-
test.each([true, false])('should dispatch setVisibilityAction with visibility %p', visibility => {
133+
test.each([true, false])('should hide/show annotations if visibility is %p', visibility => {
134+
annotator.rootEl = defaults.container;
134135
annotator.setVisibility(visibility);
135-
expect(annotator.store.dispatch).toBeCalled();
136-
expect(store.setVisibilityAction).toBeCalledWith(visibility);
136+
expect(annotator.rootEl.classList.contains('is-hidden')).toEqual(!visibility);
137137
});
138138
});
139139

src/store/common/__mocks__/commonState.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@ import { Mode } from '../types';
22

33
export default {
44
mode: Mode.NONE,
5-
visibility: true,
65
};
Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import reducer from '../reducer';
22
import state from '../__mocks__/commonState';
33
import { Mode } from '../types';
4-
import { toggleAnnotationModeAction, setVisibilityAction } from '../actions';
4+
import { toggleAnnotationModeAction } from '../actions';
55

66
describe('store/common/reducer', () => {
77
describe('toggleAnnotationModeAction', () => {
@@ -15,14 +15,4 @@ describe('store/common/reducer', () => {
1515
expect(newState.mode).toEqual(expectedMode);
1616
});
1717
});
18-
19-
describe('setVisibilityAction', () => {
20-
test('should set visibility state', () => {
21-
let newState = reducer(state, setVisibilityAction(false));
22-
expect(newState.visibility).toEqual(false);
23-
24-
newState = reducer({ ...state, visibility: false }, setVisibilityAction(true));
25-
expect(newState.visibility).toEqual(true);
26-
});
27-
});
2818
});
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
import commonState from '../__mocks__/commonState';
2-
import { getAnnotationMode, getVisibility } from '../selectors';
2+
import { getAnnotationMode } from '../selectors';
33

44
describe('store/common/selectors', () => {
55
describe('getAnnotationMode', () => {
66
test('should return annotation mode', () => {
77
expect(getAnnotationMode({ common: commonState })).toBe('none');
88
});
99
});
10-
11-
describe('getVisibility', () => {
12-
test('should return annotation visibility', () => {
13-
expect(getVisibility({ common: commonState })).toBe(true);
14-
});
15-
});
1610
});

src/store/common/actions.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { createAction } from '@reduxjs/toolkit';
22
import { Mode } from './types';
33

4-
export const setVisibilityAction = createAction<boolean>('SET_VISIBILITY');
54
export const toggleAnnotationModeAction = createAction<Mode>('TOGGLE_ANNOTATION_MODE');

src/store/common/reducer.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import { createReducer, combineReducers } from '@reduxjs/toolkit';
22
import { CommonState, Mode } from './types';
3-
import { toggleAnnotationModeAction, setVisibilityAction } from './actions';
3+
import { toggleAnnotationModeAction } from './actions';
44

5-
const visibilityReducer = createReducer<CommonState['visibility']>(true, builder =>
6-
builder.addCase(setVisibilityAction, (state, { payload: visibility }) => visibility),
7-
);
85
const modeReducer = createReducer<CommonState['mode']>(Mode.NONE, builder =>
96
builder.addCase(toggleAnnotationModeAction, (state, { payload: mode }: { payload: Mode }) =>
107
state === mode ? Mode.NONE : mode,
@@ -13,5 +10,4 @@ const modeReducer = createReducer<CommonState['mode']>(Mode.NONE, builder =>
1310

1411
export default combineReducers({
1512
mode: modeReducer,
16-
visibility: visibilityReducer,
1713
});

src/store/common/selectors.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,3 @@ import { Mode } from './types';
44
type State = Pick<AppState, 'common'>;
55

66
export const getAnnotationMode = ({ common }: State): Mode => common.mode;
7-
export const getVisibility = ({ common }: State): boolean => common.visibility;

src/store/common/types.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ export enum Mode {
55

66
export interface CommonState {
77
mode: Mode;
8-
visibility: boolean;
98
}
109
export interface ModeState {
1110
current: Mode;

0 commit comments

Comments
 (0)