Report desktop update downloads through persistent determinate or indeterminate toasts while retaining native confirmation. Use a spinner during progress and cancel pending expiry when progress resumes. Standardize substantial Storybook fixtures as colocated example SFCs, preserve shared SDK documentation examples, and enforce semantic anatomy instead of shared-layer test IDs.
23 lines
844 B
Vue
23 lines
844 B
Vue
<script setup lang="ts">
|
|
import { useI18n } from '@open-pencil/vue'
|
|
|
|
import { supportsFileSystemAccess } from '@/app/document/io/capability'
|
|
import ExternalLink from '@/components/links/ExternalLink.vue'
|
|
import AppBanner from '@/components/ui/feedback/AppBanner.vue'
|
|
import { IS_TAURI } from '@/constants'
|
|
|
|
/** Neutral capability reference: the File System Access API support table. */
|
|
const supportURL = 'https://caniuse.com/native-filesystem-api'
|
|
|
|
const { files, common } = useI18n()
|
|
const show = !IS_TAURI && !supportsFileSystemAccess()
|
|
</script>
|
|
|
|
<template>
|
|
<AppBanner v-if="show" storage-key="safari-banner-dismissed">
|
|
{{ files.browserFileAPINotSupported }}
|
|
<ExternalLink :href="supportURL" class="ml-1">{{ common.browserSupport }}</ExternalLink>
|
|
<template #dismiss>{{ common.dismiss }}</template>
|
|
</AppBanner>
|
|
</template>
|