Commit 451cfde
authored
Modernize to v4.0.0 (#9)
* chore: replace eslint/prettier/jest with biome and vitest
Update all dependencies to latest versions. Replace ESLint + Prettier
with Biome for faster linting/formatting. Migrate tests from Jest to
Vitest for native TS6 support.
* chore: migrate to Tailwind CSS 4
Replace PostCSS plugin with @tailwindcss/vite. Remove tailwind.config.js
and postcss.config.js. Use CSS-first config with @import and
@custom-variant for class-based dark mode.
* chore: remove dead code
Remove unused preferences.tsx entry point (main.tsx handles routing),
unused preferences.html, and unused useInit hook.
* fix: resolve bugs and clean up code
Rust:
- Fix infinite recursion in config write on filesystem error
- Remove unnecessary Arc<Mutex> wrapper on WebviewWindow in live download
- Fix live stream relative segment URL construction (use base_url like VOD)
- Replace .expect() with let _ on window.emit to prevent panics
- Use app_handle.exit() instead of std::process::exit()
- Fix get_tauri_conf() return type (Config instead of Option<Config>)
- Remove unused _download_path params from internal download functions
- Replace pub_struct! macro with direct derive
- Remove duplicate form_confirm command
TypeScript:
- Fix showQualities set to true after fetch error
- Fix silent swallowing of non-Error exceptions
- Remove duplicate theme logic (ThemeProvider.tsx + useForm.ts)
- Consolidate theme application in ConfigProvider
* test: add tests for auth, playlist parsing, config and translations
TypeScript:
- Add getAuthHeaders tests (headers structure)
- Add getAuthVariables tests (LIVE/VOD/CLIP variable generation)
- Add getPlaylist tests (M3U8 parsing, chunked→Original mapping, errors)
Rust:
- Add AppConf tests (defaults, language lowercase, amend, serialization)
- Add translations tests (all languages implement trait, expected values)
* chore: update Rust deps and replace deprecated shell opener
Run cargo update to latest compatible versions. Replace deprecated
tauri-plugin-shell open() with tauri-plugin-opener for URL handling.
* feat: bump version to 4.0.0 and fix dark mode in preferences
Bump version to 4.0.0 across package.json, Cargo.toml and tauri.conf.json.
Add missing dark theme overrides for preferences page (inactive tabs,
backgrounds, labels, selects, borders).
* fix: improve dark mode and preferences UX
- Add close button to preferences window
- Only ask to restart when language changes (not on every save)
- Close preferences window after saving when no restart needed
- Fix dark mode text colors (labels, inputs, selects) with !important
to override Tailwind 4 layer specificity
- Add "close" translation to all 5 locales
* fix: correct translations across all locales
- French: "Lumière" → "Clair" (theme light, not physical light)
- German: "Klare" → "Löschen", "Licht" → "Hell", "Qualitäten erhalten"
→ "Qualitäten abrufen", less formal phrasing throughout
- Italian: "Luce" → "Chiaro", "Scaricamenti" → "Download",
"Cartella di scaricamento" → "Cartella di download"
- English: "Deutsch" → "German" in language list for consistency
- Spanish: add missing "downloadAnother" key
* feat: Tailwind dark: classes, Portuguese locale, no-restart preferences
Dark mode:
- Replace manual CSS overrides with Tailwind dark: variant classes
- Remove dark-theme.css overrides (keep only base styles)
- All components now use dark: classes directly in JSX
Preferences:
- Remove restart requirement entirely
- Add rebuild_menu Tauri command to update native menu on language change
- Preferences now save and close without prompting
New language:
- Add Portuguese (pt) locale for frontend and Rust menu
* fix: dark mode, preferences UX, open folder, and stale qualities
Dark mode:
- Fix @custom-variant syntax for Tailwind 4 (&:where(.dark, .dark *))
- Add color-scheme: dark for native form controls
Preferences:
- Save no longer closes window, shows checkmark feedback
- Close button now works (added permissions for preferences window)
- Emit preferences-updated event so main window refreshes live
Downloads:
- Replace shell open with opener plugin revealItemInDir for folders
- Reset qualities when URL changes to prevent stale downloads
* docs: update README for v4
Update technologies (Vitest, Biome, Preact, Vite, Tailwind 4),
add prerequisites section, list features, add test/build commands,
fix Tauri URL.
* chore: fix linting, a11y, and update CI workflows
- Fix Biome config (v1.x compatible with mixed Rust/TS projects)
- Auto-fix formatting (trailing commas, import sorting, quote style)
- Use import type where applicable
- Replace forEach with for...of in manifest building
- Fix a11y: tabs use button elements, spinner uses output element
- Add key prop to playlist options
- Add button type to close/save buttons
- Update frontend CI: ESLint/Prettier → Biome, add Vitest
- Update backend CI: add Tauri 2 system deps, add cargo test
- Update release CI: use Tauri 2 deps for Ubuntu
* chore: upgrade to Biome 2.x with Tailwind CSS support
Upgrade Biome from 1.x to 2.4.9. Enable tailwindDirectives CSS parser
for @custom-variant support. Use biome ci in CI workflow. Fix import
ordering for Biome 2.x.
* style: apply rustfmt formatting
* chore: add npm run check script for full validation
Runs biome ci, vitest, rustfmt check, clippy, and cargo test in one
command.
* chore: update GitHub Actions to latest versions
- actions/checkout v4 → v6
- actions/cache v4 → v5
- actions/setup-node v4 → v6
* chore: update release workflow to Ubuntu 24.04 LTS
* fix: align CI Linux deps with Tauri 2 docs
Use official Tauri 2 prerequisites: add libxdo-dev and libssl-dev,
remove legacy deps (libsoup-3.0-dev, libjavascriptcoregtk-4.1-dev,
patchelf) that are pulled transitively by libwebkit2gtk-4.1-dev.1 parent cde61a1 commit 451cfde
62 files changed
Lines changed: 19393 additions & 10127 deletions
File tree
- .github/workflows
- src-tauri
- capabilities
- gen/schemas
- src
- src
- components
- downloader
- auth
- hooks
- locales
- tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
47 | 52 | | |
48 | 53 | | |
49 | 54 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
| 20 | + | |
| 21 | + | |
25 | 22 | | |
| 23 | + | |
| 24 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | 8 | | |
12 | 9 | | |
13 | 10 | | |
| |||
20 | 17 | | |
21 | 18 | | |
22 | 19 | | |
23 | | - | |
| 20 | + | |
24 | 21 | | |
25 | 22 | | |
26 | 23 | | |
27 | 24 | | |
28 | 25 | | |
29 | 26 | | |
30 | | - | |
| 27 | + | |
31 | 28 | | |
32 | 29 | | |
33 | | - | |
| 30 | + | |
34 | 31 | | |
35 | 32 | | |
36 | 33 | | |
| |||
40 | 37 | | |
41 | 38 | | |
42 | 39 | | |
43 | | - | |
| 40 | + | |
44 | 41 | | |
45 | 42 | | |
46 | | - | |
| 43 | + | |
47 | 44 | | |
48 | 45 | | |
49 | 46 | | |
| |||
57 | 54 | | |
58 | 55 | | |
59 | 56 | | |
60 | | - | |
| 57 | + | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
9 | 16 | | |
10 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
11 | 22 | | |
12 | 23 | | |
13 | 24 | | |
14 | | - | |
| 25 | + | |
15 | 26 | | |
16 | 27 | | |
17 | 28 | | |
18 | 29 | | |
19 | 30 | | |
20 | 31 | | |
21 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
22 | 39 | | |
23 | 40 | | |
24 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
25 | 48 | | |
26 | 49 | | |
27 | 50 | | |
28 | 51 | | |
29 | 52 | | |
30 | 53 | | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
| 54 | + | |
35 | 55 | | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
36 | 62 | | |
37 | 63 | | |
38 | 64 | | |
| |||
53 | 79 | | |
54 | 80 | | |
55 | 81 | | |
56 | | - | |
| 82 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
This file was deleted.
This file was deleted.
0 commit comments