mediasfu-angular
Version:
mediasfu-angular - Angular 17/18/19 WebRTC SDK for video conferencing, webinars, broadcasts, live streaming, chat, recording, whiteboard, and AI agents. Prebuilt rooms and fully custom UIs.
63 lines (62 loc) • 2.59 kB
TypeScript
import { Poll, ShowAlert } from '../../@types/types';
import { Socket } from 'socket.io-client';
import * as i0 from "@angular/core";
export interface HandleCreatePollOptions {
poll: Poll;
socket: Socket;
roomName: string;
showAlert?: ShowAlert;
updateIsPollModalVisible: (visible: boolean) => void;
}
export type HandleCreatePollType = (options: HandleCreatePollOptions) => Promise<void>;
/**
* Handles the creation of a poll.
*
* This method sends a request to create a poll in the specified room via a socket event.
* It also handles the response from the server to notify the user whether the poll was
* created successfully or if there was an error.
*
* @param {HandleCreatePollOptions} options - The options for creating the poll.
* @param {Poll} options.poll - The poll object containing the poll details.
* @param {Socket} options.socket - The socket instance for emitting events.
* @param {string} options.roomName - The name of the room where the poll will be created.
* @param {Function} [options.showAlert] - Optional function to show alert messages.
* @param {Function} options.updateIsPollModalVisible - Function to update the visibility of the poll modal.
*
* @returns {Promise<void>} A promise that resolves when the poll is created successfully.
*
* @throws Will handle any errors during the poll creation process silently.
*
* @example
* ```typescript
* const handleCreatePollService = new HandleCreatePoll();
* const pollData = {
* question: 'What is your favorite color?',
* options: ['Red', 'Blue', 'Green'],
* };
* await handleCreatePollService.handleCreatePoll({
* poll: pollData,
* socket: socketInstance,
* roomName: 'room1',
* showAlert: ({ message, type }) => {
* console.log(`Alert: ${message} - Type: ${type}`);
* },
* updateIsPollModalVisible: (isVisible) => {
* console.log('Poll modal visibility:', isVisible);
* },
* });
* ```
*/
export declare class HandleCreatePoll {
/**
* Handles the creation of a poll.
*
* @param {Object} options - The options for creating the poll.
* @param {Poll} options.poll - The poll object containing the poll details.
* @param {Object} options.parameters - Additional parameters for creating the poll.
* @returns {Promise<void>} - A promise that resolves when the poll is created successfully.
*/
handleCreatePoll(options: HandleCreatePollOptions): Promise<void>;
static ɵfac: i0.ɵɵFactoryDeclaration<HandleCreatePoll, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<HandleCreatePoll>;
}