[pull] master from lnreader:master#2
Open
pull[bot] wants to merge 18 commits into
Open
Conversation
* install the correct version of the hermes compiler * update node version of gh workflows
* migrate to rock * Update build.yml * Update build.yml again and changed build.gradle * fixed actions build crash * add flashlist to avoid bottomsheet crash * fix Novelscreen filter highlight * upload artifact * update rock config * update build.yml apk path * update rock.config again * Test env file * Update build.yml * remove react-native-config * Update to use split apk and enable custom rock provider paths. * added upload artifact * remove split apk * remove test env
) * fix: Apply active filters to chapter count display (Closes #1793) getChapterCount was always returning the total count regardless of the active filter. When filtering by unread/downloaded/bookmarked, the count shown in the novel header stayed the same as the total. Added an optional filter parameter to getChapterCount and pass the current settingsFilter from useNovel so the displayed count matches the filtered chapter list. * fix lint warning and add tests for filtered chapter count - Use settingsFilter instead of novelSettings.filter in useNovel to fix the react-hooks/exhaustive-deps warning - Add tests for getChapterCount with filter parameter - Update chapterFilterToSQL mock in test setup to actually apply filter conditions so filtered count tests work correctly
* chore: ignore *.tsbuildinfo build cache * chore: stop tracking tsconfig.tsbuildinfo build cache
The plugin row sits inside a react-native-gesture-handler Swipeable but used the React Native Pressable, whose JS responder lost mouse-derived tap events on WSA. Switch to the gesture-handler Pressable so taps share the same responder system as the surrounding Swipeable.
* init * feat: add zustand dependency and persistence key contract * refactor: extract bootstrap data loading into reusable service * refactor: move chapter mutations into store-ready action helpers * feat: add zustand novel store with cache and core actions * refactor: bridge novel persistence contracts for migration safety * refactor: migrate NovelScreen domain flows to zustand selectors * refactor: migrate NovelScreenList to selector-based store access * refactor: move reader chapter flows onto store boundaries * refactor: decouple useNovelSettings from broad context domain state * refactor: align migrateNovel with stable persistence contracts * refactor: cut novel-reader consumers to store-only context boundary * refactor: retire legacy useNovel and route cache cleanup export * test: update suites for store-only context boundary cutover * test: modernize store-era mocks and add contract coverage * test: finalize Task-15 sweep—remove dead useNovelData and lint clear mocksContract Final validation confirms mock-contract test suite clean and target file deletion verified with zero stale references in src/ scope. * remove imports from NovelScreen * reworked ai output * improvements * implemented synchronus novel and chapter fetch * refactor tests * fix db tests * Update remaining tests. * Harden chapter actions and bootstrap flows * Only count filtered chapters * improved chapter insert speed by optimizing triggers * Improved the batching function * Added drizzle support to dbManager.batch * removed better-sqlite3 for testing * fix tests * Update updateNovelChapters fucntion * reverse read filter * fix snackbar * fixed page bottomsheet * resolved paged novels showing wrong chapter number on opening * use openPage instead of setPageIndex in chapterDrawer * fix lint & tests * fix type issues * fix various smaller issues * updated novel restore * Delete tsconfig.tsbuildinfo
* use new ids * refactor in appearance settings * fix lint * remove setThemeMode from handleThemeSelect * fix type logic * use context for theme * shorten animation * adjusted LanguagePickerModal * Fix Accent Color picker * fix bottom navigation coloring * log error instead of crashing when no theme context is available
fix:await db write operations in transactions
…1830) - patches/@rock-js__plugin-metro@0.12.12.patch: wrap absolute paths in pathToFileURL() so dynamic imports work on Windows - pnpm-workspace.yaml: register the patch and pin nodeLinker: hoisted - pnpm-lock.yaml: lock the patched version with hash - android/settings.gradle: invoke npx.cmd on Windows for rock autolink
…1832) fix(native-file): prevent crash when unlinking missing files NativeFileSpec.unlink is codegened as a void-returning TurboModule method, which dispatches asynchronously on the mqt_v_native thread. Throwing "File does not exist" there bypasses every JS try/catch and surfaces as a fatal AndroidRuntime exception, killing the process. Make unlink idempotent (POSIX rm -f semantics): no-op when the path does not exist. The Downloads "delete all" and individual delete flows previously crashed whenever a chapter row had isDownloaded=true while its on-disk folder had already been removed (e.g. after backup restore or external cleanup). The same fix also protects useNovel, pluginManager, fetch, epub/import, backup/local, backup/utils, and AdvancedTab call sites that share the same native handler.
…etMeta (#1873) fix(service): correct notification throttle in ServiceManager.setMeta
* Remove pointless break-lines (just use soft wrap to view this file) * Encase the table in a div
* feat(downloads): make chapter download cooldown configurable The chapter download service used a hard-coded 1s sleep between sequential chapter writes. That worked as a polite default but is either too long for users with patient sources or too short for sources that 429 on tight loops. Surface the value as a single global setting instead. - AppSettings.chapterDownloadCooldownMs (optional, ms) - getChapterDownloadCooldownMs(): synchronous fallback used by the background task runner; returns the historical 1000ms when the user has not configured an override (no regression on upgrade) - downloadChapter.ts: sleep(getChapterDownloadCooldownMs()) replaces the previous hard-coded sleep(1000) - New "Chapter download cooldown" entry in General Settings, placed directly above "Disable haptic feedback". Tapping opens a modal that takes seconds (decimal allowed) and writes back as ms - The input is sanitised on every keystroke to digits + a single decimal point so paste / hardware keyboard input cannot smuggle in non-numeric characters - Reset writes the default explicitly so the user sees feedback even when the override happened to equal the default * feat(downloads): warn about source rate limits in cooldown modal Per review feedback (#1834): the cooldown modal should make the trade-off explicit so users don't lower the value below what their sources can take. Add a single error-coloured line under the input.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )