forked from akai/readest
release: hot fix version 0.9.21 (#551)
* sync: update partial config to sync more actively * rtl: make the order of go back/forward buttons consistent * fix: wheel events conflict with touchpad scroll on macOS * release: hot fix version 0.9.21
This commit is contained in:
@@ -103,15 +103,15 @@ const FooterBar: React.FC<FooterBarProps> = ({
|
||||
</div>
|
||||
<Button
|
||||
icon={viewSettings?.rtl ? <RiArrowGoForwardLine /> : <RiArrowGoBackLine />}
|
||||
onClick={viewSettings?.rtl ? handleGoForward : handleGoBack}
|
||||
tooltip={viewSettings?.rtl ? _('Go Forward') : _('Go Back')}
|
||||
disabled={viewSettings?.rtl ? !view?.history.canGoForward : !view?.history.canGoBack}
|
||||
onClick={handleGoBack}
|
||||
tooltip={_('Go Back')}
|
||||
disabled={!view?.history.canGoBack}
|
||||
/>
|
||||
<Button
|
||||
icon={viewSettings?.rtl ? <RiArrowGoBackLine /> : <RiArrowGoForwardLine />}
|
||||
onClick={viewSettings?.rtl ? handleGoBack : handleGoForward}
|
||||
tooltip={viewSettings?.rtl ? _('Go Back') : _('Go Forward')}
|
||||
disabled={viewSettings?.rtl ? !view?.history.canGoBack : !view?.history.canGoForward}
|
||||
onClick={handleGoForward}
|
||||
tooltip={_('Go Forward')}
|
||||
disabled={!view?.history.canGoForward}
|
||||
/>
|
||||
<span className='mx-2 text-center text-sm'>
|
||||
{progressValid ? `${Math.round(progressFraction * 100)}%` : ''}
|
||||
|
||||
@@ -59,6 +59,8 @@ export const useClickEvent = (
|
||||
}
|
||||
}
|
||||
} else if (msg.data.type === 'iframe-wheel') {
|
||||
// FIXME: conlict with the touchpad scroll event on macOS
|
||||
if (viewSettings.scrolled && appService?.osPlatform === 'macos') return;
|
||||
const { deltaY } = msg.data;
|
||||
const fontSize = viewSettings?.defaultFontSize ?? 16;
|
||||
const lineHeight = viewSettings?.lineHeight ?? 1.6;
|
||||
|
||||
@@ -72,7 +72,7 @@ export const useNotesSync = (bookKey: string) => {
|
||||
...oldNotes.filter((oldNote) => !newNotes.some((newNote) => newNote.id === oldNote.id)),
|
||||
...newNotes.map(processNewNote),
|
||||
];
|
||||
setConfig(bookKey, { ...config, booknotes: mergedNotes });
|
||||
setConfig(bookKey, { booknotes: mergedNotes });
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [syncedNotes]);
|
||||
|
||||
@@ -6,7 +6,7 @@ import { useBookDataStore } from '@/store/bookDataStore';
|
||||
import { useReaderStore } from '@/store/readerStore';
|
||||
import { useSettingsStore } from '@/store/settingsStore';
|
||||
import { useTranslation } from '@/hooks/useTranslation';
|
||||
import { deserializeConfig, serializeConfig } from '@/utils/serializer';
|
||||
import { serializeConfig } from '@/utils/serializer';
|
||||
import { CFI } from '@/libs/document';
|
||||
import { eventDispatcher } from '@/utils/event';
|
||||
import { DEFAULT_BOOK_SEARCH_CONFIG, SYNC_PROGRESS_INTERVAL_SEC } from '@/services/constants';
|
||||
@@ -106,14 +106,9 @@ export const useProgressSync = (bookKey: string) => {
|
||||
configSynced.current = true;
|
||||
const syncedConfig = syncedConfigs.filter((c) => c.bookHash === bookKey.split('-')[0])[0];
|
||||
if (syncedConfig) {
|
||||
const newConfig = deserializeConfig(
|
||||
JSON.stringify(syncedConfig),
|
||||
settings.globalViewSettings,
|
||||
DEFAULT_BOOK_SEARCH_CONFIG,
|
||||
);
|
||||
setConfig(bookKey, { ...config, ...newConfig });
|
||||
const syncedCFI = syncedConfig.location;
|
||||
const configCFI = config?.location;
|
||||
const syncedCFI = syncedConfig.location;
|
||||
setConfig(bookKey, syncedConfig);
|
||||
if (syncedCFI && configCFI) {
|
||||
if (CFI.compare(configCFI, syncedCFI) < 0) {
|
||||
if (view) {
|
||||
|
||||
Reference in New Issue
Block a user