- NotificationInterface: add sendInfo() and sendWarning() levels - SymfonyNotification: implement new levels (publishes to 'notifications' topic) - ChapterScrapingStarted: carry mangaTitle + chapterNumber, now dispatched - ScrapeChapterHandler: dispatch ChapterScrapingStarted before scraping loop - ScrapingEventSubscriber: wire NotificationInterface for started/scraped/failed events - useMercureNotifications: new global Vue composable subscribing to 'notifications' topic - App.vue: mount useMercureNotifications() at app root - SendTestNotificationCommand: `app:notify:test --type --message` for dev/prod testing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
443 B
Vue
24 lines
443 B
Vue
<template>
|
|
<router-view></router-view>
|
|
<NotificationToast />
|
|
</template>
|
|
|
|
<script setup>
|
|
import NotificationToast from './shared/components/ui/NotificationToast.vue';
|
|
import { useMercureNotifications } from './shared/composables/useMercureNotifications';
|
|
|
|
useMercureNotifications();
|
|
</script>
|
|
|
|
<style>
|
|
.fade-enter-active,
|
|
.fade-leave-active {
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
|
|
.fade-enter-from,
|
|
.fade-leave-to {
|
|
opacity: 0;
|
|
}
|
|
</style>
|