refactor: remove success notifications from api action wrappers and websocket connection

This commit is contained in:
mmacierzanka committed 2026-09-13 16:04:35 +02:00
1 parent 2513aa2b28
commit 76f63057bc
7 files changed
+15 -32

No files matched your search

+1 -1
View File
@@ -25,7 +25,7 @@ async function submit() {
busy.value = true
const guildId = props.status.active_voice_channel.guild_id
const pendingId = addPendingTrack(guildId, trimmed)
const added = await run(() => api.play(trimmed), 'Dodano utwór do kolejki!', 'Błąd dodawania')
const added = await run(() => api.play(trimmed), '', 'Błąd dodawania')
removePendingTrack(pendingId)
if (added) query.value = ''
busy.value = false
+1 -1
View File
@@ -34,7 +34,7 @@ async function replay(entry: HistoryTrack) {
notify('Ten wpis historii nie ma źródła do odtworzenia', 'error')
return
}
await run(() => api.play(entry.url as string), 'Dodano z historii do kolejki!', 'Błąd')
await run(() => api.play(entry.url as string), '', 'Błąd')
} finally {
removePendingTrack(pendingId)
}
+7 -15
View File
@@ -114,7 +114,7 @@ async function onToggleEffect(fx: PlayerEffect) {
const next = !fx.active
await run(
() => api.toggleEffect(fx.id, next),
next ? `Włączono efekt: ${fx.name} ✨` : `Wyłączono efekt: ${fx.name}`,
'',
`Błąd przełączania efektu ${fx.name}`,
)
}
@@ -127,7 +127,7 @@ async function togglePlayback() {
}
await run(
() => (playing.value ? api.pause() : api.resume()),
playing.value ? 'Wstrzymano odtwarzanie' : 'Wznowiono odtwarzanie',
'',
'Błąd sterowania odtwarzaniem',
)
}
@@ -158,7 +158,7 @@ async function commitSeek() {
const position = seekPosition.value
seekSubmitting.value = true
try {
await run(() => api.seek(position), 'Przewinięto utwór', 'Błąd przewijania utworu')
await run(() => api.seek(position), '', 'Błąd przewijania utworu')
} finally {
seekSubmitting.value = false
seeking.value = false
@@ -170,28 +170,20 @@ async function restartCurrent() {
seekPosition.value = 0
seekSubmitting.value = true
try {
await run(() => api.seek(0), 'Uruchomiono utwór od początku', 'Błąd uruchamiania od początku')
await run(() => api.seek(0), '', 'Błąd uruchamiania od początku')
} finally {
seekSubmitting.value = false
seeking.value = false
}
}
const skip = () => run(() => api.skip(), 'Pominięto utwór', 'Błąd pomijania utworu')
const skip = () => run(() => api.skip(), '', 'Błąd pomijania utworu')
const stop = () =>
run(() => api.stop(), 'Zatrzymano odtwarzanie i wyczyszczono kolejkę', 'Błąd zatrzymywania')
const LOOP_MESSAGES = {
playlist: 'Zapętlanie kolejki włączone',
single: 'Zapętlanie utworu włączone',
off: 'Zapętlanie wyłączone',
} as const
const stop = () => run(() => api.stop(), '', 'Błąd zatrzymywania')
async function cycleLoop() {
try {
const { mode } = await api.cycleLoop()
notify(LOOP_MESSAGES[mode], 'info')
await api.cycleLoop()
} catch {
notify('Błąd ustawiania pętli', 'error')
}
+3 -3
View File
@@ -25,7 +25,7 @@ const draggedId = ref<string | null>(null)
const dropTargetId = ref<string | null>(null)
const sendOrder = (ids: string[]) =>
run(() => api.reorder(ids), 'Zmieniono kolejność utworów!', 'Nie udało się zapisać kolejności')
run(() => api.reorder(ids), '', 'Nie udało się zapisać kolejności')
function reordered(from: number, to: number): string[] {
const ids = queue.value.map((track) => track.id)
@@ -69,10 +69,10 @@ function moveDown(index: number) {
}
const jump = (index: number) =>
run(() => api.jump(index), 'Zmieniono odtwarzany utwór', 'Nie udało się zmienić utworu')
run(() => api.jump(index), '', 'Nie udało się zmienić utworu')
const remove = (id: string) =>
run(() => api.remove(id), 'Usunięto utwór z kolejki', 'Nie udało się usunąć utworu')
run(() => api.remove(id), '', 'Nie udało się usunąć utworu')
const setPlays = (id: string, plays: number) =>
run(() => api.setTrackPlays(id, plays), '', 'Błąd aktualizacji odtworzeń')
@@ -52,14 +52,14 @@ watch(
async function toggle() {
if (active.value) {
await run(() => api.disconnect(), 'Rozłączono z kanału głosowego', 'Błąd rozłączania')
await run(() => api.disconnect(), '', 'Błąd rozłączania')
return
}
if (!selected.value) {
notify('Wybierz kanał głosowy z listy!', 'error')
return
}
await run(() => api.connect(selected.value), 'Połączono z kanałem głosowym!', 'Nie udało się połączyć')
await run(() => api.connect(selected.value), '', 'Nie udało się połączyć')
}
async function setNotificationChannel() {
-9
View File
@@ -1,6 +1,5 @@
import { onUnmounted, ref } from 'vue'
import type { BotStatus } from '@/types/status'
import { useToasts } from '@/composables/useToasts'
import { getGuildId, setGuildId } from '@/api/client'
const RECONNECT_DELAY_MS = 3000
@@ -13,13 +12,10 @@ const pendingTracks = ref<{ id: string; guildId: string; title: string }[]>([])
let socket: WebSocket | null = null
let reconnectTimer: number | null = null
let connectedOnce = false
let subscribers = 0
/** Jedno połączenie WebSocket na aplikację, niezależnie od liczby komponentów. */
export function useBotStatus() {
const { notify } = useToasts()
function open() {
const scheme = window.location.protocol === 'https:' ? 'wss:' : 'ws:'
const guild = getGuildId()
@@ -30,11 +26,6 @@ export function useBotStatus() {
currentSocket.onopen = () => {
connected.value = true
notify(
connectedOnce ? 'Połączenie WebSocket przywrócone (Live)!' : 'WebSocket zsynchronizowany (Live)!',
'success',
)
connectedOnce = true
}
currentSocket.onmessage = (event) => {
+1 -1
View File
@@ -40,7 +40,7 @@ export function useUploads() {
}
async function enqueue(filename: string) {
await run(() => api.playFile(filename), 'Dodano plik do kolejki!', 'Błąd odtwarzania')
await run(() => api.playFile(filename), '', 'Błąd odtwarzania')
await refresh()
}