Compare commits

..

5 Commits

Author SHA1 Message Date
Kendall Garner 49c0ab45f6 restore lint ignore 2026-06-09 21:02:14 -07:00
Kendall Garner 8b913595da revert that comment change that I somehow made 2026-06-09 20:56:30 -07:00
Kendall Garner 4e5867e8af bump appimage version 2026-06-07 21:32:12 -07:00
Kendall Garner 7dd6d32710 downgrade tanstack, fix msot types and exclude recursive 2026-06-07 06:48:56 -07:00
Kendall Garner ac7dc37fd0 upgrade depdencencies 2026-06-07 06:15:17 -07:00
19 changed files with 366 additions and 569 deletions
+4
View File
@@ -44,6 +44,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
@@ -127,6 +129,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
+4
View File
@@ -19,6 +19,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
@@ -121,6 +123,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
+2
View File
@@ -16,6 +16,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
+2
View File
@@ -16,6 +16,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
+2
View File
@@ -38,6 +38,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
+2
View File
@@ -16,6 +16,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
+2
View File
@@ -16,6 +16,8 @@ jobs:
- name: Install Node and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
+1 -1
View File
@@ -43,6 +43,6 @@ jobs:
stale-issue-label: 'stale'
exempt-issue-labels: 'keep,security,enhancement'
exempt-issue-labels: 'keep,security'
stale-pr-label: 'stale'
exempt-pr-labels: 'keep,security'
+2
View File
@@ -12,6 +12,8 @@ jobs:
- name: Install Node.js and PNPM
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: pnpm install
+4 -1
View File
@@ -3,7 +3,10 @@ FROM node:23-alpine AS builder
WORKDIR /app
# Copy package.json first to cache node_modules
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .
COPY package.json pnpm-lock.yaml .
# Match CI (pnpm/action-setup version: 10). Latest pnpm 11 fails install without approve-builds.
RUN corepack enable && corepack prepare pnpm@10 --activate
RUN pnpm install
-1
View File
@@ -185,7 +185,6 @@
"vite-plugin-ejs": "^1.7.0",
"vite-plugin-pwa": "^1.3.0"
},
"packageManager": "pnpm@11.5.2",
"pnpm": {
"onlyBuiltDependencies": [
"electron",
+298 -26
View File
@@ -6,7 +6,6 @@ settings:
overrides:
xml2js: 0.5.0
react-router: 7.14.0
importers:
@@ -187,8 +186,8 @@ importers:
specifier: ^2.16.1
version: 2.16.1(react@19.2.7)
react-router:
specifier: 7.14.0
version: 7.14.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
specifier: ^7.17.0
version: 7.17.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
react-split-pane:
specifier: ^3.2.0
version: 3.2.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
@@ -258,7 +257,7 @@ importers:
version: 8.18.1
'@vitejs/plugin-react':
specifier: ^5.2.0
version: 5.2.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0))
version: 5.2.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1))
babel-plugin-react-compiler:
specifier: ^1.0.0
version: 1.0.0
@@ -279,7 +278,7 @@ importers:
version: 4.0.0
electron-vite:
specifier: ^4.0.1
version: 4.0.1(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0))
version: 4.0.1(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1))
eslint:
specifier: ^9.39.4
version: 9.39.4(jiti@2.7.0)
@@ -330,7 +329,7 @@ importers:
version: 5.9.3
vite:
specifier: ^7.3.5
version: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)
version: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1)
vite-plugin-conditional-import:
specifier: ^0.1.7
version: 0.1.7
@@ -339,10 +338,10 @@ importers:
version: 1.6.0
vite-plugin-ejs:
specifier: ^1.7.0
version: 1.7.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0))
version: 1.7.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1))
vite-plugin-pwa:
specifier: ^1.3.0
version: 1.3.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
version: 1.3.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
packages:
@@ -880,8 +879,11 @@ packages:
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'}
'@cacheable/memory@2.0.8':
resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==}
'@bufbuild/protobuf@2.12.0':
resolution: {integrity: sha512-B/XlCaFIP8LOwzo+bz5uFzATYokcwCKQcghqnlfwSmM5eX/qTkvDBnDPs+gXtX/RyjxJ4DRikECcPJbyALA8FA==}
'@cacheable/memory@2.0.9':
resolution: {integrity: sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==}
'@cacheable/utils@2.4.1':
resolution: {integrity: sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==}
@@ -2266,7 +2268,6 @@ packages:
'@xmldom/xmldom@0.8.13':
resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==}
engines: {node: '>=10.0.0'}
deprecated: this version has critical issues, please update to the latest version
abbrev@3.0.1:
resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==}
@@ -2527,6 +2528,9 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
buffer-builder@0.2.0:
resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==}
buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
@@ -2677,6 +2681,9 @@ packages:
colord@2.9.3:
resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
colorjs.io@0.5.2:
resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==}
colornames@1.1.1:
resolution: {integrity: sha512-/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A==}
@@ -3655,6 +3662,9 @@ packages:
immer@10.2.0:
resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==}
immutable@5.1.6:
resolution: {integrity: sha512-q1swsS8K7L8usSHuOqF2TAoCCkonYz0SG38wLAggaa4Wml70zixIvt2ql4coQ2C2B3hTjltJry4r6bULwgAXLQ==}
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -4262,7 +4272,7 @@ packages:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
node-mpv@https://codeload.github.com/jeffvli/Node-MPV/tar.gz/32b4d64395289ad710c41d481d2707a7acfc228f:
resolution: {gitHosted: true, integrity: sha512-jWGM4rQH2NnorZ8BEG+AIEGqP3PzahlRosqJVGhd0Qu2sEu/aDG5FVO0nbMSbkYEeLMvB16PqXl+Hsd9xbQFgA==, tarball: https://codeload.github.com/jeffvli/Node-MPV/tar.gz/32b4d64395289ad710c41d481d2707a7acfc228f}
resolution: {gitHosted: true, tarball: https://codeload.github.com/jeffvli/Node-MPV/tar.gz/32b4d64395289ad710c41d481d2707a7acfc228f}
version: 2.0.0-beta.3
node-releases@2.0.47:
@@ -4706,8 +4716,8 @@ packages:
'@types/react':
optional: true
react-router@7.14.0:
resolution: {integrity: sha512-m/xR9N4LQLmAS0ZhkY2nkPA1N7gQ5TUVa5n8TgANuDTARbn1gt+zLPXEm7W0XDTbrQ2AJSJKhoa6yx1D8BcpxQ==}
react-router@7.17.0:
resolution: {integrity: sha512-FDELK7rTMlCHO5+reyXsPlmfr7N1F91lPHsWYfMEGQm/KQ+F4JFM8jGoeQDmDvdTs93Fw9aSilH+uKRb4/jXvQ==}
engines: {node: '>=20.0.0'}
peerDependencies:
react: '>=18'
@@ -4927,6 +4937,131 @@ packages:
sanitize-filename@1.6.4:
resolution: {integrity: sha512-9ZyI08PsvdQl2r/bBIGubpVdR3RR9sY6RDiWFPreA21C/EFlQhmgo20UZlNjZMMZNubusLhAQozkA0Od5J21Eg==}
sass-embedded-android-arm64@1.89.0:
resolution: {integrity: sha512-pr4R3p5R+Ul9ZA5nzYbBJQFJXW6dMGzgpNBhmaToYDgDhmNX5kg0mZAUlGLHvisLdTiR6oEfDDr9QI6tnD2nqA==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [android]
sass-embedded-android-arm@1.89.0:
resolution: {integrity: sha512-s6jxkEZQQrtyIGZX6Sbcu7tEixFG2VkqFgrX11flm/jZex7KaxnZtFace+wnYAgHqzzYpx0kNzJUpT+GXxm8CA==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [android]
sass-embedded-android-ia32@1.89.0:
resolution: {integrity: sha512-GoNnNGYmp1F0ZMHqQbAurlQsjBMZKtDd5H60Ruq86uQFdnuNqQ9wHKJsJABxMnjfAn60IjefytM5PYTMcAmbfA==}
engines: {node: '>=14.0.0'}
cpu: [ia32]
os: [android]
sass-embedded-android-riscv64@1.89.0:
resolution: {integrity: sha512-di+i4KkKAWTNksaQYTqBEERv46qV/tvv14TPswEfak7vcTQ2pj2mvV4KGjLYfU2LqRkX/NTXix9KFthrzFN51Q==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [android]
sass-embedded-android-x64@1.89.0:
resolution: {integrity: sha512-1cRRDAnmAS1wLaxfFf6PCHu9sKW8FNxdM7ZkanwxO9mztrCu/uvfqTmaurY9+RaKvPus7sGYFp46/TNtl/wRjg==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [android]
sass-embedded-darwin-arm64@1.89.0:
resolution: {integrity: sha512-EUNUzI0UkbQ6dASPyf09S3x7fNT54PjyD594ZGTY14Yh4qTuacIj27ckLmreAJNNu5QxlbhyYuOtz+XN5bMMxA==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [darwin]
sass-embedded-darwin-x64@1.89.0:
resolution: {integrity: sha512-23R8zSuB31Fq/MYpmQ38UR2C26BsYb66VVpJgWmWl/N+sgv/+l9ECuSPMbYNgM3vb9TP9wk9dgL6KkiCS5tAyg==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [darwin]
sass-embedded-linux-arm64@1.89.0:
resolution: {integrity: sha512-g9Lp57qyx51ttKj0AN/edV43Hu1fBObvD7LpYwVfs6u3I95r0Adi90KujzNrUqXxJVmsfUwseY8kA8zvcRjhYA==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
sass-embedded-linux-arm@1.89.0:
resolution: {integrity: sha512-KAzA1XD74d8/fiJXxVnLfFwfpmD2XqUJZz+DL6ZAPNLH1sb+yCP7brktaOyClDc/MBu61JERdHaJjIZhfX0Yqw==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [linux]
sass-embedded-linux-ia32@1.89.0:
resolution: {integrity: sha512-5fxBeXyvBr3pb+vyrx9V6yd7QDRXkAPbwmFVVhjqshBABOXelLysEFea7xokh/tM8JAAQ4O8Ls3eW3Eojb477g==}
engines: {node: '>=14.0.0'}
cpu: [ia32]
os: [linux]
sass-embedded-linux-musl-arm64@1.89.0:
resolution: {integrity: sha512-50oelrOtN64u15vJN9uJryIuT0+UPjyeoq0zdWbY8F7LM9294Wf+Idea+nqDUWDCj1MHndyPFmR1mjeuRouJhw==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
sass-embedded-linux-musl-arm@1.89.0:
resolution: {integrity: sha512-0Q1JeEU4/tzH7fwAwarfIh+Swn3aXG/jPhVsZpbR1c1VzkeaPngmXdmLJcVXsdb35tjk84DuYcFtJlE1HYGw4Q==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [linux]
sass-embedded-linux-musl-ia32@1.89.0:
resolution: {integrity: sha512-ILWqpTd+0RdsSw977iVAJf4CLetIbcQgLQf17ycS1N4StZKVRZs1bBfZhg/f/HU/4p5HondPAwepgJepZZdnFA==}
engines: {node: '>=14.0.0'}
cpu: [ia32]
os: [linux]
sass-embedded-linux-musl-riscv64@1.89.0:
resolution: {integrity: sha512-n2V+Tdjj7SAuiuElJYhWiHjjB1YU0cuFvL1/m5K+ecdNStfHFWIzvBT6/vzQnBOWjI4eZECNVuQ8GwGWCufZew==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [linux]
sass-embedded-linux-musl-x64@1.89.0:
resolution: {integrity: sha512-KOHJdouBK3SLJKZLnFYzuxs3dn+6jaeO3p4p1JUYAcVfndcvh13Sg2sLGfOfpg7Og6ws2Nnqnx0CyL26jPJ7ag==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
sass-embedded-linux-riscv64@1.89.0:
resolution: {integrity: sha512-0A/UWeKX6MYhVLWLkdX3NPKHO+mvIwzaf6TxGCy3vS3TODWaeDUeBhHShAr7YlOKv5xRGxf7Gx7FXCPV0mUyMA==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [linux]
sass-embedded-linux-x64@1.89.0:
resolution: {integrity: sha512-dRBoOFPDWctHPYK3hTk3YzyX/icVrXiw7oOjbtpaDr6JooqIWBe16FslkWyvQzdmfOFy80raKVjgoqT7DsznkQ==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
sass-embedded-win32-arm64@1.89.0:
resolution: {integrity: sha512-RnlVZ14hC/W7ubzvhqnbGfjU5PFNoFP/y5qycgCy+Mezb0IKbWvZ2Lyzux8TbL3OIjOikkNpfXoNQrX706WLAA==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [win32]
sass-embedded-win32-ia32@1.89.0:
resolution: {integrity: sha512-eFe9VMNG+90nuoE3eXDy+38+uEHGf7xcqalq5+0PVZfR+H9RlaEbvIUNflZV94+LOH8Jb4lrfuekhHgWDJLfSg==}
engines: {node: '>=14.0.0'}
cpu: [ia32]
os: [win32]
sass-embedded-win32-x64@1.89.0:
resolution: {integrity: sha512-AaGpr5R6MLCuSvkvDdRq49ebifwLcuGPk0/10hbYw9nh3jpy2/CylYubQpIpR4yPcuD1wFwFqufTXC3HJYGb0g==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [win32]
sass-embedded@1.89.0:
resolution: {integrity: sha512-EDrK1el9zdgJFpocCGlxatDWaP18tJBWoM1hxzo2KJBvjdmBichXI6O6KlQrigvQPO3uJ8DfmFmAAx7s7CG6uw==}
engines: {node: '>=16.0.0'}
hasBin: true
sax@1.6.0:
resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==}
engines: {node: '>=11.0.0'}
@@ -5232,6 +5367,14 @@ packages:
symlink-or-copy@1.3.1:
resolution: {integrity: sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==}
sync-child-process@1.0.2:
resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==}
engines: {node: '>=16.0.0'}
sync-message-port@1.2.0:
resolution: {integrity: sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==}
engines: {node: '>=16.0.0'}
synckit@0.11.13:
resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -5483,6 +5626,9 @@ packages:
resolution: {integrity: sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==}
engines: {node: '>= 10.13.0'}
varint@6.0.0:
resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
vinyl-contents@2.0.0:
resolution: {integrity: sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==}
engines: {node: '>=10.13.0'}
@@ -5741,6 +5887,11 @@ packages:
resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
engines: {node: '>=18'}
yaml@2.8.1:
resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==}
engines: {node: '>= 14.6'}
hasBin: true
yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
@@ -6488,7 +6639,10 @@ snapshots:
'@babel/helper-string-parser': 7.29.7
'@babel/helper-validator-identifier': 7.29.7
'@cacheable/memory@2.0.8':
'@bufbuild/protobuf@2.12.0':
optional: true
'@cacheable/memory@2.0.9':
dependencies:
'@cacheable/utils': 2.4.1
'@keyv/bigmap': 1.3.1(keyv@5.6.0)
@@ -7737,7 +7891,7 @@ snapshots:
'@typescript-eslint/types': 8.60.1
eslint-visitor-keys: 5.0.1
'@vitejs/plugin-react@5.2.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0))':
'@vitejs/plugin-react@5.2.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1))':
dependencies:
'@babel/core': 7.29.7
'@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7)
@@ -7745,7 +7899,7 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-rc.3
'@types/babel__core': 7.20.5
react-refresh: 0.18.0
vite: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)
vite: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -8091,6 +8245,9 @@ snapshots:
node-releases: 2.0.47
update-browserslist-db: 1.2.3(browserslist@4.28.2)
buffer-builder@0.2.0:
optional: true
buffer-crc32@0.2.13: {}
buffer-from@1.1.2: {}
@@ -8174,7 +8331,7 @@ snapshots:
cacheable@2.3.5:
dependencies:
'@cacheable/memory': 2.0.8
'@cacheable/memory': 2.0.9
'@cacheable/utils': 2.4.1
hookified: 1.15.1
keyv: 5.6.0
@@ -8287,6 +8444,9 @@ snapshots:
colord@2.9.3: {}
colorjs.io@0.5.2:
optional: true
colornames@1.1.1: {}
colors@1.4.0: {}
@@ -8651,7 +8811,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
electron-vite@4.0.1(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)):
electron-vite@4.0.1(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1)):
dependencies:
'@babel/core': 7.29.7
'@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7)
@@ -8659,7 +8819,7 @@ snapshots:
esbuild: 0.25.12
magic-string: 0.30.21
picocolors: 1.1.1
vite: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)
vite: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -9556,6 +9716,9 @@ snapshots:
immer@10.2.0: {}
immutable@5.1.6:
optional: true
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -10526,7 +10689,7 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.17
react-router@7.14.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
react-router@7.17.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies:
cookie: 1.1.1
react: 19.2.7
@@ -10789,6 +10952,99 @@ snapshots:
dependencies:
truncate-utf8-bytes: 1.0.2
sass-embedded-android-arm64@1.89.0:
optional: true
sass-embedded-android-arm@1.89.0:
optional: true
sass-embedded-android-ia32@1.89.0:
optional: true
sass-embedded-android-riscv64@1.89.0:
optional: true
sass-embedded-android-x64@1.89.0:
optional: true
sass-embedded-darwin-arm64@1.89.0:
optional: true
sass-embedded-darwin-x64@1.89.0:
optional: true
sass-embedded-linux-arm64@1.89.0:
optional: true
sass-embedded-linux-arm@1.89.0:
optional: true
sass-embedded-linux-ia32@1.89.0:
optional: true
sass-embedded-linux-musl-arm64@1.89.0:
optional: true
sass-embedded-linux-musl-arm@1.89.0:
optional: true
sass-embedded-linux-musl-ia32@1.89.0:
optional: true
sass-embedded-linux-musl-riscv64@1.89.0:
optional: true
sass-embedded-linux-musl-x64@1.89.0:
optional: true
sass-embedded-linux-riscv64@1.89.0:
optional: true
sass-embedded-linux-x64@1.89.0:
optional: true
sass-embedded-win32-arm64@1.89.0:
optional: true
sass-embedded-win32-ia32@1.89.0:
optional: true
sass-embedded-win32-x64@1.89.0:
optional: true
sass-embedded@1.89.0:
dependencies:
'@bufbuild/protobuf': 2.12.0
buffer-builder: 0.2.0
colorjs.io: 0.5.2
immutable: 5.1.6
rxjs: 7.8.2
supports-color: 8.1.1
sync-child-process: 1.0.2
varint: 6.0.0
optionalDependencies:
sass-embedded-android-arm: 1.89.0
sass-embedded-android-arm64: 1.89.0
sass-embedded-android-ia32: 1.89.0
sass-embedded-android-riscv64: 1.89.0
sass-embedded-android-x64: 1.89.0
sass-embedded-darwin-arm64: 1.89.0
sass-embedded-darwin-x64: 1.89.0
sass-embedded-linux-arm: 1.89.0
sass-embedded-linux-arm64: 1.89.0
sass-embedded-linux-ia32: 1.89.0
sass-embedded-linux-musl-arm: 1.89.0
sass-embedded-linux-musl-arm64: 1.89.0
sass-embedded-linux-musl-ia32: 1.89.0
sass-embedded-linux-musl-riscv64: 1.89.0
sass-embedded-linux-musl-x64: 1.89.0
sass-embedded-linux-riscv64: 1.89.0
sass-embedded-linux-x64: 1.89.0
sass-embedded-win32-arm64: 1.89.0
sass-embedded-win32-ia32: 1.89.0
sass-embedded-win32-x64: 1.89.0
optional: true
sax@1.6.0: {}
scheduler@0.27.0: {}
@@ -11186,6 +11442,14 @@ snapshots:
symlink-or-copy@1.3.1: {}
sync-child-process@1.0.2:
dependencies:
sync-message-port: 1.2.0
optional: true
sync-message-port@1.2.0:
optional: true
synckit@0.11.13:
dependencies:
'@pkgr/core': 0.3.6
@@ -11457,6 +11721,9 @@ snapshots:
value-or-function@4.0.0: {}
varint@6.0.0:
optional: true
vinyl-contents@2.0.0:
dependencies:
bl: 5.1.0
@@ -11519,23 +11786,23 @@ snapshots:
fast-glob: 3.3.3
magic-string: 0.30.21
vite-plugin-ejs@1.7.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)):
vite-plugin-ejs@1.7.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1)):
dependencies:
ejs: 3.1.10
vite: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)
vite: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1)
vite-plugin-pwa@1.3.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0):
vite-plugin-pwa@1.3.0(vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0):
dependencies:
debug: 4.4.3
pretty-bytes: 6.1.1
tinyglobby: 0.2.17
vite: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)
vite: 7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1)
workbox-build: 7.3.0(@types/babel__core@7.20.5)
workbox-window: 7.3.0
transitivePeerDependencies:
- supports-color
vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0):
vite@7.3.5(@types/node@24.13.1)(jiti@2.7.0)(sass-embedded@1.89.0)(sugarss@5.0.1(postcss@8.5.15))(terser@5.48.0)(yaml@2.8.1):
dependencies:
esbuild: 0.27.7
fdir: 6.5.0(picomatch@4.0.4)
@@ -11547,8 +11814,10 @@ snapshots:
'@types/node': 24.13.1
fsevents: 2.3.3
jiti: 2.7.0
sass-embedded: 1.89.0
sugarss: 5.0.1(postcss@8.5.15)
terser: 5.48.0
yaml: 2.8.1
void-elements@3.1.0: {}
@@ -11799,6 +12068,9 @@ snapshots:
yallist@5.0.0: {}
yaml@2.8.1:
optional: true
yargs-parser@21.1.1: {}
yargs@17.7.2:
-9
View File
@@ -1,9 +0,0 @@
allowBuilds:
abstract-socket: true
electron: true
electron-winstaller: true
esbuild: true
overrides:
"xml2js": "0.5.0"
"react-router": "7.14.0"
+1 -2
View File
@@ -1182,8 +1182,7 @@
"sleepTimer_setCustom": "Configura el temporitzador",
"sleepTimer_cancel": "Cancel·la el temporitzador",
"albumRadio": "Ràdio d'àlbums",
"scrobbleForceSubmit": "Força l'scrobble",
"sleepTimer_endOfAlbum": "Final de l'àlbum actual"
"scrobbleForceSubmit": "Força l'scrobble"
},
"error": {
"credentialsRequired": "Credencials requerides",
+2 -453
View File
@@ -685,7 +685,7 @@
"skip_forward": "Hüppa edasi",
"stop": "Peata",
"toggleFullscreenPlayer": "Täisekraani lüliti",
"trackRadio": "Looraadio",
"trackRadio": "Pala raadio",
"unfavorite": "Eemalda lemmikutest",
"pause": "Paus",
"viewQueue": "Kuva järjekord",
@@ -952,463 +952,12 @@
"musicbrainz": "Kuva MusicBrainzi linke",
"qobuz_description": "Kuva esitaja/albumi lehtedel Qobuz linke",
"qobuz": "Kuva Qobuzi linke",
"spotify_description": "Kuva artisti/albumi lehtedel Spotify linke",
"spotify": "Kuva Spotify linke",
"nativeSpotify_description": "Ava brauseri asemel Spotify rakenduses",
"nativeSpotify": "Kasuta Spotify rakendust",
"neteaseTranslation_description": "Sisselülitamisel otsitakse ja kuvatakse võimaluse korral NetEase'ist pärit tõlgitud laulusõnu",
"neteaseTranslation": "Luba NetEase'i tõlked",
"notify": "Luba lauluteavitused",
"notify_description": "Näita teavitust, kui lugu vahetub",
"pathReplace": "Failitee asendamine",
"pathReplace_description": "Asenda oma serveri vaikimisi failitee",
"pathReplace_optionRemovePrefix": "Eemalda eesliide",
"pathReplace_optionAddPrefix": "Lisa eesliide",
"passwordStore_description": "Millist paroolihoidlat kasutada. Muuda seda juhul, kui paroolide salvestamisega on probleeme",
"passwordStore": "Paroolihoidla",
"playerFilters": "Filtreeri lugusid järjekorrast",
"playerFilters_description": "Jäta lood järjekorda lisamata järgmiste kriteeriumide põhjal",
"playbackStyle_description": "Vali pleieri esitusstiil",
"playbackStyle_optionCrossFade": "Ristvahetus",
"playbackStyle_optionNormal": "Tavaline",
"playbackStyle": "Taasesituse stiil",
"playButtonBehavior_description": "Määrab esitusnupu vaikimisi käitumise lugude järjekorda lisamisel",
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"playButtonBehavior_optionPlay": "$t(player.play)",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"playButtonBehavior": "Esitusnupu käitumine",
"artistRadioCount_description": "Määrab lugude arvu, mis laetakse esitaja- ja looraadio jaoks",
"artistRadioCount": "Esitaja-/looraadio lugude arv",
"imageResolution": "Pildi resolutsioon",
"imageResolution_description": "Rakenduses kasutatavate piltide resolutsioon. Väärtuse 0 puhul kasutatakse pildi algset resolutsiooni",
"imageResolution_optionTable": "Tabel",
"imageResolution_optionItemCard": "Elemendikaart",
"imageResolution_optionSidebar": "Külgriba",
"imageResolution_optionHeader": "Päis",
"imageResolution_optionFullScreenPlayer": "Täisekraanpleier",
"playerbarOpenDrawer_description": "Võimaldab esitusribal klõpsates avada täisekraanpleieri",
"playerbarOpenDrawer": "Esitusriba täisekraani lüliti",
"playerbarSlider": "Esitusriba liugur",
"playerbarSlider_description": "Helilaine kuvamist ei soovitata aeglase või mahupiiranguga internetiühenduse puhul",
"playerbarSliderType_optionSlider": "Liugur",
"playerbarSliderType_optionWaveform": "Helilaine",
"playerbarWaveformAlign": "Helilaine joondus",
"playerbarWaveformAlign_optionTop": "Üleval",
"playerbarWaveformAlign_optionCenter": "Keskel",
"playerbarWaveformAlign_optionBottom": "All",
"playerbarWaveformBarWidth": "Helilaine riba laius",
"playerbarWaveformGap": "Helilaine ribade vahe",
"playerbarWaveformRadius": "Helilaine ribade ümarus",
"playerbarWaveformStretch": "Helilaine venitus",
"playerbarWaveformStretch_description": "Venitab helilainet, et täita kogu olemasolev ala",
"preferLocalLyrics_description": "Eelista kohalikke laulusõnu kaugserveri omadele",
"preferLocalLyrics": "Eelista kohalikke laulusõnu",
"showLyricsInSidebar_description": "Esitusjärjekorrale lisatakse paneel laulusõnade kuvamiseks",
"showLyricsInSidebar": "Kuva laulusõnu pleieri külgribal",
"sidebarPlaylistFolderView": "Kaustavaade",
"sidebarPlaylistFolderView_optionSingle": "Üks kaust",
"showRatings_description": "Määrab, kas kasutajaliideses kuvatakse tärnidega hindamise võimalus",
"showRatings": "Kuva tärnidega hindamine",
"blurExplicitImages": "Hägusta mittesobiliku sisuga pildid",
"blurExplicitImages_description": "Albumi- ja loopildid, millel on mittesobiliku sisu hoiatus, hägustatakse",
"enableGridMultiSelect": "Luba ruudustikus mitme elemendi valimine",
"enableGridMultiSelect_description": "Sisselülitamisel võimaldab see ruudustikuvaates korraga mitut elementi valida. Väljalülitamisel viib pildile klikkimine otse selle elemendi lehele",
"showVisualizerInSidebar_description": "Pleieri külgribale lisatakse paneel, mis kuvab muusika visuaali",
"showVisualizerInSidebar": "Kuva visualiseerija pleieri külgribal",
"combinedLyricsAndVisualizer_description": "Ühenda laulusõnad ja visualiseerija ühte paneeli",
"combinedLyricsAndVisualizer": "Ühenda laulusõnad ja visualiseerija pleieri külgribal",
"preservePitch_description": "Säilitab taasesituse kiiruse muutmisel helikõrguse",
"preservePitch": "Säilita helikõrgus",
"audioFadeOnStatusChange": "Heli hääbumine oleku muutumisel",
"audioFadeOnStatusChange_description": "Lülitab sisse heli sujuva vaibumise ja sissetulemise, kui muusika pannakse mängima või pausile",
"preventSleepOnPlayback_description": "Keela ekraani välja lülitamine muusika esitamisel",
"preventSleepOnPlayback": "Keela unerežiim taasesituse ajal",
"preventSuspendOnPlayback_description": "Keela rakenduse ooterežiim muusika esitamisel",
"preventSuspendOnPlayback": "Keela ooterežiim taasesituse ajal",
"remotePassword_description": "Määrab parooli kaugjuhtimisserveri jaoks. Need sisselogimisandmed edastatakse vaikimisi krüpteerimata, seega on soovitatav valida unikaalne parool, millest pole sul kahju",
"remotePassword": "Kaugjuhtimisserveri parool",
"remotePort_description": "Määrab kaugjuhtimisserveri pordi",
"remotePort": "Kaugjuhtimisserveri port",
"remoteUsername_description": "Määrab kaugjuhtimisserveri kasutajanime. Kui nii kasutajanimi kui ka parool on tühjad, lülitatakse isikutuvastus välja",
"remoteUsername": "Kaugjuhtimisserveri kasutajanimi",
"replayGainClipping_description": "Takista {{ReplayGain}}i põhjustatud heli moonutamine, vähendades automaatselt helitugevust",
"replayGainClipping": "{{ReplayGain}}i moonutuste vältimine",
"replayGainFallback_description": "Rakendatav võimendus (dB), kui failil puuduvad {{ReplayGain}}i sildid",
"replayGainFallback": "{{ReplayGain}}i varuväärtus",
"replayGainMode_description": "Kohandab helitugevust vastavalt faili metaandmetesse salvestatud {{ReplayGain}}i väärtustele",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainMode": "{{ReplayGain}} režiim",
"replayGainPreamp_description": "Kohandab {{ReplayGain}}i väärtustele rakendatavat eelvõimendust",
"replayGainPreamp": "{{ReplayGain}}i eelvõimendus (dB)",
"sampleRate_description": "Vali väljundi diskreetimissagedus juhuks, kui valitud sagedus erineb esitatava meedia omast. Väärtus, mis on väiksem kui 8000, kasutab vaikimisi sagedust",
"sampleRate": "Diskreetimissagedus",
"savePlayQueue_description": "Salvesta esitusjärjekord rakenduse sulgemisel ja taasta see rakenduse avamisel",
"savePlayQueue": "Salvesta esitusjärjekord",
"showSkipButton_description": "Kuva või peida esitusribal kerimise nuppe",
"showSkipButton": "Kuva kerimisnupud",
"showSkipButtons_description": "Kuva või peida esitusribal kerimise nuppe",
"showSkipButtons": "Kuva kerimisnupud",
"sidebarCollapsedNavigation_description": "Kuva või peida navigeerimine ahendatud külgribal",
"sidebarCollapsedNavigation": "Külgriba (ahendatud) navigeerimine",
"sidebarConfiguration_description": "Vali külgriba elemendid ja nende järjekord",
"sidebarConfiguration": "Külgriba seadistus",
"playerItemConfiguration_description": "Vali täisekraanil kuvatava pleieri elemendid ja nende järjekord",
"playerItemConfiguration": "Pleieri elementide seadistus",
"sidebarPlaylistFolders_description": "Loo kaustavaade esitusloenditele, mille nimes sisaldub seadistatud eraldusmärk",
"sidebarPlaylistFolders": "Luba kaustad",
"sidebarPlaylistFolderSeparator_description": "Tähemärk, mis eraldab esitusloendi nimes kaustatasemeid",
"sidebarPlaylistFolderSeparator": "Kaustade eraldusmärk",
"sidebarPlaylistFolderView_description": "Kuidas kuvada kaustu külgribal",
"sidebarPlaylistFolderView_optionTree": "Puuvaade",
"sidebarPlaylistFolderView_optionNavigation": "Navigatsioonivaade",
"sidebarPlaylistFolderTreeIndent_description": "Puuvaate tasemete taane pikslites",
"sidebarPlaylistFolderTreeIndent": "Puuvaate taane",
"sidebarPlaylistFolderTreeLineColor_description": "Puuvaate ühendusjoonte värv (vaiketeema puhul jäta tühjaks)",
"sidebarPlaylistFolderTreeLineColor": "Ühendusjoonte värv",
"sidebarPlaylistList_description": "Kuva või peida esitusloendite loend külgribal",
"sidebarPlaylistList": "Esitusloendid külgribal",
"sidebarPlaylistMode_description": "Kuidas kuvada esitusloendeid külgriba loendis",
"sidebarPlaylistMode": "Külgriba esitusloendite vaade",
"sidebarPlaylistMode_optionCompact": "Kompaktne",
"sidebarPlaylistMode_optionExpanded": "Laiendatud",
"sidebarPlaylistSorting_description": "Lubab esitusloendeid külgribal lohistades käsitsi järjestada, asendades serveri vaikejärjestuse",
"sidebarPlaylistSorting": "Külgriba esitusloendite järjestus",
"sidebarPlaylistListFilterRegex_description": "Peida külgribalt esitusloendid, mis ühtivad selle regulaaravaldisega",
"sidebarPlaylistListFilterRegex_placeholder": "Näiteks ^tänane miks.*",
"sidebarPlaylistListFilterRegex": "Esitusloendite filtri regulaaravaldis",
"sidePlayQueueStyle_description": "Määrab külgriba esitusjärjekorra stiili",
"sidePlayQueueStyle_optionAttached": "Kinnitatud",
"sidePlayQueueStyle_optionDetached": "Eraldatud",
"sidePlayQueueLayout": "Külgriba esitusjärjekorra paigutus",
"sidePlayQueueLayout_description": "Määrab kinnitatud külgriba esitusjärjekorra paigutuse",
"sidePlayQueueLayout_optionHorizontal": "Horisontaalne",
"sidePlayQueueLayout_optionVertical": "Vertikaalne",
"mediaSession_description": "Lubab meediaseansi integratsiooni, kuvades juhtnupud ja metaandmed süsteemsel helitugevuse paneelil ning lukustuskuval. Vajab Web Audio pleierit.",
"mediaSession": "Luba meediaseanss",
"sidePlayQueueStyle": "Külgmise esitusjärjekorra stiil",
"skipDuration_description": "Määrab aja, mille võrra edasi või tagasi hüpata, kasutades esitusriba hüppenuppe",
"skipDuration": "Hüppe kestus",
"skipPlaylistPage_description": "Esitusloendile liikudes ava vaikelehe asemel kohe laulude nimekiri",
"skipPlaylistPage": "Jäta esitusloendi leht vahele",
"startMinimized_description": "Käivita rakendus süsteemisalves",
"startMinimized": "Käivita minimeerituna",
"theme_description": "Määrab rakenduses kasutatava teema",
"theme": "Teema",
"themeDark_description": "Määrab rakenduses kasutatava tumeda teema",
"themeDark": "Teema (tume)",
"themeLight_description": "Määrab rakenduses kasutatava heleda teema",
"themeLight": "Teema (hele)",
"transcode": "Luba transkoodimine",
"transcode_description": "Võimaldab transkoodimise erinevatesse vormingutesse",
"transcodeBitrate_description": "Valib transkoodimise bitikiiruse. 0 tähendab, et server valib ise",
"transcodeBitrate": "Transkoodimise bitikiirus",
"transcodeFormat_description": "Valib transkoodimise vormingu. Jäta tühjaks, et lasta serveril otsustada",
"transcodeFormat": "Transkoodimise vorming",
"translationApiKey_description": "API-võti tõlkimiseks (ainult globaalse teenuse lõpp-punkt)",
"translationApiKey": "Tõlketeenuse API-võti",
"translationApiProvider_description": "Tõlketeenuse API pakkuja",
"translationApiProvider": "Tõlke-API pakkuja",
"translationTargetLanguage_description": "Sihtkeel tõlkimiseks",
"translationTargetLanguage": "Tõlke sihtkeel",
"trayEnabled_description": "Kuva/peida salveikoon/-menüü. Kui keelatud, keelatakse ka süsteemisalve minimeerimine/sulgemine",
"trayEnabled": "Kuva salveikoon",
"useSystemTheme_description": "Järgi süsteemis määratud heledat või tumedat kujundust",
"useSystemTheme": "Kasuta süsteemi teemat",
"volumeWheelStep_description": "Helitugevuse muutmise samm, kui kerida hiirerattaga heliribal",
"volumeWheelStep": "Hiirerattaga muutmise samm",
"volumeWidth_description": "Helitugevuse riba laius",
"volumeWidth": "Heliriba laius",
"waveformLoadingDelay": "Helilaine laadimise viivitus",
"waveformLoadingDelay_description": "Viivitus sekundites enne helilaine laadimist. Suurenda seda väärtust, kui veebipleieri kasutamisel esineb hakkimist.",
"webAudio_description": "Kasuta veebiheli. See võimaldab täpsemaid funktsioone, nagu näiteks ReplayGain. Lülita see välja, kui esineb probleeme",
"webAudio": "Kasuta veebiheli",
"windowBarStyle_description": "Vali akna päiseriba stiil",
"windowBarStyle": "Akna päiseriba stiil",
"zoom_description": "Määrab rakenduse suurenduse protsendi",
"zoom": "Suurenduse protsent",
"queryBuilder": "Päringu koostaja",
"queryBuilderCustomFields_inputLabel": "Nimetus",
"queryBuilderCustomFields_inputTag": "Silt",
"queryBuilderCustomFields": "Kohandatud väljad",
"queryBuilderCustomFields_description": "Lisa kohandatud välju, mida päringukoosturis kasutada"
"spotify_description": "Kuva artisti/albumi lehtedel Spotify linke"
},
"datetime": {
"minuteShort": "m",
"secondShort": "s",
"hourShort": "t",
"dayShort": "p"
},
"visualizer": {
"options": {
"weightingFilter": {
"z": "Z",
"d": "D",
"c": "C",
"b": "B",
"a": "A",
"none": "Puudub"
},
"colorMode": {
"gradient": "Värviüleminek",
"barIndex": "Riba number",
"barLevel": "Riba tase"
},
"gradient": {
"classic": "Klassikaline",
"prism": "Prisma",
"rainbow": "Vikerkaar",
"steelblue": "Terassinine",
"orangered": "Oranžpunane"
},
"channelLayout": {
"single": "Üksik",
"dualCombined": "Kombineeritud kaksikvaade",
"dualHorizontal": "Horisontaalne kaksikvaade",
"dualVertical": "Vertikaalne kaksikvaade"
},
"frequencyScale": {
"none": "Puudub",
"bark": "Barki skaala",
"linear": "Lineaarne skaala",
"log": "Logaritmiline skaala",
"mel": "Meli skaala"
},
"mode": {
"0": "[0] Eraldatud sagedused",
"1": "[1] 1/24 oktav / 240 sagedusriba",
"2": "[2] 1/12 oktav / 120 sagedusriba",
"3": "[3] 1/8 oktav / 80 sagedusriba",
"4": "[4] 1/6 oktav / 60 sagedusriba",
"5": "[5] 1/4 oktav / 40 sagedusriba",
"6": "[6] 1/3 oktav / 30 sagedusriba",
"7": "[7] Pooloktav / 20 sagedusriba",
"8": "[8] Täisoktav / 10 sagedusriba",
"10": "[10] Joon- / pindgraafik"
}
},
"colors": "Värvid",
"builtIn": "Sisseehitatud",
"custom": "Kohandatud",
"remove": "Eemalda",
"level": "Tase",
"systemAudioConsentAllow": "Luba",
"systemAudioConsentBody": "Visualiseerija vajab töötamiseks juurdepääsu süsteemi helile",
"systemAudioConsentDecline": "Keeldu",
"systemAudioConsentTitle": "Kas lubada ligipääs süsteemi helile?",
"systemAudioCaptureFailed": "Hõivamist ei saanud alustada: {{message}}",
"systemAudioNoAudioTrack": "Heliriba ei tagastatud. Veendu, et lubad küsimisel heli hõive.",
"systemAudioExclusiveModeNotSupported": "Visualiseerija pole saadaval, kui eksklusiivne helirežiim on sisse lülitatud. Lülita MPV seadetes eksklusiivne helirežiim välja ja proovi uuesti.",
"visualizerType": "Visualiseerija tüüp",
"cyclePresets": "Tsükli eelseadistused",
"cycleTime": "Tsükli aeg (sekundites)",
"includeAllPresets": "Kaasa kõik eelseadistused",
"ignoredPresets": "Eiratud eelseadistused",
"selectedPresets": "Valitud eelseadistused",
"randomizeNextPreset": "Vali järgmine eelseadistus juhuslikult",
"blendTime": "Segamisaeg",
"presets": "Eelseadistused",
"selectPreset": "Vali eelseadistus",
"applyPreset": "Rakenda eelseadistus",
"saveAsPreset": "Salvesta eelseadistusena",
"updatePreset": "Uuenda eelseadistus",
"copyConfiguration": "Kopeeri seadistus",
"pasteConfiguration": "Kleebi seadistus",
"pasteConfigurationPlaceholder": "Kleebi JSON-seadistus siia...",
"pasteFromClipboard": "Kleebi lõikelaualt",
"applyConfiguration": "Rakenda seadistus",
"configCopied": "Seadistus kopeeriti lõikelauale",
"configCopyFailed": "Seadistuse kopeerimine nurjus",
"configPasted": "Seadistus rakendati edukalt",
"configPasteFailed": "Seadistuse rakendamine nurjus. Kontrolli vormingut.",
"configPasteReadFailed": "Lõikelaualt lugemine nurjus",
"presetName": "Eelseadistuse nimi",
"presetNamePlaceholder": "Sisesta eelseadistuse nimi",
"general": "Üldine",
"mode": "Režiim",
"mode1To8": "Režiim 18",
"mode10": "Režiim 10",
"barSpace": "Tulpade vahe",
"lineWidth": "Joone paksus",
"fillAlpha": "Täite läbipaistvus",
"channelLayout": "Kanalite paigutus",
"maxFPS": "Suurim FPS",
"opacity": "Läbipaistmatus",
"customGradients": "Kohandatud värviüleminekud",
"addCustomGradient": "Lisa kohandatud värviüleminek",
"gradientName": "Värviülemineku nimi",
"gradientNamePlaceholder": "Värviülemineku nimi",
"vertical": "Vertikaalne",
"horizontal": "Horisontaalne",
"colorStops": "Värvipunktid",
"addColor": "Lisa värv",
"position": "Asukoht",
"pasteGradient": "Aseta värviüleminek",
"pasteGradientPlaceholder": "Aseta värviülemineku JSON siia...",
"colorMode": "Värvirežiim",
"gradient": "Värviüleminek",
"gradientLeft": "Värviüleminek vasakul",
"gradientRight": "Värviüleminek paremal",
"fft": "FFT",
"fftSize": "FFT suurus",
"smoothing": "Sujuvus",
"frequencyRangeAndScaling": "Sagedusvahemik ja skaala",
"minimumFrequency": "Väikseim sagedus",
"maximumFrequency": "Suurim sagedus",
"frequencyScale": "Sagedusskaala",
"sensitivity": "Tundlikkus",
"weightingFilter": "Kaalufilter",
"minimumDecibels": "Minimaalsed detsibellid",
"maximumDecibels": "Maksimaalsed detsibellid",
"linearAmplitude": "Lineaarne amplituud",
"linearBoost": "Lineaarne võimendus",
"peakBehavior": "Tippväärtuste kuvamine",
"showPeaks": "Kuva tippväärtused",
"fadePeaks": "Hajuta tippväärtused",
"peakLine": "Tippväärtuste joon",
"gravity": "Raskusjõud",
"peakFadeTime": "Tippude hajumisaeg (ms)",
"peakHoldTime": "Tippude hoidmisaeg (ms)",
"radialSpectrum": "Ringikujuline spekter",
"radial": "Radiaalne",
"radialInvert": "Radiaalne pööramine",
"spinSpeed": "Pöörlemiskiirus",
"radius": "Raadius",
"reflexMirror": "Peegeldus",
"reflexFit": "Peegelduse sobitamine",
"reflexRatio": "Peegelduse suhe",
"reflexAlpha": "Peegelduse läbipaistvus",
"reflexBrightness": "Peegelduse heledus",
"mirror": "Peegel",
"miscellaneousSettings": "Varia",
"alphaBars": "Läbipaistvad ribad",
"ansiBands": "ANSI ribad",
"ledBars": "LED ribad",
"trueLeds": "Päris LED-id",
"lumiBars": "Lumi ribad",
"outlineBars": "Kontuurribad",
"roundBars": "Ümarad ribad",
"lowResolution": "Madal eraldusvõime",
"splitGradient": "Jagatud värviüleminek",
"showFPS": "Kuva kaadrisagedus",
"showScaleX": "Kuva X-telje skaala",
"noteLabels": "Noodinimed",
"showScaleY": "Kuva Y-telje skaala"
},
"table": {
"column": {
"album": "Album",
"albumArtist": "Albumi esitaja",
"albumCount": "Albumid",
"artist": "Esitaja",
"biography": "Biograafia",
"bitDepth": "Bititihedus",
"bitrate": "Bitikiirus",
"bpm": "BPM",
"codec": "Koodek",
"comment": "Kommentaar",
"dateAdded": "Lisatud",
"discNumber": "Plaat",
"favorite": "Lemmik",
"genre": "Žanr",
"lastPlayed": "Viimati esitatud",
"path": "Asukoht",
"playCount": "Esitusi",
"rating": "Hinne",
"releaseDate": "Ilmumiskuupäev",
"releaseYear": "Aasta",
"sampleRate": "Diskreetimissagedus",
"size": "Suurus",
"title": "Pealkiri",
"trackNumber": "Lugu",
"owner": "Omanik",
"channels": "Kanalid",
"songCount": "Lood"
},
"config": {
"general": {
"advancedSettings": "Täpsemad seaded",
"autoFitColumns": "Mahuta veerud automaatselt",
"autosize": "Mahuta automaatselt",
"moveUp": "Liigu üles",
"moveDown": "Liigu alla",
"pinToLeft": "Kinnita vasakule",
"pinToRight": "Kinnita paremale",
"alignLeft": "Joonda vasakule",
"alignCenter": "Joonda keskele",
"alignRight": "Joonda paremale",
"followCurrentSong": "Jälgi praegust lugu",
"displayType": "Kuvamisviis",
"gap": "$t(common.gap)",
"itemGap": "Elementide vahe (px)",
"itemSize": "Elemendi suurus (px)",
"itemsPerRow": "Elementide arv real",
"size": "$t(common.size)",
"size_default": "Vaikimisi",
"size_compact": "Kompaktne",
"size_large": "Suur",
"tableColumns": "Tabeli veerud",
"pagination": "Lehekülgedeks jagamine",
"pagination_itemsPerPage": "Elementide arv lehel",
"pagination_infinite": "Piiramatu",
"pagination_paginate": "Lehekülgedeks jagatud",
"alternateRowColors": "Erinevat värvi read",
"horizontalBorders": "Ridade piirjooned",
"rowHoverHighlight": "Rea esiletõstmine kursoriga",
"showHeader": "Kuva päis",
"verticalBorders": "Veergude piirjooned"
},
"label": {
"actions": "$t(common.action, {\"count\": 2})",
"album": "$t(entity.album, {\"count\": 1})",
"albumGroup": "Albumirühm",
"albumCount": "$t(entity.album, {\"count\": 2})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitDepth": "$t(common.bitDepth)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"composer": "Helilooja",
"dateAdded": "Lisatud",
"discNumber": "Plaadi number",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre, {\"count\": 1})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
"image": "Pilt",
"lastPlayed": "Viimati esitatud",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"playCount": "Esitusi",
"rating": "$t(common.rating)",
"releaseDate": "Ilmumiskuupäev",
"rowIndex": "Rea number",
"sampleRate": "$t(common.sampleRate)",
"size": "$t(common.size)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleArtist": "$t(common.title) (artist)",
"titleCombined": "$t(common.title) (kombineeritud)",
"trackNumber": "Loo number",
"year": "$t(common.year)"
},
"view": {
"detail": "Detail",
"grid": "Ruudustik",
"list": "Loend",
"table": "Tabel"
}
}
},
"dragDropZone": {
"error_oneFileOnly": "Vali ainult üks fail",
"error_readingFile": "Faili lugemisel tekkis viga: {{errorMessage}}",
"mainText": "Lohista fail siia"
}
}
+20 -20
View File
@@ -5,7 +5,7 @@
"bitrate": "位元率",
"bpm": "BPM",
"clear": "清空",
"collapse": "疊",
"collapse": "疊",
"comingSoon": "即將推出…",
"confirm": "確認",
"decrease": "降低",
@@ -18,9 +18,9 @@
"add": "新增",
"areYouSure": "你確定嗎?",
"ascending": "升冪",
"disable": "用",
"disable": "用",
"disc": "光碟",
"dismiss": "不理會",
"dismiss": "不再顯示",
"duration": "時長",
"edit": "編輯",
"enable": "啟用",
@@ -64,9 +64,9 @@
"cancel": "取消",
"center": "中央",
"channel_other": "聲道",
"configure": "配置",
"configure": "設定",
"create": "建立",
"currentSong": "當前 $t(entity.track, {\"count\": 1})",
"currentSong": "目前$t(entity.track, {\"count\": 1})",
"minimize": "最小化",
"modified": "已修改",
"name": "名稱",
@@ -75,13 +75,13 @@
"noResultsFromQuery": "未查詢到匹配結果",
"note": "注釋",
"additionalParticipants": "額外參與者",
"newVersion": "新版本 ({{version}}) 已被安裝",
"newVersion": "已安裝新版本 ({{version}})",
"viewReleaseNotes": "查看發行註記",
"albumGain": "專輯增益",
"albumPeak": "專輯峰值",
"bitDepth": "位元深度",
"close": "關閉",
"codec": "編解碼器",
"codec": "編",
"mbid": "MusicBrainz ID",
"preview": "預覽",
"reload": "重新載入",
@@ -204,7 +204,7 @@
},
"appMenu": {
"openBrowserDevtools": "開啟瀏覽器開發者工具",
"collapseSidebar": "疊側邊欄",
"collapseSidebar": "疊側邊欄",
"expandSidebar": "展開側邊欄",
"goBack": "返回",
"goForward": "前進",
@@ -381,7 +381,7 @@
"playbackSpeed": "播放速度",
"playRandom": "隨機播放",
"previous": "上一首",
"queue_clear": "清空佇列",
"queue_clear": "清空播放佇列",
"queue_remove": "移除所選",
"repeat": "循環",
"repeat_all": "全部循環",
@@ -446,7 +446,7 @@
"crossfadeStyle_description": "選擇用於音訊播放器的淡入淡出風格",
"customFontPath": "自訂字型路徑",
"customFontPath_description": "設定應用程式要使用的自訂字型路徑",
"disableLibraryUpdateOnStartup": "用啟動時檢查新版本",
"disableLibraryUpdateOnStartup": "用啟動時檢查新版本",
"discordApplicationId": "{{discord}} 應用程式 ID",
"discordApplicationId_description": "{{discord}} Rich Presence 應用程式 ID(預設為 {{defaultId}}",
"discordIdleStatus": "顯示 Rich Presence 閒置狀態",
@@ -532,8 +532,8 @@
"showSkipButton": "顯示跳過按鈕",
"showSkipButton_description": "在播放條上顯示/隱藏跳過按鈕",
"sidebarPlaylistList": "側邊欄播放清單列表",
"sidebarCollapsedNavigation": "側邊欄(已疊)導航",
"sidebarCollapsedNavigation_description": "在疊的側邊欄中顯示或隱藏導航",
"sidebarCollapsedNavigation": "側邊欄(已疊)導航",
"sidebarCollapsedNavigation_description": "在疊的側邊欄中顯示或隱藏導航",
"sidebarConfiguration": "側邊欄設定",
"sidebarConfiguration_description": "選擇側邊欄包含的項目與順序",
"sidebarPlaylistList_description": "顯示或隱藏側邊欄歌單清單",
@@ -562,7 +562,7 @@
"exitToTray_description": "退出應用程式時最小化到系統匣而非關閉",
"followLyric_description": "滾動歌詞到目前播放位置",
"font": "字型",
"globalMediaHotkeys_description": "啟用或用系統媒體快捷鍵以控制播放",
"globalMediaHotkeys_description": "啟用或用系統媒體快捷鍵以控制播放",
"hotkey_browserBack": "瀏覽器返回",
"hotkey_favoriteCurrentSong": "收藏 $t(common.currentSong)",
"hotkey_playbackStop": "停止",
@@ -573,7 +573,7 @@
"remotePassword": "遠端控制伺服器密碼",
"remotePassword_description": "設定遠端控制伺服器的密碼。這些憑證預設以不安全的方式傳輸,因此您應該使用一個您不在意的唯一密碼",
"remotePort_description": "設定遠端控制伺服器的連接埠",
"remoteUsername_description": "設定遠端控制伺服器的使用者名稱。如果使用者名稱和密碼都為空,則身分驗證將被用",
"remoteUsername_description": "設定遠端控制伺服器的使用者名稱。如果使用者名稱和密碼都為空,則身分驗證將被用",
"replayGainClipping_description": "自動降低增益以防止{{ReplayGain}}造成削波",
"showSkipButtons": "顯示跳過按鈕",
"themeDark_description": "應用程式將使用深色主題",
@@ -933,18 +933,18 @@
"title": "標題",
"trackNumber": "曲目編號",
"size": "大小",
"codec": "編解碼器",
"codec": "編",
"owner": "擁有者",
"bitDepth": "位元深度",
"sampleRate": "取樣率"
}
},
"action": {
"addToFavorites": "新增$t(entity.favorite, {\"count\": 2})",
"clearQueue": "清空佇列",
"addToFavorites": "新增$t(entity.favorite, {\"count\": 2})",
"clearQueue": "清空播放佇列",
"createPlaylist": "建立$t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "刪除$t(entity.playlist, {\"count\": 1})",
"addToPlaylist": "新增$t(entity.playlist, {\"count\": 1})",
"addToPlaylist": "新增$t(entity.playlist, {\"count\": 1})",
"deselectAll": "取消全選",
"editPlaylist": "編輯 $t(entity.playlist, {\"count\": 1})",
"goToPage": "前往頁面",
@@ -953,13 +953,13 @@
"refresh": "$t(common.refresh)",
"removeFromFavorites": "從$t(entity.favorite, {\"count\": 2})移除",
"removeFromPlaylist": "從$t(entity.playlist, {\"count\": 1})移除",
"removeFromQueue": "從佇列中移除",
"removeFromQueue": "從播放佇列中移除",
"setRating": "評分",
"toggleSmartPlaylistEditor": "切換$t(entity.smartPlaylist)編輯器",
"viewPlaylists": "查看$t(entity.playlist, {\"count\": 2})",
"moveToNext": "移至下一項",
"openIn": {
"lastfm": "在 Last.fm開啟",
"lastfm": "在Last.fm開啟",
"musicbrainz": "在MusicBrainz開啟",
"spotify": "在 Spotify 中開啟",
"listenbrainz": "在 ListenBrainz 中開啟",
@@ -13,7 +13,7 @@ import { useListContext } from '/@/renderer/context/list-context';
import { eventEmitter } from '/@/renderer/events/event-emitter';
import { UserFavoriteEventPayload, UserRatingEventPayload } from '/@/renderer/events/events';
import { getListRefreshMutationKey } from '/@/renderer/features/shared/components/list-refresh-button';
import { LibraryItem, SortKeyRandom } from '/@/shared/types/domain-types';
import { LibraryItem } from '/@/shared/types/domain-types';
export const getListQueryKeyName = (itemType: LibraryItem): string => {
switch (itemType) {
@@ -108,19 +108,8 @@ export const useItemListInfiniteLoader = ({
[serverId, itemType, query],
);
const isRandomSort = query?.sortBy === SortKeyRandom;
const fetchPage = useCallback(
async (pageNumber: number) => {
if (isRandomSort) {
const existingData =
queryClient.getQueryData<InfiniteLoaderCacheData>(dataQueryKey);
if (existingData?.pagesLoaded?.[pageNumber]) {
lastFetchedPageRef.current = Math.max(lastFetchedPageRef.current, pageNumber);
return;
}
}
const startIndex = pageNumber * itemsPerPage;
const queryParams = {
limit: itemsPerPage,
@@ -129,7 +118,6 @@ export const useItemListInfiniteLoader = ({
};
const result = await queryClient.fetchQuery({
gcTime: isRandomSort ? 1000 * 60 * 10 : 1000 * 15,
queryFn: async ({ signal }) => {
const result = await listQueryFn({
apiClientProps: { serverId, signal },
@@ -139,7 +127,6 @@ export const useItemListInfiniteLoader = ({
return result;
},
queryKey: queryKeys[getListQueryKeyName(itemType)].list(serverId, queryParams),
staleTime: isRandomSort ? 1000 * 60 * 10 : 1000 * 15,
});
// Update the query data with the fetched page
@@ -167,32 +154,13 @@ export const useItemListInfiniteLoader = ({
// Track the last fetched page
lastFetchedPageRef.current = Math.max(lastFetchedPageRef.current, pageNumber);
},
[
itemsPerPage,
query,
queryClient,
serverId,
dataQueryKey,
listQueryFn,
itemType,
isRandomSort,
],
[itemsPerPage, query, queryClient, serverId, dataQueryKey, listQueryFn, itemType],
);
// Reset the loaded pages and refetch current page when the query changes
useEffect(() => {
const currentDataQueryKey = JSON.stringify(dataQueryKey);
if (isRandomSort) {
const existingData = queryClient.getQueryData<InfiniteLoaderCacheData | undefined>(
dataQueryKey,
);
if (existingData?.dataMap && existingData.dataMap.size > 0) {
previousDataQueryKeyRef.current = currentDataQueryKey;
return;
}
}
if (previousDataQueryKeyRef.current === currentDataQueryKey || isRefetchingRef.current) {
return;
}
@@ -12,7 +12,7 @@ import { useListContext } from '/@/renderer/context/list-context';
import { eventEmitter } from '/@/renderer/events/event-emitter';
import { UserFavoriteEventPayload, UserRatingEventPayload } from '/@/renderer/events/events';
import { getListRefreshMutationKey } from '/@/renderer/features/shared/components/list-refresh-button';
import { LibraryItem, SortKeyRandom } from '/@/shared/types/domain-types';
import { LibraryItem } from '/@/shared/types/domain-types';
const getQueryKeyName = (itemType: LibraryItem): string => {
switch (itemType) {
@@ -76,8 +76,6 @@ export const useItemListPaginatedLoader = ({
const fetchRange = getFetchRange(currentPage, itemsPerPage);
const startIndex = fetchRange.startIndex;
const isRandomSort = query?.sortBy === SortKeyRandom;
const queryParams = useMemo(
() => ({
limit: itemsPerPage,
@@ -88,7 +86,7 @@ export const useItemListPaginatedLoader = ({
);
const { data } = useQuery({
gcTime: isRandomSort ? 1000 * 60 * 10 : 1000 * 15,
gcTime: 1000 * 15,
placeholderData: { items: getInitialData(itemsPerPage) },
queryFn: async ({ signal }) => {
const result = await listQueryFn({
@@ -99,7 +97,7 @@ export const useItemListPaginatedLoader = ({
return result;
},
queryKey: queryKeys[getQueryKeyName(itemType)].list(serverId, queryParams),
staleTime: isRandomSort ? 1000 * 60 * 10 : 1000 * 15,
staleTime: 1000 * 15,
});
const refreshMutation = useMutation({
+4 -6
View File
@@ -465,8 +465,6 @@ export const tagListSortMap: TagListSortMap = {
},
};
export const SortKeyRandom = 'random';
export enum AlbumListSort {
ALBUM_ARTIST = 'albumArtist',
ARTIST = 'artist',
@@ -478,7 +476,7 @@ export enum AlbumListSort {
ID = 'id',
NAME = 'name',
PLAY_COUNT = 'playCount',
RANDOM = SortKeyRandom,
RANDOM = 'random',
RATING = 'rating',
RECENTLY_ADDED = 'recentlyAdded',
RECENTLY_PLAYED = 'recentlyPlayed',
@@ -600,7 +598,7 @@ export enum SongListSort {
ID = 'id',
NAME = 'name',
PLAY_COUNT = 'playCount',
RANDOM = SortKeyRandom,
RANDOM = 'random',
RATING = 'rating',
RECENTLY_ADDED = 'recentlyAdded',
RECENTLY_PLAYED = 'recentlyPlayed',
@@ -727,7 +725,7 @@ export enum AlbumArtistListSort {
FAVORITED = 'favorited',
NAME = 'name',
PLAY_COUNT = 'playCount',
RANDOM = SortKeyRandom,
RANDOM = 'random',
RATING = 'rating',
RECENTLY_ADDED = 'recentlyAdded',
RELEASE_DATE = 'releaseDate',
@@ -816,7 +814,7 @@ export enum ArtistListSort {
FAVORITED = 'favorited',
NAME = 'name',
PLAY_COUNT = 'playCount',
RANDOM = SortKeyRandom,
RANDOM = 'random',
RATING = 'rating',
RECENTLY_ADDED = 'recentlyAdded',
RELEASE_DATE = 'releaseDate',