fix: resolve eslint errors and vue template warnings (#33)

This commit is contained in:
Pandipipas
2026-02-10 13:01:20 +01:00
committed by GitHub
parent 2fcf4b5dce
commit f9dfa686ee
9 changed files with 135 additions and 36 deletions
@@ -102,9 +102,14 @@ onMounted(() => {
<template> <template>
<div class="bracket-panel"> <div class="bracket-panel">
<QCard flat bordered> <QCard
flat
bordered
>
<QCardSection class="bracket-panel-header"> <QCardSection class="bracket-panel-header">
<div class="text-h4">Bracket</div> <div class="text-h4">
Bracket
</div>
</QCardSection> </QCardSection>
<QSeparator /> <QSeparator />
@@ -106,7 +106,9 @@ watchEffect(() => {
<template> <template>
<div class="scoreboard-panel"> <div class="scoreboard-panel">
<div class="row items-center q-mb-md"> <div class="row items-center q-mb-md">
<div class="text-h4">Scoreboard</div> <div class="text-h4">
Scoreboard
</div>
<QSpace /> <QSpace />
<QBtn <QBtn
color="secondary" color="secondary"
@@ -127,14 +129,20 @@ watchEffect(() => {
<div class="row q-col-gutter-lg"> <div class="row q-col-gutter-lg">
<div class="col-12 col-md-6"> <div class="col-12 col-md-6">
<QCard flat bordered> <QCard
flat
bordered
>
<QCardSection> <QCardSection>
<div class="text-subtitle1 text-weight-bold">Lado izquierdo</div> <div class="text-subtitle1 text-weight-bold">
Lado izquierdo
</div>
</QCardSection> </QCardSection>
<QSeparator /> <QSeparator />
<QCardSection> <QCardSection>
<QSelect <QSelect
v-model="scoreboardStore.scoreboard.leftPlayerId" v-model="scoreboardStore.scoreboard.leftPlayerId"
v-model:input-value="leftInput"
:options="leftPlayerOptions" :options="leftPlayerOptions"
label="Jugador" label="Jugador"
dense dense
@@ -145,7 +153,6 @@ watchEffect(() => {
input-debounce="0" input-debounce="0"
hide-selected hide-selected
fill-input fill-input
v-model:input-value="leftInput"
@filter="onLeftFilter" @filter="onLeftFilter"
@focus="onLeftFocus" @focus="onLeftFocus"
@blur="onLeftBlur" @blur="onLeftBlur"
@@ -172,14 +179,20 @@ watchEffect(() => {
</div> </div>
<div class="col-12 col-md-6"> <div class="col-12 col-md-6">
<QCard flat bordered> <QCard
flat
bordered
>
<QCardSection> <QCardSection>
<div class="text-subtitle1 text-weight-bold">Lado derecho</div> <div class="text-subtitle1 text-weight-bold">
Lado derecho
</div>
</QCardSection> </QCardSection>
<QSeparator /> <QSeparator />
<QCardSection> <QCardSection>
<QSelect <QSelect
v-model="scoreboardStore.scoreboard.rightPlayerId" v-model="scoreboardStore.scoreboard.rightPlayerId"
v-model:input-value="rightInput"
:options="rightPlayerOptions" :options="rightPlayerOptions"
label="Jugador" label="Jugador"
dense dense
@@ -190,7 +203,6 @@ watchEffect(() => {
input-debounce="0" input-debounce="0"
hide-selected hide-selected
fill-input fill-input
v-model:input-value="rightInput"
@filter="onRightFilter" @filter="onRightFilter"
@focus="onRightFocus" @focus="onRightFocus"
@blur="onRightBlur" @blur="onRightBlur"
@@ -216,7 +228,6 @@ watchEffect(() => {
</QCard> </QCard>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
+1 -1
View File
@@ -41,7 +41,7 @@ const logoUrl = new URL('./image.png', import.meta.url).href;
:src="logoUrl" :src="logoUrl"
alt="Logo" alt="Logo"
class="sidebar-logo" class="sidebar-logo"
/> >
<div class="q-ml-sm"> <div class="q-ml-sm">
<div class="text-subtitle1 text-weight-bold"> <div class="text-subtitle1 text-weight-bold">
Control Panel Control Panel
+5 -1
View File
@@ -1,12 +1,16 @@
<script setup lang="ts"> <script setup lang="ts">
import { useHead } from '@unhead/vue'; import { useHead } from '@unhead/vue';
defineOptions({ name: 'AboutView' });
useHead({ title: 'About' }); useHead({ title: 'About' });
</script> </script>
<template> <template>
<QPage class="q-pa-lg"> <QPage class="q-pa-lg">
<div class="text-h4 q-mb-md">About</div> <div class="text-h4 q-mb-md">
About
</div>
<div class="text-body1"> <div class="text-body1">
Información del bundle y enlaces relevantes. Información del bundle y enlaces relevantes.
</div> </div>
+10 -2
View File
@@ -3,6 +3,8 @@ import { useHead } from '@unhead/vue';
import BracketPanel from '../components/BracketPanel.vue'; import BracketPanel from '../components/BracketPanel.vue';
import ScoreboardPanel from '../components/ScoreboardPanel.vue'; import ScoreboardPanel from '../components/ScoreboardPanel.vue';
defineOptions({ name: 'DashboardView' });
useHead({ title: 'Dashboard' }); useHead({ title: 'Dashboard' });
</script> </script>
@@ -10,14 +12,20 @@ useHead({ title: 'Dashboard' });
<QPage class="q-pa-lg"> <QPage class="q-pa-lg">
<div class="row q-col-gutter-lg items-start dashboard-panels q-mt-lg"> <div class="row q-col-gutter-lg items-start dashboard-panels q-mt-lg">
<div class="col-12 col-lg-6"> <div class="col-12 col-lg-6">
<QCard bordered class="dashboard-panel-card"> <QCard
bordered
class="dashboard-panel-card"
>
<QCardSection class="dashboard-panel-content"> <QCardSection class="dashboard-panel-content">
<ScoreboardPanel /> <ScoreboardPanel />
</QCardSection> </QCardSection>
</QCard> </QCard>
</div> </div>
<div class="col-12 col-lg-6"> <div class="col-12 col-lg-6">
<QCard bordered class="dashboard-panel-card"> <QCard
bordered
class="dashboard-panel-card"
>
<QCardSection class="dashboard-panel-content"> <QCardSection class="dashboard-panel-content">
<BracketPanel /> <BracketPanel />
</QCardSection> </QCardSection>
+21 -5
View File
@@ -1,6 +1,9 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed } from 'vue'; import { computed } from 'vue';
import { useHead } from '@unhead/vue'; import { useHead } from '@unhead/vue';
defineOptions({ name: 'GraphicsView' });
import bundlePackage from '../../../../package.json'; import bundlePackage from '../../../../package.json';
type GraphicConfig = { type GraphicConfig = {
@@ -64,12 +67,17 @@ const onDragStart = (event: DragEvent, graphic: GraphicConfig) => {
<template> <template>
<QPage class="q-pa-lg"> <QPage class="q-pa-lg">
<div class="text-h4 q-mb-md">Graphics</div> <div class="text-h4 q-mb-md">
Graphics
</div>
<div class="text-body1 q-mb-lg"> <div class="text-body1 q-mb-lg">
Controles y estado de gráficos del bundle. Controles y estado de gráficos del bundle.
</div> </div>
<div v-if="graphics.length === 0" class="text-body2 text-grey-5"> <div
v-if="graphics.length === 0"
class="text-body2 text-grey-5"
>
No hay gráficos configurados en el bundle. No hay gráficos configurados en el bundle.
</div> </div>
@@ -79,7 +87,10 @@ const onDragStart = (event: DragEvent, graphic: GraphicConfig) => {
:key="graphic.file" :key="graphic.file"
class="col-12 col-md-6" class="col-12 col-md-6"
> >
<QCard bordered class="bg-grey-10"> <QCard
bordered
class="bg-grey-10"
>
<QCardSection class="row items-center justify-between"> <QCardSection class="row items-center justify-between">
<div> <div>
<div class="text-h6"> <div class="text-h6">
@@ -89,7 +100,10 @@ const onDragStart = (event: DragEvent, graphic: GraphicConfig) => {
{{ graphic.file }} {{ graphic.file }}
</div> </div>
</div> </div>
<QBadge color="primary" outline> <QBadge
color="primary"
outline
>
{{ graphic.width ?? 1920 }}x{{ graphic.height ?? 1080 }} {{ graphic.width ?? 1920 }}x{{ graphic.height ?? 1080 }}
</QBadge> </QBadge>
</QCardSection> </QCardSection>
@@ -97,7 +111,9 @@ const onDragStart = (event: DragEvent, graphic: GraphicConfig) => {
<QSeparator /> <QSeparator />
<QCardSection> <QCardSection>
<div class="text-caption text-grey-5 q-mb-xs">URL</div> <div class="text-caption text-grey-5 q-mb-xs">
URL
</div>
<div class="text-body2 text-mono q-mb-md"> <div class="text-body2 text-mono q-mb-md">
{{ buildGraphicUrl(graphic) }} {{ buildGraphicUrl(graphic) }}
</div> </div>
+7 -2
View File
@@ -1,5 +1,8 @@
<script setup lang="ts"> <script setup lang="ts">
import { useHead } from '@unhead/vue'; import { useHead } from '@unhead/vue';
defineOptions({ name: 'PlayersView' });
import type { QTableColumn } from 'quasar'; import type { QTableColumn } from 'quasar';
import { computed, reactive, ref, watch } from 'vue'; import { computed, reactive, ref, watch } from 'vue';
import type { Schemas } from '../../../types'; import type { Schemas } from '../../../types';
@@ -143,7 +146,9 @@ const handleImport = async (event: Event) => {
<template> <template>
<QPage class="q-pa-lg players-page"> <QPage class="q-pa-lg players-page">
<div class="row items-center q-mb-md"> <div class="row items-center q-mb-md">
<div class="text-h4">Players</div> <div class="text-h4">
Players
</div>
<QSpace /> <QSpace />
<QBtn <QBtn
color="primary" color="primary"
@@ -259,11 +264,11 @@ const handleImport = async (event: Event) => {
input-debounce="0" input-debounce="0"
hide-selected hide-selected
fill-input fill-input
@filter="filterCountries"
clearable clearable
label="Country" label="Country"
dense dense
outlined outlined
@filter="filterCountries"
/> />
</div> </div>
<div class="col-12"> <div class="col-12">
+5 -1
View File
@@ -1,12 +1,16 @@
<script setup lang="ts"> <script setup lang="ts">
import { useHead } from '@unhead/vue'; import { useHead } from '@unhead/vue';
defineOptions({ name: 'SettingsView' });
useHead({ title: 'Settings' }); useHead({ title: 'Settings' });
</script> </script>
<template> <template>
<QPage class="q-pa-lg"> <QPage class="q-pa-lg">
<div class="text-h4 q-mb-md">Settings</div> <div class="text-h4 q-mb-md">
Settings
</div>
<div class="text-body1"> <div class="text-body1">
Configuración del dashboard y del bundle. Configuración del dashboard y del bundle.
</div> </div>
+60 -14
View File
@@ -89,11 +89,19 @@ const roundText = computed(() => scoreboard.value.round || 'Round');
<template> <template>
<div id="scoreboard"> <div id="scoreboard">
<div id="back-panel-wrapper"> <div id="back-panel-wrapper">
<img id="back-panel" src="./img/back.svg" alt="" /> <img
id="back-panel"
src="./img/back.svg"
alt=""
>
</div> </div>
<div id="main-panel-wrapper"> <div id="main-panel-wrapper">
<img id="main-panel" src="./img/main.svg" alt="" /> <img
id="main-panel"
src="./img/main.svg"
alt=""
>
<div id="progress-text-wrapper"> <div id="progress-text-wrapper">
<div id="progress-text"> <div id="progress-text">
@@ -101,23 +109,41 @@ const roundText = computed(() => scoreboard.value.round || 'Round');
</div> </div>
</div> </div>
<div id="p1-games-text-wrapper" class="games-text-wrapper"> <div
id="p1-games-text-wrapper"
class="games-text-wrapper"
>
<div class="games-text"> <div class="games-text">
{{ scoreboard.leftScore }} {{ scoreboard.leftScore }}
</div> </div>
</div> </div>
<div id="p2-games-text-wrapper" class="games-text-wrapper"> <div
id="p2-games-text-wrapper"
class="games-text-wrapper"
>
<div class="games-text"> <div class="games-text">
{{ scoreboard.rightScore }} {{ scoreboard.rightScore }}
</div> </div>
</div> </div>
<div id="p1-name-wrapper" class="name-wrapper"> <div
<img src="./img/name1.svg" alt="" /> id="p1-name-wrapper"
class="name-wrapper"
>
<img
src="./img/name1.svg"
alt=""
>
<div id="p1-name-text-wrapper" class="name-text-wrapper"> <div
<span v-if="leftTeam" class="team-text"> id="p1-name-text-wrapper"
class="name-text-wrapper"
>
<span
v-if="leftTeam"
class="team-text"
>
{{ leftTeam }} {{ leftTeam }}
</span> </span>
<span class="gamertag-text"> <span class="gamertag-text">
@@ -131,16 +157,32 @@ const roundText = computed(() => scoreboard.value.round || 'Round');
class="flag-wrapper" class="flag-wrapper"
> >
<div class="flag-mask"> <div class="flag-mask">
<img class="flag" :src="leftFlagUrl" alt="" /> <img
class="flag"
:src="leftFlagUrl"
alt=""
>
</div> </div>
</div> </div>
</div> </div>
<div id="p2-name-wrapper" class="name-wrapper"> <div
<img src="./img/name2.svg" alt="" /> id="p2-name-wrapper"
class="name-wrapper"
>
<img
src="./img/name2.svg"
alt=""
>
<div id="p2-name-text-wrapper" class="name-text-wrapper"> <div
<span v-if="rightTeam" class="team-text"> id="p2-name-text-wrapper"
class="name-text-wrapper"
>
<span
v-if="rightTeam"
class="team-text"
>
{{ rightTeam }} {{ rightTeam }}
</span> </span>
<span class="gamertag-text"> <span class="gamertag-text">
@@ -154,7 +196,11 @@ const roundText = computed(() => scoreboard.value.round || 'Round');
class="flag-wrapper" class="flag-wrapper"
> >
<div class="flag-mask"> <div class="flag-mask">
<img class="flag" :src="rightFlagUrl" alt="" /> <img
class="flag"
:src="rightFlagUrl"
alt=""
>
</div> </div>
</div> </div>
</div> </div>