frontend: remove unused meeting components plugins and action handler interfaces

This commit is contained in:
Carlos Santos 2025-11-24 18:58:26 +01:00
parent 153af9c673
commit c3ca84ad66
3 changed files with 0 additions and 160 deletions

View File

@ -1,65 +0,0 @@
import { InjectionToken, Type } from '@angular/core';
/**
* Interface for registering custom components to be used in the meeting view.
* Each property represents a slot where a custom component can be injected.
*/
export interface MeetingComponentsPlugins {
/**
* Toolbar-related plugin components
*/
toolbar?: MeetingComponentsToolbarPlugins;
/**
* Participant panel-related plugin components
*/
participantPanel?: MeetingComponentsParticipantPanelPlugins;
/**
* Complete custom layout component that replaces the entire default layout.
* This component will receive all necessary inputs including additionalElements plugin.
*/
layout?: Type<any>;
/**
* Additional elements to inject within the layout component.
* The layout component should provide an injection point for these elements.
*
* @example
* layoutAdditionalElements: ShareLinkOverlayComponent
*/
layoutAdditionalElements?: Type<any>;
/**
* Lobby-related plugin components
*/
lobby?: Type<any>;
}
export interface MeetingComponentsToolbarPlugins {
/**
* Additional buttons to show in the toolbar (e.g., copy link, settings)
*/
additionalButtons?: Type<any>;
/**
* Custom leave button component (only shown for moderators)
*/
leaveButton?: Type<any>;
}
export interface MeetingComponentsParticipantPanelPlugins {
/**
* Custom component to render each participant item in the panel
*/
item?: Type<any>;
/**
* Component to show after the local participant in the panel
*/
afterLocalParticipant?: Type<any>;
}
/**
* Injection token for registering meeting plugins.
* Apps (CE/PRO) should provide their custom components using this token.
*/
export const MEETING_COMPONENTS_TOKEN = new InjectionToken<MeetingComponentsPlugins>('MEETING_COMPONENTS_TOKEN');

View File

@ -1,89 +0,0 @@
import { InjectionToken } from '@angular/core';
import { CustomParticipantModel } from '../../models';
/**
* Interface defining the controls to show for a participant in the participant panel.
*/
export interface ParticipantControls {
/**
* Whether to show the moderator badge
*/
showModeratorBadge: boolean;
/**
* Whether to show moderation controls (make/unmake moderator, kick)
*/
showModerationControls: boolean;
/**
* Whether to show the "Make Moderator" button
*/
showMakeModerator: boolean;
/**
* Whether to show the "Remove Moderator" button
*/
showUnmakeModerator: boolean;
/**
* Whether to show the "Kick" button
*/
showKickButton: boolean;
}
/**
* Abstract class defining the actions that can be performed in a meeting.
* Apps (CE/PRO) must extend this class and provide their implementation.
*/
export abstract class MeetingActionHandler {
/**
* Room ID - will be set by MeetingComponent
*/
roomId = '';
/**
* Room secret - will be set by MeetingComponent
*/
roomSecret = '';
/**
* Local participant - will be set by MeetingComponent
*/
localParticipant?: CustomParticipantModel;
/**
* Kicks a participant from the meeting
*/
abstract kickParticipant(participant: CustomParticipantModel): Promise<void>;
/**
* Makes a participant a moderator
*/
abstract makeModerator(participant: CustomParticipantModel): Promise<void>;
/**
* Removes moderator role from a participant
*/
abstract unmakeModerator(participant: CustomParticipantModel): Promise<void>;
/**
* Copies the moderator link to clipboard
*/
abstract copyModeratorLink(): Promise<void>;
/**
* Copies the speaker link to clipboard
*/
abstract copySpeakerLink(): Promise<void>;
/**
* Gets the controls to show for a participant based on permissions and roles
*/
abstract getParticipantControls(participant: CustomParticipantModel): ParticipantControls;
}
/**
* Injection token for the meeting action handler.
* Apps (CE/PRO) should provide their implementation using this token.
*/
export const MEETING_ACTION_HANDLER_TOKEN = new InjectionToken<MeetingActionHandler>('MEETING_ACTION_HANDLER_TOKEN');

View File

@ -1,7 +1 @@
/**
* Index file for customization exports
*/
export * from './components/meeting-components-plugins.token';
export * from './handlers/meeting-action-handler';
export * from './components/index';