import {
OverlayProvider,
Chat,
Channel,
PollAllOptions,
} from "stream-chat-react-native";
const App = () => {
return (
<OverlayProvider>
<Chat client={client}>
<Channel channel={channel}>
<PollAllOptions
message={message}
poll={poll}
{...otherOptionalProps}
/>
</Channel>
</Chat>
</OverlayProvider>
);
};
PollAllOptions
A component used to render a list of all of the options that a Poll
has. Voting on each option on this screen is also enabled. Needs to be structured inside a Channel
component.
It will render its default PollAllOptionsContent
, which can be overridden for custom UI. Its children have access to the entire poll
state through the usePollState
hook.
General Usage
Props
message
Message object.
Type |
---|
Message type |
poll
*
An instance of the Poll
class containing reactive state.
It is used by the underlying usePollContext
, usePollStateStore
and usePollState
hooks to provide us with the reactive Poll
state.
If you need the Poll
instance you may get it from client.polls.fromState(pollId)
.
Type |
---|
object |
additionalScrollViewProps
A prop used to override the underlying ScrollView
props of the PollAllOptions
.
const flatListProps = { bounces: true };
<PollAllOptions additionalFlatListProps={flatListProps} />;
Type |
---|
object |
PollAllOptionsContent
A Component
prop used to render the content of the PollAllOptions
component.
The component has full access to the entire Poll
reactive state through the usePollState
hook.
Type | Default |
---|---|
ComponentType | PollAllOptionsContent |
Usage
import { Text } from "react-native";
import {
OverlayProvider,
Chat,
Channel,
PollAllOptions,
usePollState,
} from "stream-chat-react-native";
const MyPollAllOptionsContent = () => {
const { options } = usePollState();
return options.map((option) => <Text>{option.id}</Text>);
};
const App = () => {
return (
<OverlayProvider>
<Chat client={client}>
<Channel channel={channel}>
<PollAllOptions
message={message}
poll={poll}
PollAllOptionsContent={MyPollAllOptionsContent}
/>
</Channel>
</Chat>
</OverlayProvider>
);
};