Configuration options for the EventSettingsModal component.

EventSettingsModalOptions

Modal Control:

interface EventSettingsModalOptions {
    isEventSettingsModalVisible: boolean;
    onEventSettingsClose: (() => void);
    onModifyEventSettings?: ((options: ModifySettingsOptions) => Promise<void>);
    position?:
        | "topLeft"
        | "topRight"
        | "bottomLeft"
        | "bottomRight";
    backgroundColor?: string;
    audioSetting: string;
    videoSetting: string;
    screenshareSetting: string;
    chatSetting: string;
    updateAudioSetting: ((setting: string) => void);
    updateVideoSetting: ((setting: string) => void);
    updateScreenshareSetting: ((setting: string) => void);
    updateChatSetting: ((setting: string) => void);
    updateIsSettingsModalVisible: ((isVisible: boolean) => void);
    roomName: string;
    socket: Socket<DefaultEventsMap, DefaultEventsMap>;
    showAlert?: ShowAlert;
    style?: object;
    renderContent?: ((options: {
        defaultContent: Element;
        dimensions: {
            width: number;
            height: number;
        };
    }) => Element);
    renderContainer?: ((options: {
        defaultContainer: Element;
        dimensions: {
            width: number;
            height: number;
        };
    }) => ReactNode);
}

Properties

isEventSettingsModalVisible: boolean

Whether the modal is currently visible

onEventSettingsClose: (() => void)

Callback to close the modal

onModifyEventSettings?: ((options: ModifySettingsOptions) => Promise<void>)

Custom handler for settings modifications

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

Modal screen position

backgroundColor?: string

Modal background color

Advanced Render Overrides:

audioSetting: string

Current audio permission ("allow" | "approval" | "disallow")

videoSetting: string

Current video permission ("allow" | "approval" | "disallow")

screenshareSetting: string

Current screenshare permission ("allow" | "approval" | "disallow")

chatSetting: string

Current chat permission ("allow" | "disallow")

State Update Callbacks:

updateAudioSetting: ((setting: string) => void)

Callback to update audio permission setting

updateVideoSetting: ((setting: string) => void)

Callback to update video permission setting

updateScreenshareSetting: ((setting: string) => void)

Callback to update screenshare permission setting

updateChatSetting: ((setting: string) => void)

Callback to update chat permission setting

Session Context:

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

Callback to update modal visibility state

Permission Settings (Current State):

roomName: string

Meeting room name for settings updates

socket: Socket<DefaultEventsMap, DefaultEventsMap>

Socket connection for broadcasting changes

showAlert?: ShowAlert

Optional alert function for user feedback

Customization:

style?: object

Additional custom styles

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

Custom content renderer (receives defaultContent and dimensions)

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

Custom container renderer (receives defaultContainer and dimensions)