增加快速优选模式
This commit is contained in:
@@ -117,6 +117,7 @@ export const UserMenu: React.FC = () => {
|
||||
const [defaultAggregateSearch, setDefaultAggregateSearch] = useState(true);
|
||||
const [doubanProxyUrl, setDoubanProxyUrl] = useState('');
|
||||
const [enableOptimization, setEnableOptimization] = useState(true);
|
||||
const [preferStrategy, setPreferStrategy] = useState<'fast' | 'full'>('fast');
|
||||
const [speedTestTimeout, setSpeedTestTimeout] = useState(4000); // 测速超时时间(毫秒)
|
||||
const [fluidSearch, setFluidSearch] = useState(true);
|
||||
const [tmdbBackdropDisabled, setTmdbBackdropDisabled] = useState(false);
|
||||
@@ -534,6 +535,11 @@ export const UserMenu: React.FC = () => {
|
||||
setEnableOptimization(JSON.parse(savedEnableOptimization));
|
||||
}
|
||||
|
||||
const savedPreferStrategy = localStorage.getItem('preferStrategy');
|
||||
if (savedPreferStrategy === 'fast' || savedPreferStrategy === 'full') {
|
||||
setPreferStrategy(savedPreferStrategy);
|
||||
}
|
||||
|
||||
const savedSpeedTestTimeout = localStorage.getItem('speedTestTimeout');
|
||||
if (savedSpeedTestTimeout !== null) {
|
||||
setSpeedTestTimeout(Number(savedSpeedTestTimeout));
|
||||
@@ -1008,6 +1014,13 @@ export const UserMenu: React.FC = () => {
|
||||
}
|
||||
};
|
||||
|
||||
const handlePreferStrategyChange = (value: 'fast' | 'full') => {
|
||||
setPreferStrategy(value);
|
||||
if (typeof window !== 'undefined') {
|
||||
localStorage.setItem('preferStrategy', value);
|
||||
}
|
||||
};
|
||||
|
||||
const handleSpeedTestTimeoutChange = (value: number) => {
|
||||
setSpeedTestTimeout(value);
|
||||
if (typeof window !== 'undefined') {
|
||||
@@ -1356,6 +1369,7 @@ export const UserMenu: React.FC = () => {
|
||||
|
||||
setDefaultAggregateSearch(true);
|
||||
setEnableOptimization(true);
|
||||
setPreferStrategy('fast');
|
||||
setFluidSearch(defaultFluidSearch);
|
||||
setTmdbBackdropDisabled(false);
|
||||
setEnableTrailers(false);
|
||||
@@ -1384,6 +1398,7 @@ export const UserMenu: React.FC = () => {
|
||||
if (typeof window !== 'undefined') {
|
||||
localStorage.setItem('defaultAggregateSearch', JSON.stringify(true));
|
||||
localStorage.setItem('enableOptimization', JSON.stringify(true));
|
||||
localStorage.setItem('preferStrategy', 'fast');
|
||||
localStorage.setItem('fluidSearch', JSON.stringify(defaultFluidSearch));
|
||||
localStorage.setItem('liveDirectConnect', JSON.stringify(false));
|
||||
localStorage.setItem('tmdb_backdrop_disabled', 'false');
|
||||
@@ -2243,6 +2258,38 @@ export const UserMenu: React.FC = () => {
|
||||
{/* 测速超时设置 */}
|
||||
{enableOptimization && (
|
||||
<div className='ml-4 mt-2 space-y-2'>
|
||||
<div className='space-y-2'>
|
||||
<div className='flex items-center justify-between gap-3'>
|
||||
<span className='text-xs text-gray-600 dark:text-gray-400'>
|
||||
优选策略
|
||||
</span>
|
||||
<div className='inline-flex rounded-lg border border-gray-200 bg-gray-100 p-1 dark:border-gray-700 dark:bg-gray-800'>
|
||||
<button
|
||||
type='button'
|
||||
onClick={() => handlePreferStrategyChange('fast')}
|
||||
className={`rounded-md px-4 py-1.5 text-xs font-medium transition-all ${
|
||||
preferStrategy === 'fast'
|
||||
? 'bg-white text-green-600 shadow-sm dark:bg-gray-700 dark:text-green-400'
|
||||
: 'text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200'
|
||||
}`}
|
||||
>
|
||||
快速优选
|
||||
</button>
|
||||
<button
|
||||
type='button'
|
||||
onClick={() => handlePreferStrategyChange('full')}
|
||||
className={`rounded-md px-4 py-1.5 text-xs font-medium transition-all ${
|
||||
preferStrategy === 'full'
|
||||
? 'bg-white text-green-600 shadow-sm dark:bg-gray-700 dark:text-green-400'
|
||||
: 'text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200'
|
||||
}`}
|
||||
>
|
||||
全量优选
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className='flex items-center justify-between'>
|
||||
<span className='text-xs text-gray-600 dark:text-gray-400'>
|
||||
换源面板测速超时
|
||||
|
||||
Reference in New Issue
Block a user