chore: conditionally display notification dot (#31)
parent
0eda99ec3b
commit
fbe0fc1738
|
@ -15,10 +15,6 @@ import { $t } from '#/locales';
|
|||
import { resetRoutes } from '#/router';
|
||||
import { useAppStore } from '#/store';
|
||||
|
||||
// https://avatar.vercel.sh/vercel.svg?text=Vaa
|
||||
// https://avatar.vercel.sh/1
|
||||
// https://avatar.vercel.sh/nextjs
|
||||
// https://avatar.vercel.sh/satori
|
||||
const notifications = ref<NotificationItem[]>([
|
||||
{
|
||||
avatar: 'https://avatar.vercel.sh/vercel.svg?text=VB',
|
||||
|
@ -50,6 +46,10 @@ const notifications = ref<NotificationItem[]>([
|
|||
},
|
||||
]);
|
||||
|
||||
const showDot = computed(() =>
|
||||
notifications.value.some((item) => !item.isRead),
|
||||
);
|
||||
|
||||
const menus = computed(() => [
|
||||
{
|
||||
handler: () => {
|
||||
|
@ -92,6 +92,10 @@ async function handleLogout() {
|
|||
function handleNoticeClear() {
|
||||
notifications.value = [];
|
||||
}
|
||||
|
||||
function handleMakeAll() {
|
||||
notifications.value.forEach((item) => (item.isRead = true));
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -108,9 +112,10 @@ function handleNoticeClear() {
|
|||
</template>
|
||||
<template #notification>
|
||||
<Notification
|
||||
:dot="showDot"
|
||||
:notifications="notifications"
|
||||
dot
|
||||
@clear="handleNoticeClear"
|
||||
@make-all="handleMakeAll"
|
||||
/>
|
||||
</template>
|
||||
</BasicLayout>
|
||||
|
|
Loading…
Reference in New Issue