0761bbd8c1
LST-68 (2.6) front. Completes the Integration module and Phase 2. - New frontend/modules/integration/ layer (auto-detected): services (gitea, bookstack, zimbra, share, share-settings) + their DTOs, and the useShareStatus composable. - Consumers repointed to ~/modules/integration/...: admin tabs (Gitea/BookStack/Zimbra/Share), PM task sections (TaskGitSection, TaskBookStackLinks, TaskDocumentShareLinker), ProjectDrawer, TaskModal, pages/documents.vue, components/share/SharedFilePreview.vue. - Admin tabs, SharedFilePreview and documents/admin pages stay at their location (only imports updated). i18n stays global. nuxt build passes; all routes preserved.
24 lines
595 B
TypeScript
24 lines
595 B
TypeScript
import { useShareService } from '~/modules/integration/services/share'
|
|
|
|
export function useShareStatus() {
|
|
const enabled = useState<boolean | null>('share-enabled', () => null)
|
|
const { getStatus } = useShareService()
|
|
|
|
async function refresh() {
|
|
try {
|
|
const status = await getStatus()
|
|
enabled.value = status.enabled
|
|
} catch {
|
|
enabled.value = false
|
|
}
|
|
}
|
|
|
|
async function ensureLoaded() {
|
|
if (enabled.value === null) {
|
|
await refresh()
|
|
}
|
|
}
|
|
|
|
return { enabled, refresh, ensureLoaded }
|
|
}
|