import { FC, FormEvent, useCallback, useMemo } from 'react'; import classNames from 'classnames'; import { Group } from '~/components/common/Group'; import { Icon } from '~/components/common/Icon'; import { Superpower } from '~/components/common/Superpower'; import { InputText } from '~/components/input/InputText'; import { Toggle } from '~/components/input/Toggle'; import { experimentalFeatures } from '~/constants/features'; import styles from '~/containers/flow/FlowStamp/styles.module.scss'; import { useFlowContext } from '~/utils/providers/FlowProvider'; import { useSearchContext } from '~/utils/providers/SearchProvider'; import { FlowRecent } from './components/FlowRecent'; import { FlowSearchResults } from './components/FlowSearchResults'; interface Props { isFluid: boolean; onToggleLayout: () => void; } const FlowStamp: FC = ({ isFluid, onToggleLayout }) => { const { searchText, hasMore: searchHasMore, searchIsLoading, searchResults, setSearchText, loadMore: onSearchLoadMore, } = useSearchContext(); const { recent, updates } = useFlowContext(); const onSearchSubmit = useCallback((event: FormEvent) => { event.preventDefault(); }, []); const onClearSearch = useCallback(() => setSearchText(''), [setSearchText]); const onKeyUp = useCallback( (event) => { if (event.key !== 'Escape') return; onClearSearch(); event.target.blur(); }, [onClearSearch], ); const after = useMemo( () => searchText ? ( ) : ( ), [onClearSearch, searchText], ); return (
{searchText ? (
Результаты поиска
) : (
Что нового?
)} {experimentalFeatures.liquidFlow && (
Жидкое течение
)}
); }; export { FlowStamp };