Skip to content

Commit 52226b0

Browse files
Remove iframe teleport
Iframe teleport caused error when navigating away from city page. Seems like teleport can be buggy when using SSR, so removed and used simpler solution.
1 parent cfad753 commit 52226b0

File tree

2 files changed

+53
-56
lines changed

2 files changed

+53
-56
lines changed

app.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
:on-global-page="convertToBoolean(useRuntimeConfig().public.IS_GLOBAL_SITE)"
2020
:background-color="onGlobalPage ? 'white' : 'gray'"
2121
/>
22-
<div id="overlay" class="z-[100]" />
2322
<!-- <PreviewModeControls /> -->
2423
</div>
2524
</transition>

components/block/Iframe.vue

Lines changed: 53 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88
class="!pt-96"
99
>
1010
<div class="iframe-wrapper aspect-[3/3.5] w-full sm:aspect-video">
11-
<Teleport :disabled="!fullscreen" to="#overlay">
12-
<div
13-
class="iframe-container relative size-full overflow-hidden bg-white shadow"
14-
:class="{
15-
'size-screen fixed left-0 top-0': fullscreen,
16-
'relative rounded-6': !fullscreen
17-
}"
18-
>
19-
<!-- <div v-if="!loaded" class="absolute left-0 top-0 flex size-full flex-col items-center justify-center rounded-6 border-2 border-gray/60 bg-white">
11+
<div
12+
class="iframe-container size-full overflow-hidden bg-white shadow"
13+
:class="{
14+
'size-screen fixed left-0 top-0 z-[200]': fullscreen,
15+
'relative rounded-6': !fullscreen
16+
}"
17+
>
18+
<!-- <div v-if="!loaded" class="absolute left-0 top-0 flex size-full flex-col items-center justify-center rounded-6 border-2 border-gray/60 bg-white">
2019
<h4 class="mb-4">
2120
Looks like something went wrong
2221
</h4>
@@ -30,55 +29,54 @@
3029
text="View Map"
3130
/>
3231
</div> -->
33-
<LoadingState v-if="!loaded" class="absolute-center scale-75" />
34-
<iframe
35-
v-if="data.iframe"
36-
class="absolute left-0 top-0 z-50 size-full"
37-
:class="{ 'rounded-6': !fullscreen }"
38-
:src="data.iframe"
39-
loading="lazy"
40-
@load="triggerLoad"
41-
/>
42-
<Transition name="fade" mode="out-in">
43-
<div
44-
v-if="mapOverlayVisible"
45-
class="group absolute left-0 top-0 z-[60] flex size-full cursor-pointer flex-col items-center justify-center bg-blue/90 text-white transition-colors hover:bg-blue/80"
46-
@click="mapOverlayVisible = false"
47-
>
48-
<div class="size-fit transition-transform group-hover:scale-105">
49-
<h3 class="text-white">
50-
{{ $t('View locations in') }} <span class="capitalize">{{ useRoute().params.city }}</span>
51-
</h3>
52-
<TheLink variant="info" :text="$t('Open Map')" hide-arrow class="mx-auto mt-16" />
53-
</div>
32+
<LoadingState v-if="!loaded" class="absolute-center scale-75" />
33+
<iframe
34+
v-if="data.iframe"
35+
class="absolute left-0 top-0 z-50 size-full"
36+
:class="{ 'rounded-6': !fullscreen }"
37+
:src="data.iframe"
38+
loading="lazy"
39+
@load="triggerLoad"
40+
/>
41+
<Transition name="fade" mode="out-in">
42+
<div
43+
v-if="mapOverlayVisible"
44+
class="group absolute left-0 top-0 z-[60] flex size-full cursor-pointer flex-col items-center justify-center bg-blue/90 text-white transition-colors hover:bg-blue/80"
45+
@click="mapOverlayVisible = false"
46+
>
47+
<div class="size-fit transition-transform group-hover:scale-105">
48+
<h3 class="text-white">
49+
{{ $t('View locations in') }} <span class="capitalize">{{ useRoute().params.city }}</span>
50+
</h3>
51+
<TheLink variant="info" :text="$t('Open Map')" hide-arrow class="mx-auto mt-16" />
5452
</div>
55-
</Transition>
56-
<transition name="fade" mode="out-in">
57-
<button
58-
v-if="loaded"
59-
class="iframe-button grid-row-2 right-24 z-50 grid size-32 cursor-pointer grid-cols-2 rounded-full border-1 border-gray bg-white p-4 shadow-banner"
53+
</div>
54+
</Transition>
55+
<transition name="fade" mode="out-in">
56+
<button
57+
v-if="loaded"
58+
class="iframe-button grid-row-2 right-24 z-50 grid size-32 cursor-pointer grid-cols-2 rounded-full border-1 border-gray bg-white p-4 shadow-banner"
59+
:class="{
60+
'absolute top-24': !fullscreen,
61+
'fixed !top-104 z-[999] md:!top-24': fullscreen
62+
}"
63+
@click="fullscreen = !fullscreen"
64+
>
65+
<ArrowExternal
66+
class="col-start-2 m-1 w-6 self-end "
6067
:class="{
61-
'absolute top-24': !fullscreen,
62-
'fixed !top-104 z-[999] md:!top-24': fullscreen
68+
'rotate-180': fullscreen
6369
}"
64-
@click="fullscreen = !fullscreen"
65-
>
66-
<ArrowExternal
67-
class="col-start-2 m-1 w-6 self-end "
68-
:class="{
69-
'rotate-180': fullscreen
70-
}"
71-
/>
72-
<ArrowExternal
73-
class=" m-1 w-6 self-start justify-self-end"
74-
:class="{
75-
'rotate-180': !fullscreen
76-
}"
77-
/>
78-
</button>
79-
</transition>
80-
</div>
81-
</Teleport>
70+
/>
71+
<ArrowExternal
72+
class=" m-1 w-6 self-start justify-self-end"
73+
:class="{
74+
'rotate-180': !fullscreen
75+
}"
76+
/>
77+
</button>
78+
</transition>
79+
</div>
8280
</div>
8381
</BlockWrapper>
8482
</template>

0 commit comments

Comments
 (0)