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

@ -43,6 +43,7 @@
},
"dependencies": {
"@calendar/shared": "workspace:*",
"@manacore/shared-links": "workspace:*",
"@manacore/shared-api-client": "workspace:*",
"@manacore/shared-app-onboarding": "workspace:*",
"@manacore/shared-auth": "workspace:*",

View file

@ -29,6 +29,7 @@
tagMutations,
useAllTags as useAllSharedTags,
} from '@manacore/shared-stores';
import { linkLocalStore, linkMutations } from '@manacore/shared-links';
import { useAllCalendars, useAllEvents, getDefaultCalendar } from '$lib/data/queries';
import { settingsStore } from '$lib/stores/settings.svelte';
import { birthdaysStore } from '$lib/stores/birthdays.svelte';
@ -449,7 +450,11 @@
async function handleAuthReady() {
// Initialize local-first databases (opens IndexedDB, seeds guest data)
await Promise.all([calendarStore.initialize(), tagLocalStore.initialize()]);
await Promise.all([
calendarStore.initialize(),
tagLocalStore.initialize(),
linkLocalStore.initialize(),
]);
// Initialize split-panel from URL/localStorage
splitPanel.initialize();
@ -464,6 +469,7 @@
const getToken = () => authStore.getValidToken();
calendarStore.startSync(getToken);
tagMutations.startSync(getToken);
linkMutations.startSync(getToken);
// Load user settings (requires auth)
await userSettings.load();