UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

44 lines 1.96 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.useChannelPreviewPollLabel = void 0; var _react = require("react"); var _ChatContext = require("../../../contexts/chatContext/ChatContext"); var _TranslationContext = require("../../../contexts/translationContext/TranslationContext"); var _useStateStore = require("../../../hooks/useStateStore"); var selector = nextValue => ({ latest_votes_by_option: nextValue.latest_votes_by_option, options: nextValue.options }); var useChannelPreviewPollLabel = ({ pollId }) => { var _useChatContext = (0, _ChatContext.useChatContext)(), client = _useChatContext.client; var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(), t = _useTranslationContex.t; var poll = client.polls.fromState(pollId); var pollState = (0, _useStateStore.useStateStore)(poll?.state, selector) ?? {}; var latestVotesByOption = pollState.latest_votes_by_option, pollOptions = pollState.options; var latestVotes = (0, _react.useMemo)(() => latestVotesByOption ? Object.values(latestVotesByOption).map(votes => votes?.[0]).sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime()) : [], [latestVotesByOption]); return (0, _react.useMemo)(() => { if (!(latestVotes && latestVotes.length && latestVotes[0].user)) return; { var option = pollOptions?.find(option => option.id === latestVotes[0].option_id); var voteUser = latestVotes[0].user; if (voteUser.id === client.user?.id) { return t('You voted: {{ option }}', { option: option?.text }); } else { return t('{{ user }} voted: {{ option }}', { user: voteUser.name || voteUser.id, option: option?.text }); } } }, [latestVotes, pollOptions, client.user?.id, t]); }; exports.useChannelPreviewPollLabel = useChannelPreviewPollLabel; //# sourceMappingURL=useChannelPreviewPollLabel.js.map