signal-desktop/ts/state/smart/MessageSearchResult.tsx

39 lines
1.1 KiB
TypeScript
Raw Normal View History

// Copyright 2019-2021 Signal Messenger, LLC
2020-10-30 20:34:04 +00:00
// SPDX-License-Identifier: AGPL-3.0-only
import type { CSSProperties } from 'react';
2019-01-14 21:49:58 +00:00
import { connect } from 'react-redux';
import { mapDispatchToProps } from '../actions';
import type { StateType } from '../reducer';
2019-01-14 21:49:58 +00:00
import { MessageSearchResult } from '../../components/conversationList/MessageSearchResult';
2021-11-17 21:11:21 +00:00
import { getPreferredBadgeSelector } from '../selectors/badges';
import { getIntl, getTheme } from '../selectors/user';
import { getMessageSearchResultSelector } from '../selectors/search';
2019-01-14 21:49:58 +00:00
type SmartProps = {
id: string;
style?: CSSProperties;
2019-01-14 21:49:58 +00:00
};
function mapStateToProps(state: StateType, ourProps: SmartProps) {
const { id, style } = ourProps;
2019-01-14 21:49:58 +00:00
const props = getMessageSearchResultSelector(state)(id);
2021-07-07 16:37:55 +00:00
if (!props) {
throw new Error('SmartMessageSearchResult: no message was found');
}
return {
...props,
2021-11-17 21:11:21 +00:00
getPreferredBadge: getPreferredBadgeSelector(state),
i18n: getIntl(state),
style,
2021-11-17 21:11:21 +00:00
theme: getTheme(state),
};
2019-01-14 21:49:58 +00:00
}
const smart = connect(mapStateToProps, mapDispatchToProps);
export const SmartMessageSearchResult = smart(MessageSearchResult);