Compare commits
2 Commits
291362b88d
...
8799964961
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8799964961 | ||
|
|
42808501b0 |
@@ -1,58 +0,0 @@
|
|||||||
// src/views/Community/components/DynamicNewsCard/FilterModal.js
|
|
||||||
// 筛选弹窗组件
|
|
||||||
|
|
||||||
import React from 'react';
|
|
||||||
import {
|
|
||||||
Modal,
|
|
||||||
ModalOverlay,
|
|
||||||
ModalContent,
|
|
||||||
ModalHeader,
|
|
||||||
ModalBody,
|
|
||||||
ModalCloseButton,
|
|
||||||
} from '@chakra-ui/react';
|
|
||||||
import UnifiedSearchBox from '../UnifiedSearchBox';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 筛选弹窗组件
|
|
||||||
* @param {boolean} isOpen - Modal 是否打开
|
|
||||||
* @param {function} onClose - 关闭 Modal 回调
|
|
||||||
* @param {object} filters - 当前筛选条件
|
|
||||||
* @param {array} popularKeywords - 热门关键词
|
|
||||||
* @param {function} onSearch - 搜索回调
|
|
||||||
* @param {function} onSearchFocus - 搜索框聚焦回调
|
|
||||||
* @param {string} mode - 当前模式 ('vertical' | 'four-row')
|
|
||||||
* @param {number} pageSize - 每页大小 (10 | 30)
|
|
||||||
*/
|
|
||||||
const FilterModal = ({
|
|
||||||
isOpen,
|
|
||||||
onClose,
|
|
||||||
filters,
|
|
||||||
popularKeywords,
|
|
||||||
onSearch,
|
|
||||||
onSearchFocus,
|
|
||||||
mode,
|
|
||||||
pageSize
|
|
||||||
}) => {
|
|
||||||
return (
|
|
||||||
<Modal isOpen={isOpen} onClose={onClose} size="4xl" scrollBehavior="outside">
|
|
||||||
<ModalOverlay />
|
|
||||||
<ModalContent maxW="90vw">
|
|
||||||
<ModalHeader>筛选条件</ModalHeader>
|
|
||||||
<ModalCloseButton />
|
|
||||||
<ModalBody pb={6} overflow="visible">
|
|
||||||
{/* 直接复用 UnifiedSearchBox */}
|
|
||||||
<UnifiedSearchBox
|
|
||||||
filters={filters}
|
|
||||||
popularKeywords={popularKeywords}
|
|
||||||
onSearch={onSearch}
|
|
||||||
onSearchFocus={onSearchFocus}
|
|
||||||
mode={mode}
|
|
||||||
pageSize={pageSize}
|
|
||||||
/>
|
|
||||||
</ModalBody>
|
|
||||||
</ModalContent>
|
|
||||||
</Modal>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default FilterModal;
|
|
||||||
@@ -26,11 +26,12 @@ const TradingTimeFilter = ({ value, onChange }) => {
|
|||||||
setSelectedKey(null);
|
setSelectedKey(null);
|
||||||
setCustomRange(null);
|
setCustomRange(null);
|
||||||
logger.debug('TradingTimeFilter', '外部重置,清空选中状态');
|
logger.debug('TradingTimeFilter', '外部重置,清空选中状态');
|
||||||
} else if (value !== selectedKey) {
|
} else {
|
||||||
// 外部选中值变化,同步内部状态
|
// 外部选中值变化,同步内部状态
|
||||||
setSelectedKey(value);
|
setSelectedKey(value);
|
||||||
|
logger.debug('TradingTimeFilter', '外部value变化,同步内部状态', { value });
|
||||||
}
|
}
|
||||||
}, [value, selectedKey]);
|
}, [value]);
|
||||||
|
|
||||||
// 获取当前交易时段
|
// 获取当前交易时段
|
||||||
const getCurrentTradingSession = () => {
|
const getCurrentTradingSession = () => {
|
||||||
@@ -219,21 +220,28 @@ const TradingTimeFilter = ({ value, onChange }) => {
|
|||||||
|
|
||||||
// 按钮点击处理
|
// 按钮点击处理
|
||||||
const handleButtonClick = (config) => {
|
const handleButtonClick = (config) => {
|
||||||
logger.debug('TradingTimeFilter', '按钮点击', { config });
|
logger.debug('TradingTimeFilter', '按钮点击', {
|
||||||
|
config,
|
||||||
|
currentSelectedKey: selectedKey,
|
||||||
|
willToggle: selectedKey === config.key
|
||||||
|
});
|
||||||
|
|
||||||
if (selectedKey === config.key) {
|
if (selectedKey === config.key) {
|
||||||
// 取消选中
|
// 取消选中
|
||||||
setSelectedKey(null);
|
setSelectedKey(null);
|
||||||
onChange(null);
|
onChange(null);
|
||||||
|
logger.debug('TradingTimeFilter', '取消选中', { key: config.key });
|
||||||
} else {
|
} else {
|
||||||
// 选中
|
// 选中
|
||||||
setSelectedKey(config.key);
|
setSelectedKey(config.key);
|
||||||
onChange({
|
const timeConfig = {
|
||||||
range: config.range,
|
range: config.range,
|
||||||
type: config.type,
|
type: config.type,
|
||||||
label: config.label,
|
label: config.label,
|
||||||
key: config.key
|
key: config.key
|
||||||
});
|
};
|
||||||
|
onChange(timeConfig);
|
||||||
|
logger.debug('TradingTimeFilter', '选中新按钮', { timeConfig });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user