fix: stale settings used when syncing books (#273)

* fix: add passive: true to touchstart event listener when pulling to refresh

* fix: stale settings used when syncing books and move auto upload from import menu to settings menu
This commit is contained in:
Huang Xin
2025-01-30 23:50:06 +01:00
committed by GitHub
parent 90e46860a5
commit b6c8bfb52b
4 changed files with 27 additions and 32 deletions
@@ -1,11 +1,4 @@
import { useState } from 'react';
import { useRouter } from 'next/navigation';
import { MdCheck } from 'react-icons/md';
import { useAuth } from '@/context/AuthContext';
import { useEnv } from '@/context/EnvContext';
import { useTranslation } from '@/hooks/useTranslation';
import { useSettingsStore } from '@/store/settingsStore';
import { navigateToLogin } from '@/utils/nav';
import MenuItem from '@/components/MenuItem';
interface ImportMenuProps {
@@ -15,22 +8,6 @@ interface ImportMenuProps {
const ImportMenu: React.FC<ImportMenuProps> = ({ setIsDropdownOpen, onImportBooks }) => {
const _ = useTranslation();
const router = useRouter();
const { user } = useAuth();
const { envConfig } = useEnv();
const { settings, setSettings, saveSettings } = useSettingsStore();
const [isAutoUpload, setIsAutoUpload] = useState(settings.autoUpload);
const toggleAutoUploadBooks = () => {
if (!user) {
navigateToLogin(router);
}
settings.autoUpload = !settings.autoUpload;
setSettings(settings);
saveSettings(envConfig, settings);
setIsAutoUpload(settings.autoUpload);
setIsDropdownOpen?.(false);
};
const handleImportBooks = () => {
onImportBooks();
@@ -43,11 +20,6 @@ const ImportMenu: React.FC<ImportMenuProps> = ({ setIsDropdownOpen, onImportBook
className='dropdown-content dropdown-center bg-base-100 menu rounded-box z-[1] mt-3 w-52 p-2 shadow'
>
<MenuItem label={_('From Local File')} onClick={handleImportBooks} />
<MenuItem
label={_('Auto Upload Books to Cloud')}
icon={isAutoUpload ? <MdCheck className='text-base-content' /> : undefined}
onClick={toggleAutoUploadBooks}
/>
</ul>
);
};