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);
|
||||
setCustomRange(null);
|
||||
logger.debug('TradingTimeFilter', '外部重置,清空选中状态');
|
||||
} else if (value !== selectedKey) {
|
||||
} else {
|
||||
// 外部选中值变化,同步内部状态
|
||||
setSelectedKey(value);
|
||||
logger.debug('TradingTimeFilter', '外部value变化,同步内部状态', { value });
|
||||
}
|
||||
}, [value, selectedKey]);
|
||||
}, [value]);
|
||||
|
||||
// 获取当前交易时段
|
||||
const getCurrentTradingSession = () => {
|
||||
@@ -219,21 +220,28 @@ const TradingTimeFilter = ({ value, onChange }) => {
|
||||
|
||||
// 按钮点击处理
|
||||
const handleButtonClick = (config) => {
|
||||
logger.debug('TradingTimeFilter', '按钮点击', { config });
|
||||
logger.debug('TradingTimeFilter', '按钮点击', {
|
||||
config,
|
||||
currentSelectedKey: selectedKey,
|
||||
willToggle: selectedKey === config.key
|
||||
});
|
||||
|
||||
if (selectedKey === config.key) {
|
||||
// 取消选中
|
||||
setSelectedKey(null);
|
||||
onChange(null);
|
||||
logger.debug('TradingTimeFilter', '取消选中', { key: config.key });
|
||||
} else {
|
||||
// 选中
|
||||
setSelectedKey(config.key);
|
||||
onChange({
|
||||
const timeConfig = {
|
||||
range: config.range,
|
||||
type: config.type,
|
||||
label: config.label,
|
||||
key: config.key
|
||||
});
|
||||
};
|
||||
onChange(timeConfig);
|
||||
logger.debug('TradingTimeFilter', '选中新按钮', { timeConfig });
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user