Skip to content

Commit cd56cbc

Browse files
committed
refactor(aria/grid): use read/write appropariately in afterRenderEffect
1 parent fee5eb5 commit cd56cbc

2 files changed

Lines changed: 21 additions & 16 deletions

File tree

src/aria/grid/grid-cell-widget.ts

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -104,19 +104,23 @@ export class GridCellWidget {
104104
}
105105

106106
constructor() {
107-
afterRenderEffect(() => {
108-
if (this._pattern.isActivated()) {
109-
const activateEvent = this._pattern.lastActivateEvent();
110-
this.activated.emit(activateEvent);
111-
this._pattern.focus();
112-
}
107+
afterRenderEffect({
108+
read: () => {
109+
if (this._pattern.isActivated()) {
110+
const activateEvent = this._pattern.lastActivateEvent();
111+
this.activated.emit(activateEvent);
112+
this._pattern.focus();
113+
}
114+
},
113115
});
114116

115-
afterRenderEffect(() => {
116-
const deactivateEvent = this._pattern.lastDeactivateEvent();
117-
if (deactivateEvent) {
118-
this.deactivated.emit(deactivateEvent);
119-
}
117+
afterRenderEffect({
118+
read: () => {
119+
const deactivateEvent = this._pattern.lastDeactivateEvent();
120+
if (deactivateEvent) {
121+
this.deactivated.emit(deactivateEvent);
122+
}
123+
},
120124
});
121125
}
122126

src/aria/grid/grid.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,12 @@ export class Grid {
129129
});
130130

131131
constructor() {
132-
afterRenderEffect(() => this._pattern.setDefaultStateEffect());
133-
afterRenderEffect(() => this._pattern.resetStateEffect());
134-
afterRenderEffect(() => this._pattern.resetFocusEffect());
135-
afterRenderEffect(() => this._pattern.restoreFocusEffect());
136-
afterRenderEffect(() => this._pattern.focusEffect());
132+
// Use Write mode for all direct DOM focus management actions.
133+
afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});
134+
afterRenderEffect({write: () => this._pattern.resetStateEffect()});
135+
afterRenderEffect({write: () => this._pattern.resetFocusEffect()});
136+
afterRenderEffect({write: () => this._pattern.restoreFocusEffect()});
137+
afterRenderEffect({write: () => this._pattern.focusEffect()});
137138
}
138139

139140
/** Gets the cell pattern for a given element. */

0 commit comments

Comments
 (0)