fix(mobile): improve app store search and launches

This commit is contained in:
archipelago
2026-05-19 18:29:04 -04:00
parent 3e01e57c8d
commit 1836b035b4
12 changed files with 138 additions and 27 deletions
@@ -9,16 +9,18 @@
</div>
</Transition>
<iframe
v-if="appUrl && !iframeBlocked"
ref="iframeRef"
:key="refreshKey"
:src="appUrl"
class="absolute inset-0 w-full h-full border-0 iframe-scrollbar-hide"
title="App content"
@load="$emit('iframeLoad')"
@error="$emit('iframeError')"
/>
<div v-if="appUrl && !iframeBlocked" class="absolute inset-0 app-session-frame-scroll-host">
<iframe
ref="iframeRef"
:key="refreshKey"
:src="appUrl"
class="w-full h-full border-0 iframe-scrollbar-hide"
title="App content"
tabindex="0"
@load="$emit('iframeLoad')"
@error="$emit('iframeError')"
/>
</div>
<!-- Iframe blocked fallback -->
<Transition name="content-fade">
@@ -69,9 +71,9 @@
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { nextTick, ref, watch } from 'vue'
defineProps<{
const props = defineProps<{
appUrl: string
appId: string
appTitle: string
@@ -91,5 +93,11 @@ defineEmits<{
const iframeRef = ref<HTMLIFrameElement | null>(null)
watch(() => [props.appUrl, props.refreshKey, props.iframeBlocked], async () => {
if (!props.appUrl || props.iframeBlocked) return
await nextTick()
iframeRef.value?.focus({ preventScroll: true })
}, { immediate: true })
defineExpose({ iframeRef })
</script>