pl-fe: a11y: some messy code to restore focus after closing menu modal
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
@ -101,12 +101,22 @@ const useModalsStore = create<State>()(mutative((set) => ({
|
||||
if (state.modals.length === 0) {
|
||||
return;
|
||||
}
|
||||
let closedModal: Record<string, any> | undefined;
|
||||
if (modalType === undefined) {
|
||||
closedModal = state.modals[state.modals.length - 1].modalProps;
|
||||
state.modals = state.modals.slice(0, -1);
|
||||
} else if (state.modals.some((modal) => modalType === modal.modalType)) {
|
||||
state.modals = state.modals.slice(0, state.modals.findLastIndex((modal) => modalType === modal.modalType));
|
||||
const lastIndex = state.modals.findLastIndex((modal) => modalType === modal.modalType);
|
||||
closedModal = state.modals[lastIndex].modalProps;
|
||||
state.modals = state.modals.slice(0, lastIndex);
|
||||
}
|
||||
if (closedModal?.element) {
|
||||
const element = closedModal.element;
|
||||
setTimeout(() => element.focus(), 0);
|
||||
}
|
||||
}),
|
||||
}), { enableAutoFreeze: true }));
|
||||
}), {
|
||||
enableAutoFreeze: false,
|
||||
}));
|
||||
|
||||
export { useModalsStore };
|
||||
|
||||
Reference in New Issue
Block a user