Skip to content

Commit e3ad9da

Browse files
committed
Fix close-explicitly in Vue + update tests (see #36)
1 parent c669751 commit e3ad9da

File tree

5 files changed

+16
-8
lines changed

5 files changed

+16
-8
lines changed

demo-app/tests/Browser/ConfigPropsTest.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ public function it_can_set_config_globally(bool $navigate)
1717
->waitForText('Prop from Config')
1818
->clickLink('Open')
1919
->waitFor('.im-dialog')
20-
->keys('', ['{escape}'])
21-
// ->assertAttribute('#app', 'inert', '') // Close explicitly TODO: FIX
20+
->keys('', ['{escape}']) // Escape key does not close the dialog
21+
->assertAttribute('#app', 'aria-hidden', 'true')
22+
->clickLink('Open') // Clicking outside the dialog does not close it
23+
->assertAttribute('#app', 'aria-hidden', 'true')
2224
->assertPresent('.im-slideover-content') // Slideover
2325
->assertMissing('.im-close-button') // No close button
2426
->assertAttributeContains('.im-slideover-positioner', 'class', 'justify-start') // Left-aligned

demo-app/tests/Browser/ConfigTest.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ public function it_passes_the_props_from_the_modal(bool $navigate)
1717
->waitForText('Prop from Modal')
1818
->clickLink('Open Slideover')
1919
->waitFor('.im-dialog')
20-
->keys('', ['{escape}'])
21-
// ->assertAttribute('#app', 'inert', '') // Close explicitly TODO: FIX
20+
->keys('', ['{escape}']) // Escape key does not close the dialog
21+
->assertAttribute('#app', 'aria-hidden', 'true')
22+
->clickLink('Open Slideover') // Clicking outside the dialog does not close it
23+
->assertAttribute('#app', 'aria-hidden', 'true')
2224
->assertPresent('.im-slideover-content') // Slideover
2325
->assertMissing('.im-close-button') // No close button
2426
->assertAttributeContains('.im-slideover-positioner', 'class', 'justify-start') // Left-aligned

demo-app/tests/Browser/ModalLinkPropsTest.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ public function it_passes_the_props_from_the_modal_link(bool $navigate)
1717
->waitForText('Prop from ModalLink')
1818
->clickLink('Edit User 1')
1919
->waitFor('.im-dialog')
20-
->keys('', ['{escape}'])
21-
// ->assertAttribute('#app', 'inert', '') // Close explicitly TODO: FIX
20+
->keys('', ['{escape}']) // Escape key does not close the dialog
21+
->assertAttribute('#app', 'aria-hidden', 'true')
22+
->clickLink('Edit User 1') // Clicking outside the dialog does not close it
23+
->assertAttribute('#app', 'aria-hidden', 'true')
2224
->assertPresent('.im-slideover-content') // Slideover
2325
->assertMissing('.im-close-button') // No close button
2426
->assertAttributeContains('.im-slideover-positioner', 'class', 'justify-start') // Left-aligned

vue/src/ModalContent.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ defineProps({
3030
>
3131
<DialogContent
3232
:aria-describedby="undefined"
33-
:trap-focus="config?.closeExplicitly"
3433
:class="{
3534
'im-modal-wrapper w-full transition duration-300 ease-in-out': true,
3635
'blur-sm': !modalContext.onTopOfStack,
@@ -45,6 +44,8 @@ defineProps({
4544
'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl': config.maxWidth == '6xl',
4645
'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl': config.maxWidth == '7xl',
4746
}"
47+
@escape-key-down="($event) => config?.closeExplicitly && $event.preventDefault()"
48+
@interact-outside="($event) => config?.closeExplicitly && $event.preventDefault()"
4849
>
4950
<VisuallyHidden as-child>
5051
<DialogTitle />

vue/src/SlideoverContent.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ defineProps({
2929
>
3030
<DialogContent
3131
:aria-describedby="undefined"
32-
:trap-focus="config?.closeExplicitly"
3332
:class="{
3433
'im-slideover-wrapper w-full transition duration-300 ease-in-out': true,
3534
'blur-sm': !modalContext.onTopOfStack,
@@ -44,6 +43,8 @@ defineProps({
4443
'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl': config.maxWidth == '6xl',
4544
'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl': config.maxWidth == '7xl',
4645
}"
46+
@escape-key-down="($event) => config?.closeExplicitly && $event.preventDefault()"
47+
@interact-outside="($event) => config?.closeExplicitly && $event.preventDefault()"
4748
>
4849
<VisuallyHidden as-child>
4950
<DialogTitle />

0 commit comments

Comments
 (0)