Configuration options for the PollModal component.

PollModalOptions

Modal Control:

interface PollModalOptions {
    isPollModalVisible: boolean;
    onClose: (() => void);
    position?:
        | "center"
        | "topLeft"
        | "topRight"
        | "bottomLeft"
        | "bottomRight";
    backgroundColor?: string;
    member: string;
    islevel: string;
    polls: Poll[];
    poll: Poll;
    socket: Socket<DefaultEventsMap, DefaultEventsMap>;
    roomName: string;
    showAlert?: ShowAlert;
    updateIsPollModalVisible: ((isVisible: boolean) => void);
    handleCreatePoll: HandleCreatePollType;
    handleEndPoll: HandleEndPollType;
    handleVotePoll: HandleVotePollType;
    style?: object;
    renderContent?: ((options: {
        defaultContent: Element;
        dimensions: {
            width: number;
            height: number;
        };
    }) => Element);
    renderContainer?: ((options: {
        defaultContainer: Element;
        dimensions: {
            width: number;
            height: number;
        };
    }) => ReactNode);
}

Properties

isPollModalVisible: boolean

Controls modal visibility

onClose: (() => void)

Callback when modal is closed

position?:
    | "center"
    | "topLeft"
    | "topRight"
    | "bottomLeft"
    | "bottomRight"

Modal position on screen

backgroundColor?: string

Modal background color

member: string

Current user's name/ID

islevel: string

User level ('0'=participant, '1'=co-host, '2'=host) - determines if create/end poll buttons are shown

Session Context:

polls: Poll[]

Array of all polls in the room

poll: Poll

Currently active/selected poll

socket: Socket<DefaultEventsMap, DefaultEventsMap>

Socket.io instance for real-time poll synchronization

roomName: string

Room identifier for poll events

showAlert?: ShowAlert

Alert display function for user feedback

Customization:

updateIsPollModalVisible: ((isVisible: boolean) => void)

Updates modal visibility state

Poll Management:

handleCreatePoll: HandleCreatePollType

Handler for creating new polls (host/co-host only)

handleEndPoll: HandleEndPollType

Handler for ending active polls (host/co-host only)

handleVotePoll: HandleVotePollType

Handler for voting in polls

User Context:

style?: object

Additional custom styles for modal container

Advanced Render Overrides:

renderContent?: ((options: {
    defaultContent: Element;
    dimensions: {
        width: number;
        height: number;
    };
}) => Element)

Custom render function for modal content

renderContainer?: ((options: {
    defaultContainer: Element;
    dimensions: {
        width: number;
        height: number;
    };
}) => ReactNode)

Custom render function for modal container