import type { FC } from '../../../lib/teact/teact'; import { memo, useCallback, useMemo } from '../../../lib/teact/teact'; import { getActions, withGlobal } from '../../../global'; import type { ApiAvailableReaction, ApiReaction } from '../../../api/types'; import useHistoryBack from '../../../hooks/useHistoryBack'; import ReactionStaticEmoji from '../../common/reactions/ReactionStaticEmoji'; import RadioGroup from '../../ui/RadioGroup'; type OwnProps = { isActive?: boolean; onReset: () => void; }; type StateProps = { availableReactions?: ApiAvailableReaction[]; selectedReaction?: ApiReaction; }; const SettingsQuickReaction: FC = ({ isActive, availableReactions, selectedReaction, onReset, }) => { const { setDefaultReaction } = getActions(); useHistoryBack({ isActive, onBack: onReset, }); const options = useMemo(() => ( (availableReactions || []).filter((availableReaction) => !availableReaction.isInactive) .map((availableReaction) => ({ label: ( <> {availableReaction.title} ), value: availableReaction.reaction.emoticon, })) ), [availableReactions]); const handleChange = useCallback((reaction: string) => { setDefaultReaction({ reaction: { type: 'emoji', emoticon: reaction }, }); }, [setDefaultReaction]); return (
); }; export default memo(withGlobal( (global): Complete => { const { config, reactions } = global; return { availableReactions: reactions.availableReactions, selectedReaction: config?.defaultReaction, }; }, )(SettingsQuickReaction));