feat(10-04): implement toast store, ToastContainer, mount in App.vue

- toast.js: reactive toasts array, show/dismiss with auto-dismiss via setTimeout
- ToastContainer.vue: Options API, Teleport to body, TransitionGroup, data-test attr
- type-to-class maps: accentClass/iconName/iconColorClass for success/error/warning/info
- App.vue: import and mount <ToastContainer /> after layout div
- all 10 tests pass; SettingsAccountTab and TotpEnrollment regressions green
This commit is contained in:
curo1305
2026-06-15 20:11:12 +02:00
parent 74fc41cefa
commit f92d98d067
3 changed files with 86 additions and 13 deletions
+2
View File
@@ -6,6 +6,7 @@
<router-view />
</main>
</div>
<ToastContainer />
</template>
<script setup>
@@ -13,6 +14,7 @@ import { onMounted } from 'vue'
import { useRoute } from 'vue-router'
import AppSidebar from './components/layout/AppSidebar.vue'
import AuthLayout from './layouts/AuthLayout.vue'
import ToastContainer from './components/ui/ToastContainer.vue'
import { useTopicsStore } from './stores/topics.js'
const route = useRoute()