Commit Graph

35 Commits

Author SHA1 Message Date
f016c90353 chore: bump version to 0.6.5
Update product version in preparation for release.
2026-03-22 21:45:57 -04:00
8c169d549a Add disabled state constraints to progress adjustment buttons in Anime component
- Disable decrement button when progress is at 0 or below to prevent negative values
- Disable increment button when:
  * Media has defined episodes and progress is complete (>= total episodes)
  * Or when progress has reached next airing episode boundary (nextAiringEpisode - 2)
- Improves user experience by preventing invalid progress adjustments
- Maintains data integrity by stopping users from setting impossible progress values
2026-03-22 20:27:15 -04:00
8a8baf7f8f feat: implement smart watchlist refresh on navigation
Added intelligent watchlist refresh mechanism that only refetches data when changes are actually made, preventing unnecessary API calls and improving performance.

Changes:
- Added watchlistNeedsRefresh store to track when watchlist data has changed
- Implemented reactive watcher in App.svelte that uses svelte-spa-router's loc store to detect navigation to home
- Set dirty flag in Anime.svelte after successful status updates and entry deletions
- Added conditional refresh logic that checks user's primary service (AniList, MAL, or Simkl)
- Parallel refresh support for multiple services when logged in

This resolves the issue where clicking the logo would cause full page reloads and unnecessary re-authentication checks, while also ensuring watchlist data stays current when users make changes.

Technical details:
- Uses $loc.location to detect route changes
- IIFE pattern for async operations in reactive statements
- Only refreshes for logged-in primary services
- Flag resets after successful refresh

Related to: Header.svelte client-side routing fix
2026-03-21 13:25:43 -04:00
3e7f7d1c95 fix(frontend): resolve submit spinner hang and data loss issues
- Add try-catch-finally error handling to handleSubmit and deleteEntries
  functions to ensure submitting state is always reset, even when API calls
  fail or timeout. This fixes the infinite loading spinner bug.

- Preserve genres field after AniList updates, matching the existing tags
  preservation pattern. Prevents genres array from being lost after form
  submission, which was causing "{#each} only works with iterable values"
  error when the page re-rendered.

- Add fallback (|| []) to genres each block to prevent rendering errors
  when genres is undefined or null for entries without genre data.

These fixes ensure robust error handling and data consistency during anime
list updates across AniList, MAL, and Simkl services.

Fixes: submit button spinner never stopping after form submission
Fixes: "{#each} only works with iterable values" error on genres display
2026-03-20 15:51:55 -04:00
c510c2a138 feat(frontend): add genre display UI and enhance link component
- Anime.svelte: Add genre display section with clickable badges that link
  to AniList search results for each genre. Genres are now displayed above
  the existing tags section with consistent styling.

- WebsiteLink.svelte: Enhance component to support custom URLs via the `url`
  export parameter. Previously, the component only generated URLs based on
  service prefixes (a-, m-, s-). Now it accepts a direct URL parameter for
  flexible linking to AniList searches and other external resources.

These changes provide users with an improved browsing experience by making
genres interactive and easily searchable.
2026-03-19 21:09:27 -04:00
5c4caf68e6 added tooltip and version change 2025-06-22 21:08:56 -04:00
cd043d093f fixed issue where tags would not reload after submit 2025-06-06 23:25:08 -04:00
6db01f7f9f added tags to frontend anime item 2025-05-14 14:31:43 -04:00
e069c47242 automated adding anime by moving progress from 0 to 1 2025-03-30 10:03:05 -04:00
aba0f2d1d5 removed console.log 2025-03-30 10:02:38 -04:00
af6cb7f08a removed unecessary button dependency and neovim reformatted 2025-03-30 09:52:46 -04:00
631bd8b885 made increment and decrement buttons automate status and datecompleted 2025-03-26 19:35:08 -04:00
5a9f4391dc changed flowbite button to standard button 2025-03-03 19:53:18 -05:00
72004c98b4 fixed button colors 2025-03-03 17:27:39 -05:00
3db25bc33a restored status block 2025-03-03 16:13:01 -05:00
dc01aa314c made dark mode default for every element 2025-03-03 15:29:33 -05:00
1a083deb54 reverted back to svelte-headless-table 2025-02-15 21:12:36 -05:00
0c6a8a40c3 removed unused import 2025-02-07 22:58:39 -05:00
45845c2a69 finished switch from svelte table to tanstack table 2025-02-07 22:57:05 -05:00
3ec5eb1a03 began transition to tanstack table 2025-02-05 21:36:23 -05:00
a2aa90edec added buttons to top of table 2025-01-26 11:00:49 -05:00
c9c6650829 significantly improved datepicker 2025-01-25 22:50:35 -05:00
18c744c1cf fixed formatting 2025-01-25 19:17:42 -05:00
f24ee9edfd improved episode input in Anime Page 2024-12-14 13:48:55 -05:00
3ab77ea8d3 fixed bug in episode input when 0 2024-12-06 16:30:53 -05:00
aa81102194 added currentl episode release to anime single page 2024-11-14 20:11:41 -05:00
064a2c7f7d added info for mac keychain 2024-10-18 22:06:33 -04:00
2cffd54c4d made anime Id in table a link to their respective sites 2024-10-02 19:26:52 -04:00
7e3369d0f0 fixed buttons colors 2024-10-01 18:53:34 -04:00
e229311190 made entire app only work in dark mode 2024-10-01 16:57:42 -04:00
572366eb91 updated table when entries are deleted and fixed simkl watchlist 2024-09-18 15:06:35 -04:00
00930f611e added ability to delete entries. Added MAL RefreshToken Function 2024-09-18 14:05:41 -04:00
5cdf86a147 frontend will not call backend if id is 0 2024-09-17 18:42:29 -04:00
4c329d6b9d fixed a bug in simkl where nothing loads if it does not have an anilist id 2024-09-14 23:58:09 -04:00
60a38ff569 improved loading for change individual anime from search 2024-09-09 12:03:46 -04:00