Files
hoppscotch/packages/hoppscotch-common/src/components/firebase/Logout.vue
Andrew Bastin 5230d2d3b8 feat: revamped spotlight (#3171)
Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
2023-07-11 23:02:33 +05:30

68 lines
1.4 KiB
Vue

<template>
<div class="flex" @click="openLogoutModal()">
<HoppSmartItem
ref="logoutItem"
:icon="IconLogOut"
:label="`${t('auth.logout')}`"
:outline="outline"
:shortcut="shortcut"
@click="openLogoutModal()"
/>
<HoppSmartConfirmModal
:show="confirmLogout"
:title="`${t('confirm.logout')}`"
@hide-modal="confirmLogout = false"
@resolve="logout"
/>
</div>
</template>
<script setup lang="ts">
import { ref } from "vue"
import IconLogOut from "~icons/lucide/log-out"
import { useToast } from "@composables/toast"
import { useI18n } from "@composables/i18n"
import { platform } from "~/platform"
import { defineActionHandler } from "~/helpers/actions"
defineProps({
outline: {
type: Boolean,
default: false,
},
shortcut: {
type: Array,
default: () => [],
},
})
const emit = defineEmits<{
(e: "confirm-logout"): void
}>()
const confirmLogout = ref(false)
const logoutItem = ref<HTMLButtonElement>()
const toast = useToast()
const t = useI18n()
const logout = async () => {
try {
await platform.auth.signOutUser()
toast.success(`${t("auth.logged_out")}`)
} catch (e) {
console.error(e)
toast.error(`${t("error.something_went_wrong")}`)
}
}
const openLogoutModal = () => {
emit("confirm-logout")
confirmLogout.value = true
}
defineActionHandler("user.logout", () => {
openLogoutModal()
})
</script>