diff --git a/src/components/TrainsView/TrainModal.vue b/src/components/TrainsView/TrainModal.vue index 4f1b186..b971a2c 100644 --- a/src/components/TrainsView/TrainModal.vue +++ b/src/components/TrainsView/TrainModal.vue @@ -29,8 +29,15 @@ export default defineComponent({ chosenTrain(train: Train | undefined) { this.$nextTick(() => { if (train) { + document.body.classList.add('no-scroll'); const contentEl = this.$refs['content'] as HTMLElement; contentEl.focus(); + } else { + (this.store.modalLastClickedTarget as any)?.focus(); + + setTimeout(() => { + document.body.classList.remove('no-scroll'); + }, 90); } }); } diff --git a/src/mixins/modalTrainMixin.ts b/src/mixins/modalTrainMixin.ts index 684eece..390fdea 100644 --- a/src/mixins/modalTrainMixin.ts +++ b/src/mixins/modalTrainMixin.ts @@ -14,24 +14,17 @@ export default defineComponent({ methods: { selectModalTrain(train: Train, target?: EventTarget | null) { this.store.chosenModalTrainId = train.modalId; - document.body.classList.add('no-scroll'); if (target) this.store.modalLastClickedTarget = target; }, selectModalTrainById(modalId: string, target?: EventTarget | null) { this.store.chosenModalTrainId = modalId; - document.body.classList.add('no-scroll'); if (target) this.store.modalLastClickedTarget = target; }, closeModal() { this.store.chosenModalTrainId = undefined; this.tooltipStore.hide(); - - setTimeout(() => { - (this.store.modalLastClickedTarget as any)?.focus(); - document.body.classList.remove('no-scroll'); - }, 150); } } });