From ce67b9f98a54092e46ad04afb93f3117c1f5ea51 Mon Sep 17 00:00:00 2001 From: curo1305 Date: Tue, 16 Jun 2026 13:57:18 +0200 Subject: [PATCH] fix(cloud): skeleton on first render + informative toast when opening cloud files - loading initialised to true so skeleton rows show immediately on mount instead of the empty state flashing before data arrives - @file-open no longer a silent no-op; shows an info toast explaining the file must be opened via the cloud provider directly Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/views/CloudFolderView.vue | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/CloudFolderView.vue b/frontend/src/views/CloudFolderView.vue index 1d37119..6c9351d 100644 --- a/frontend/src/views/CloudFolderView.vue +++ b/frontend/src/views/CloudFolderView.vue @@ -11,7 +11,7 @@ @breadcrumb-navigate="handleBreadcrumbNavigate" @upload="onFilesSelected" @folder-navigate="item => navigateTo(item)" - @file-open="file => {}" + @file-open="onFileOpen" /> @@ -21,12 +21,15 @@ import { useRoute, useRouter } from 'vue-router' import * as api from '../api/client.js' import StorageBrowser from '../components/storage/StorageBrowser.vue' import { providerLabel } from '../utils/formatters.js' +import { useToastStore } from '../stores/toast.js' const route = useRoute() const router = useRouter() +const toast = useToastStore() + const items = ref([]) -const loading = ref(false) +const loading = ref(true) const error = ref('') const provider = computed(() => route.params.provider) @@ -92,6 +95,10 @@ async function onFilesSelected({ files: selectedFiles }) { await load() } +function onFileOpen(file) { + toast.show(`"${file.name}" can't be opened here — open it directly in your cloud storage provider.`, 'info') +} + onMounted(load) watch([provider, folderId], load)