chore(frontend): ESLint dla Vue i TypeScriptu

Konfiguracja we flat configu: zalecane zestawy js, typescript-eslint oraz
eslint-plugin-vue. Bloki <script setup lang="ts"> obsługuje vue-eslint-parser
przekazujący zawartość do parsera TypeScriptu.

Odstępstwa od domyślnych reguł:

- vue/multi-word-component-names wyłączone - kafelki panelu mają nazwy
  własne i nie każda jest dwuczłonowa
- no-unused-vars przepuszcza nazwy z prefiksem podkreślenia
- no-console wyłączone dla testu dymnego, który raportuje wynik na stdout

Szablony przepuszczone przez eslint --fix, co ujednoliciło łamanie
atrybutów i domykanie znaczników. Po zmianach kontrola typów, build
i test dymny nadal przechodzą.

Dochodzą skrypty npm: lint (z --max-warnings 0) oraz lint:fix.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
lgooseandClaude Bot committed 2026-08-21 01:34:55 +02:00
1 parent 1b5ce2109b
commit 105f3e6c6a
17 files changed
+1682 -84

No files matched your search

+28 -7
View File
@@ -34,18 +34,33 @@ function play(filename: string) {
<template>
<div class="glass-card uploads-panel">
<div class="queue-header">
<h2 class="card-title"><FolderUp /> Serwerowa baza plików</h2>
<h2 class="card-title">
<FolderUp /> Serwerowa baza plików
</h2>
<span class="queue-count">{{ filesLabel(files.length) }}</span>
</div>
<div class="upload-area">
<input ref="fileInput" type="file" hidden multiple @change="onFilesPicked" />
<button class="btn btn-secondary btn-block" :disabled="uploading" @click="fileInput?.click()">
<input
ref="fileInput"
type="file"
hidden
multiple
@change="onFilesPicked"
>
<button
class="btn btn-secondary btn-block"
:disabled="uploading"
@click="fileInput?.click()"
>
<UploadCloud /> Prześlij plik wideo/audio na serwer
</button>
<div v-if="uploading" class="upload-progress">
<div
v-if="uploading"
class="upload-progress"
>
<div class="progress-bar-bg">
<div class="progress-bar-fill indeterminate"></div>
<div class="progress-bar-fill indeterminate" />
</div>
<span class="time-text">{{ uploadLabel }}</span>
</div>
@@ -60,14 +75,20 @@ function play(filename: string) {
@enqueue="play"
@remove="remove"
/>
<div v-if="!files.length" class="empty-queue-message">
<div
v-if="!files.length"
class="empty-queue-message"
>
<FolderOpen />
<p>Brak przesłanych plików na serwerze.</p>
</div>
</ul>
</div>
<button class="btn btn-secondary btn-block" @click="$emit('openLibrary')">
<button
class="btn btn-secondary btn-block"
@click="$emit('openLibrary')"
>
<FolderOpen /> Pokaż wszystkie pliki na serwerze ({{ files.length }})
</button>
</div>