diff --git a/src/dashboard/scoreko-dev/components/BracketPanel.vue b/src/dashboard/scoreko-dev/components/BracketPanel.vue index d352ae6..5ab69fe 100644 --- a/src/dashboard/scoreko-dev/components/BracketPanel.vue +++ b/src/dashboard/scoreko-dev/components/BracketPanel.vue @@ -5,6 +5,8 @@ import { useScoreboardStore } from '../stores/scoreboard'; const scoreboardStore = useScoreboardStore(); +let customDeactivateTimer: ReturnType | null = null; + const stageOptions = [ 'pools', 'top 128', @@ -25,7 +27,7 @@ const stageOptions = [ const bracketSideOptions = [ { label: 'None', value: '' }, { label: 'Winners', value: 'Winners' }, - { label: 'Loosers', value: 'Loosers' }, + { label: 'Losers', value: 'Losers' }, ]; const stage = ref(stageOptions[0]); @@ -98,8 +100,14 @@ watch(customActive, (value) => { }); watch(customText, (value) => { + if (customDeactivateTimer) { + clearTimeout(customDeactivateTimer); + } if (!value.trim()) { - customActive.value = false; + customDeactivateTimer = setTimeout(() => { + customActive.value = false; + customDeactivateTimer = null; + }, 600); } }); @@ -120,6 +128,7 @@ onMounted(() => { v-model="stage" :label="t('bracketStage')" :options="stageOptions" + :disable="customActive" dense class="bracket-panel__field" /> @@ -127,6 +136,7 @@ onMounted(() => { v-model="bracketSide" :label="t('bracketSide')" :options="bracketSideOptions" + :disable="customActive" dense emit-value map-options @@ -137,6 +147,7 @@ onMounted(() => { v-model="customText" :label="t('bracketCustomProgress')" dense + clearable class="bracket-panel-custom-input bracket-panel__field" /> { .bracket-panel__preview-text--custom { color: var(--q-secondary, #26a69a); } - + \ No newline at end of file diff --git a/src/dashboard/scoreko-dev/components/CommentaryPanel.vue b/src/dashboard/scoreko-dev/components/CommentaryPanel.vue index 56f8358..22fe245 100644 --- a/src/dashboard/scoreko-dev/components/CommentaryPanel.vue +++ b/src/dashboard/scoreko-dev/components/CommentaryPanel.vue @@ -1,8 +1,65 @@