SyntaxSquad/DADProject#14 added protection to logout inside a game and going to another page

This commit is contained in:
2025-12-29 11:15:33 +00:00
committed by FernandoJVideira
parent e68f1357cc
commit 3ec6f8971c
6 changed files with 226 additions and 32 deletions
+24 -4
View File
@@ -15,14 +15,16 @@
</li>
</NavigationMenuContent>
</NavigationMenuItem>
<NavigationMenuItem v-if="!userLoggedIn">
<NavigationMenuLink>
<RouterLink to="/login">Login</RouterLink>
</NavigationMenuLink>
</NavigationMenuItem>
<NavigationMenuItem v-else>
<NavigationMenuLink>
<a @click.prevent="logoutClickHandler">Logout</a>
<a href="/home" @click.prevent="logoutClickHandler" class="cursor-pointer">Logout</a>
</NavigationMenuLink>
<NavigationMenuLink>
<RouterLink to="/user">Profile</RouterLink>
@@ -34,6 +36,8 @@
</template>
<script setup>
import { useRouter } from 'vue-router'
import { useBiscaStore } from '@/stores/bisca'
import {
NavigationMenu,
NavigationMenuContent,
@@ -44,12 +48,28 @@ import {
} from '@/components/ui/navigation-menu'
import router from '@/router';
const emits = defineEmits(['logout'])
const { userLoggedIn } = defineProps(['userLoggedIn'])
const router = useRouter()
const biscaStore = useBiscaStore()
const logoutClickHandler = () => {
if (biscaStore.isGameRunning) {
const confirmLogout = window.confirm(
'⚠️ Jogo em Progresso!\n\nSe fizeres Logout agora, perderás o jogo atual e serás considerado PERDEDOR.\n\nQueres mesmo sair?'
)
if (!confirmLogout) return
biscaStore.isLoggingOut = true
biscaStore.quitGame()
return
}
emits('logout')
router.push('/login')
router.push({ name: 'home' })
}
</script>
</script>