MediaSFU ReactJS
    Preparing search index...

    Interface EventSettingsModalOptions

    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;
        showAlert?: ShowAlert;
        title?: ReactNode;
        overlayProps?: HTMLAttributes<HTMLDivElement>;
        contentProps?: HTMLAttributes<HTMLDivElement>;
        headerProps?: HTMLAttributes<HTMLDivElement>;
        titleProps?: HTMLAttributes<HTMLDivElement>;
        closeButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
        closeIconComponent?: ReactNode;
        headerDividerProps?: HTMLAttributes<HTMLHRElement>;
        bodyProps?: HTMLAttributes<HTMLDivElement>;
        settingFieldProps?: HTMLAttributes<HTMLDivElement>;
        audioFieldProps?: HTMLAttributes<HTMLDivElement>;
        videoFieldProps?: HTMLAttributes<HTMLDivElement>;
        screenshareFieldProps?: HTMLAttributes<HTMLDivElement>;
        chatFieldProps?: HTMLAttributes<HTMLDivElement>;
        settingLabelProps?: LabelHTMLAttributes<HTMLLabelElement>;
        audioLabelProps?: LabelHTMLAttributes<HTMLLabelElement>;
        videoLabelProps?: LabelHTMLAttributes<HTMLLabelElement>;
        screenshareLabelProps?: LabelHTMLAttributes<HTMLLabelElement>;
        chatLabelProps?: LabelHTMLAttributes<HTMLLabelElement>;
        settingSelectProps?: SelectHTMLAttributes<HTMLSelectElement>;
        audioSelectProps?: SelectHTMLAttributes<HTMLSelectElement>;
        videoSelectProps?: SelectHTMLAttributes<HTMLSelectElement>;
        screenshareSelectProps?: SelectHTMLAttributes<HTMLSelectElement>;
        chatSelectProps?: SelectHTMLAttributes<HTMLSelectElement>;
        separatorProps?: HTMLAttributes<HTMLDivElement>;
        footerProps?: HTMLAttributes<HTMLDivElement>;
        saveButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
        saveButtonLabel?: ReactNode;
        audioLabel?: ReactNode;
        videoLabel?: ReactNode;
        screenshareLabel?: ReactNode;
        chatLabel?: ReactNode;
        disallowOptionLabel?: ReactNode;
        allowOptionLabel?: ReactNode;
        approvalOptionLabel?: ReactNode;
        chatDisallowOptionLabel?: ReactNode;
        chatAllowOptionLabel?: ReactNode;
        audioOptions?: EventSettingOption[];
        videoOptions?: EventSettingOption[];
        screenshareOptions?: EventSettingOption[];
        chatOptions?: EventSettingOption[];
        renderHeader?: (params: { defaultHeader: ReactNode }) => ReactNode;
        renderBody?: (params: { defaultBody: ReactNode }) => ReactNode;
        renderSettings?: (
            params: {
                defaultSettings: ReactNode;
                sections: EventSettingSectionRenderInfo[];
            },
        ) => ReactNode;
        renderSettingSection?: (params: RenderSettingSectionParams) => ReactNode;
        renderSeparator?: (
            params: { defaultSeparator: ReactNode; index: number },
        ) => ReactNode;
        renderFooter?: (params: { defaultFooter: ReactNode }) => ReactNode;
        renderContent?: (params: { defaultContent: ReactNode }) => ReactNode;
        isDarkMode?: boolean;
        enableGlassmorphism?: boolean;
        renderMode?: ModalRenderMode;
    }
    Index

    Properties

    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
    showAlert?: ShowAlert
    title?: ReactNode
    overlayProps?: HTMLAttributes<HTMLDivElement>
    contentProps?: HTMLAttributes<HTMLDivElement>
    headerProps?: HTMLAttributes<HTMLDivElement>
    titleProps?: HTMLAttributes<HTMLDivElement>
    closeButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>
    closeIconComponent?: ReactNode
    headerDividerProps?: HTMLAttributes<HTMLHRElement>
    bodyProps?: HTMLAttributes<HTMLDivElement>
    settingFieldProps?: HTMLAttributes<HTMLDivElement>
    audioFieldProps?: HTMLAttributes<HTMLDivElement>
    videoFieldProps?: HTMLAttributes<HTMLDivElement>
    screenshareFieldProps?: HTMLAttributes<HTMLDivElement>
    chatFieldProps?: HTMLAttributes<HTMLDivElement>
    settingLabelProps?: LabelHTMLAttributes<HTMLLabelElement>
    audioLabelProps?: LabelHTMLAttributes<HTMLLabelElement>
    videoLabelProps?: LabelHTMLAttributes<HTMLLabelElement>
    screenshareLabelProps?: LabelHTMLAttributes<HTMLLabelElement>
    chatLabelProps?: LabelHTMLAttributes<HTMLLabelElement>
    settingSelectProps?: SelectHTMLAttributes<HTMLSelectElement>
    audioSelectProps?: SelectHTMLAttributes<HTMLSelectElement>
    videoSelectProps?: SelectHTMLAttributes<HTMLSelectElement>
    screenshareSelectProps?: SelectHTMLAttributes<HTMLSelectElement>
    chatSelectProps?: SelectHTMLAttributes<HTMLSelectElement>
    separatorProps?: HTMLAttributes<HTMLDivElement>
    footerProps?: HTMLAttributes<HTMLDivElement>
    saveButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>
    saveButtonLabel?: ReactNode
    audioLabel?: ReactNode
    videoLabel?: ReactNode
    screenshareLabel?: ReactNode
    chatLabel?: ReactNode
    disallowOptionLabel?: ReactNode
    allowOptionLabel?: ReactNode
    approvalOptionLabel?: ReactNode
    chatDisallowOptionLabel?: ReactNode
    chatAllowOptionLabel?: ReactNode
    audioOptions?: EventSettingOption[]
    videoOptions?: EventSettingOption[]
    screenshareOptions?: EventSettingOption[]
    chatOptions?: EventSettingOption[]
    renderHeader?: (params: { defaultHeader: ReactNode }) => ReactNode
    renderBody?: (params: { defaultBody: ReactNode }) => ReactNode
    renderSettings?: (
        params: {
            defaultSettings: ReactNode;
            sections: EventSettingSectionRenderInfo[];
        },
    ) => ReactNode
    renderSettingSection?: (params: RenderSettingSectionParams) => ReactNode
    renderSeparator?: (
        params: { defaultSeparator: ReactNode; index: number },
    ) => ReactNode
    renderFooter?: (params: { defaultFooter: ReactNode }) => ReactNode
    renderContent?: (params: { defaultContent: ReactNode }) => ReactNode
    isDarkMode?: boolean

    Theme control - whether dark mode is active

    enableGlassmorphism?: boolean

    Enable glassmorphism effects (modern UI)

    renderMode?: ModalRenderMode

    Render mode: modal (default overlay), sidebar (inline for desktop), inline (no wrapper)