mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-05-14 20:37:50 +00:00
The panel will appear on the right side after the participant pane panel. Currently the panel is disabled by default and the components that are rendered in the panel are empty (null). The panel is easily customizable by adding some content in the CustomPanel component.
68 lines
1.8 KiB
TypeScript
68 lines
1.8 KiB
TypeScript
import { IReduxState } from '../app/types';
|
|
|
|
import { DEFAULT_CUSTOM_PANEL_WIDTH } from './constants';
|
|
|
|
/**
|
|
* Returns whether the custom panel is enabled based on Redux state.
|
|
* The feature is disabled by default and can be enabled dynamically via console.
|
|
*
|
|
* @param {IReduxState} state - The Redux state.
|
|
* @returns {boolean} Whether the custom panel is enabled.
|
|
*/
|
|
export function isCustomPanelEnabled(state: IReduxState): boolean {
|
|
return Boolean(state['features/custom-panel']?.enabled);
|
|
}
|
|
|
|
/**
|
|
* Returns the custom panel URL.
|
|
* Override to provide the actual URL.
|
|
*
|
|
* @returns {string} The custom panel URL.
|
|
*/
|
|
export function getCustomPanelUrl(): string {
|
|
return '';
|
|
}
|
|
|
|
/**
|
|
* Returns the custom panel button icon.
|
|
* Override to provide the actual icon.
|
|
*
|
|
* @returns {Function | undefined} The icon component.
|
|
*/
|
|
export function getCustomPanelIcon(): Function | undefined {
|
|
return undefined;
|
|
}
|
|
|
|
/**
|
|
* Returns the configured panel width.
|
|
*
|
|
* @returns {number} The panel width in pixels.
|
|
*/
|
|
export function getCustomPanelConfiguredWidth(): number {
|
|
return DEFAULT_CUSTOM_PANEL_WIDTH;
|
|
}
|
|
|
|
/**
|
|
* Returns whether the custom panel is currently open.
|
|
*
|
|
* @param {IReduxState} state - The Redux state.
|
|
* @returns {boolean} Whether the custom panel is open.
|
|
*/
|
|
export function getCustomPanelOpen(state: IReduxState): boolean {
|
|
return Boolean(state['features/custom-panel']?.isOpen);
|
|
}
|
|
|
|
/**
|
|
* Returns the current panel width (0 if closed or disabled).
|
|
*
|
|
* @param {IReduxState} state - The Redux state.
|
|
* @returns {number} The panel width in pixels.
|
|
*/
|
|
export function getCustomPanelWidth(state: IReduxState): number {
|
|
if (!isCustomPanelEnabled(state)) {
|
|
return 0;
|
|
}
|
|
|
|
return getCustomPanelOpen(state) ? getCustomPanelConfiguredWidth() : 0;
|
|
}
|