feat: integrate shared-links into Calendar, Contacts, and ManaCore

Add @manacore/shared-links to Calendar, Contacts, and ManaCore apps.
Link store initializes alongside tag store in each app's layout, syncs
when authenticated, and is ready for cross-app linking.

Also fix broken workspace references in moodlit (shared-feedback-service
→ feedback, shared-feedback-ui removed, shared-subscription-ui →
subscriptions).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-03-30 10:53:44 +02:00
parent 06e5d9e22b
commit 1bbf0ef41e
7 changed files with 66 additions and 2 deletions

View file

@ -45,6 +45,7 @@
"@manacore/feedback": "workspace:*",
"@manacore/help": "workspace:*",
"@manacore/local-store": "workspace:*",
"@manacore/shared-links": "workspace:*",
"@manacore/shared-i18n": "workspace:*",
"@manacore/shared-icons": "workspace:*",
"@manacore/shared-profile-ui": "workspace:*",

View file

@ -52,6 +52,7 @@
tagMutations,
useAllTags as useAllSharedTags,
} from '@manacore/shared-stores';
import { linkLocalStore, linkMutations } from '@manacore/shared-links';
import { contactsOnboarding } from '$lib/stores/app-onboarding.svelte';
import { MiniOnboardingModal } from '@manacore/shared-app-onboarding';
import { SessionExpiredBanner, AuthGate, GuestWelcomeModal } from '@manacore/shared-auth-ui';
@ -305,13 +306,18 @@
async function handleAuthReady() {
// Initialize local-first databases (opens IndexedDB, seeds guest data)
await Promise.all([contactsLocalStore.initialize(), tagLocalStore.initialize()]);
await Promise.all([
contactsLocalStore.initialize(),
tagLocalStore.initialize(),
linkLocalStore.initialize(),
]);
// If authenticated, start syncing to server
if (authStore.isAuthenticated) {
const getToken = () => authStore.getValidToken();
contactsLocalStore.startSync(getToken);
tagMutations.startSync(getToken);
linkMutations.startSync(getToken);
}
// Initialize split-panel from URL/localStorage