<!-- Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/ --> <script setup lang="ts"> import ActivityMessage from '@shared/components/ActivityMessage/ActivityMessage.vue' import type { ActivityMessageMetaObject, Scalars } from '@shared/graphql/types' import type { AvatarUser } from '@shared/components/CommonUserAvatar' export interface Props { itemId: Scalars['ID'] objectName: string typeName: string seen: boolean metaObject?: Maybe<ActivityMessageMetaObject> createdAt: string createdBy?: Maybe<AvatarUser> } defineProps<Props>() defineEmits<{ (e: 'remove', id: Scalars['ID']): void (e: 'seen', id: Scalars['ID']): void }>() </script> <template> <div class="flex"> <div class="flex items-center ltr:pr-2 rtl:pl-2"> <CommonIcon name="mobile-delete" class="cursor-pointer text-red" size="tiny" @click="$emit('remove', itemId)" /> </div> <div class="flex items-center ltr:pr-2 rtl:pl-2"> <div role="status" class="h-3 w-3 rounded-full" :class="{ 'bg-blue': !seen }" :aria-label="seen ? $t('Notification read') : $t('Unread notification')" ></div> </div> <ActivityMessage :type-name="typeName" :object-name="objectName" :created-at="createdAt" :created-by="createdBy" :meta-object="metaObject" @seen="$emit('seen', itemId)" /> </div> </template>