opendesk
PublicEmailAccountCard.vue
<template>
<div
class="flex justify-between items-center border-outline-elevation-2 p-2 cursor-pointer hover:bg-surface-sidebar rounded-4 h-14"
>
<!-- avatar and name -->
<div class="flex justify-between items-center gap-2">
<EmailProviderIcon :logo="emailIcon[emailAccount.service]" />
<div class="rtl:text-right">
<p class="text-p-base-medium text-ink-gray-7">
{{ __(emailAccount.email_account_name) }}
</p>
<div class="text-p-sm w-full text-ink-gray-5 mt-1">
{{ __(emailAccount.email_id) }}
</div>
</div>
</div>
<div>
<Badge
variant="subtle"
:label="badgeTitleColor[0]"
:theme="badgeTitleColor[1]"
/>
</div>
<!-- email id -->
</div>
</template>
<script setup lang="ts">
import { EmailAccount } from "@/types";
import { emailIcon } from "./emailConfig";
import EmailProviderIcon from "./EmailProviderIcon.vue";
import { computed } from "vue";
import { __ } from "@/translation";
interface P {
emailAccount: EmailAccount;
}
const props = defineProps<P>();
const badgeTitleColor = computed(() => {
if (
props.emailAccount.default_incoming &&
props.emailAccount.default_outgoing
) {
const color =
props.emailAccount.enable_incoming && props.emailAccount.enable_outgoing
? "blue"
: "gray";
return [__("Default Sending and Inbox"), color];
} else if (props.emailAccount.default_incoming) {
const color = props.emailAccount.enable_incoming ? "blue" : "gray";
return [__("Default Inbox"), color];
} else if (props.emailAccount.default_outgoing) {
const color = props.emailAccount.enable_outgoing ? "blue" : "gray";
return [__("Default Sending"), color];
} else {
const color = props.emailAccount.enable_incoming ? "blue" : "gray";
return [__("Inbox"), color];
}
});
</script>
<style scoped></style>