diff --git a/app/components/AppTopBar.vue b/app/components/AppTopBar.vue index 623e410e..963aad89 100644 --- a/app/components/AppTopBar.vue +++ b/app/components/AppTopBar.vue @@ -5,6 +5,7 @@ import { Sun, Moon, MessageSquarePlus, Settings, ChevronDown, Menu, X, Users, ChevronLeft, LayoutDashboard, Calendar, ArrowUpCircle, + Cloud, Server, Sparkles, } from 'lucide-vue-next' const route = useRoute() @@ -17,6 +18,22 @@ const { isDark, toggle: toggleColorMode } = useColorMode() const showFeedbackModal = ref(false) const showUserMenu = ref(false) const showMobileMenu = ref(false) +const showGetStartedMenu = ref(false) + +const config = useRuntimeConfig() +const { activeOrg } = useCurrentOrg() + +const isDemo = computed(() => { + const slug = config.public.demoOrgSlug + return slug && activeOrg.value?.slug === slug +}) + +const getStartedMenuRef = useTemplateRef('getStartedMenuRoot') +function onClickOutsideGetStarted(e: MouseEvent) { + if (getStartedMenuRef.value && !getStartedMenuRef.value.contains(e.target as Node)) { + showGetStartedMenu.value = false + } +} const userName = computed(() => session.value?.user?.name ?? 'User') const userEmail = computed(() => session.value?.user?.email ?? '') @@ -119,6 +136,7 @@ function isActiveRoute(to: string, exact: boolean) { watch(() => route.path, () => { showUserMenu.value = false showMobileMenu.value = false + showGetStartedMenu.value = false }) // Close user menu on outside click @@ -128,8 +146,14 @@ function onClickOutsideUser(e: MouseEvent) { showUserMenu.value = false } } -onMounted(() => document.addEventListener('click', onClickOutsideUser)) -onUnmounted(() => document.removeEventListener('click', onClickOutsideUser)) +onMounted(() => { + document.addEventListener('click', onClickOutsideUser) + document.addEventListener('click', onClickOutsideGetStarted) +}) +onUnmounted(() => { + document.removeEventListener('click', onClickOutsideUser) + document.removeEventListener('click', onClickOutsideGetStarted) +})