11import React , { useMemo } from 'react' ;
22import { FlatList , type FlatListProps , StyleSheet , Text , View } from 'react-native' ;
33
4- import { PollAnswer } from 'stream-chat' ;
4+ import { PollAnswer , VotingVisibility } from 'stream-chat' ;
55
66import { AnswerListAddCommentButton } from './Button' ;
77
@@ -15,6 +15,7 @@ import { DefaultStreamChatGenerics } from '../../../types/types';
1515import { getDateString } from '../../../utils/i18n/getDateString' ;
1616import { Avatar } from '../../Avatar/Avatar' ;
1717import { usePollAnswersPagination } from '../hooks/usePollAnswersPagination' ;
18+ import { usePollState } from '../hooks/usePollState' ;
1819
1920export type PollAnswersListProps <
2021 StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics ,
@@ -25,6 +26,8 @@ export type PollAnswersListProps<
2526
2627export const PollAnswerListItem = ( { answer } : { answer : PollAnswer } ) => {
2728 const { t, tDateTimeParser } = useTranslationContext ( ) ;
29+ const { voting_visibility } = usePollState ( ) ;
30+
2831 const {
2932 theme : {
3033 colors : { bg_user, black } ,
@@ -37,12 +40,17 @@ export const PollAnswerListItem = ({ answer }: { answer: PollAnswer }) => {
3740 const dateString = useMemo (
3841 ( ) =>
3942 getDateString ( {
40- date : answer . created_at ,
43+ date : answer . updated_at ,
4144 t,
4245 tDateTimeParser,
4346 timestampTranslationKey : 'timestamp/PollVote' ,
4447 } ) ,
45- [ answer . created_at , t , tDateTimeParser ] ,
48+ [ answer . updated_at , t , tDateTimeParser ] ,
49+ ) ;
50+
51+ const isAnonymous = useMemo (
52+ ( ) => voting_visibility === VotingVisibility . anonymous ,
53+ [ voting_visibility ] ,
4654 ) ;
4755
4856 return (
@@ -52,8 +60,12 @@ export const PollAnswerListItem = ({ answer }: { answer: PollAnswer }) => {
5260 </ Text >
5361 < View style = { [ styles . listItemInfoContainer , itemStyle . infoContainer ] } >
5462 < View style = { [ styles . listItemUserInfoContainer , itemStyle . userInfoContainer ] } >
55- < Avatar image = { answer . user ?. image as string } size = { 20 } />
56- < Text style = { { color : black , fontSize : 14 , marginLeft : 2 } } > { answer . user ?. name } </ Text >
63+ { ! isAnonymous && answer . user ?. image ? (
64+ < Avatar image = { answer . user ?. image as string } size = { 20 } />
65+ ) : null }
66+ < Text style = { { color : black , fontSize : 14 , marginLeft : 2 } } >
67+ { isAnonymous ? t < string > ( 'Anonymous' ) : answer . user ?. name }
68+ </ Text >
5769 </ View >
5870 < Text style = { { color : black } } > { dateString } </ Text >
5971 </ View >
0 commit comments