@@ -12,9 +12,10 @@ import type {
1212 CustomComponentsApi as ICustomComponentsApi ,
1313 CustomMessageRenderFunction ,
1414 CustomMessageComponentProps as ModuleCustomMessageComponentProps ,
15- OriginalComponentProps ,
15+ OriginalMessageComponentProps ,
1616 CustomMessageRenderHints as ModuleCustomCustomMessageRenderHints ,
1717 MatrixEvent as ModuleMatrixEvent ,
18+ CustomRoomPreviewBarRenderFunction ,
1819} from "@element-hq/element-web-module-api" ;
1920import type React from "react" ;
2021
@@ -72,6 +73,7 @@ export class CustomComponentsApi implements ICustomComponentsApi {
7273 ) : void {
7374 this . registeredMessageRenderers . push ( { eventTypeOrFilter : eventTypeOrFilter , renderer, hints } ) ;
7475 }
76+
7577 /**
7678 * Select the correct renderer based on the event information.
7779 * @param mxEvent The message event being rendered.
@@ -100,7 +102,7 @@ export class CustomComponentsApi implements ICustomComponentsApi {
100102 */
101103 public renderMessage (
102104 props : CustomMessageComponentProps ,
103- originalComponent ?: ( props ?: OriginalComponentProps ) => React . JSX . Element ,
105+ originalComponent ?: ( props ?: OriginalMessageComponentProps ) => React . JSX . Element ,
104106 ) : React . JSX . Element | null {
105107 const moduleEv = CustomComponentsApi . getModuleMatrixEvent ( props . mxEvent ) ;
106108 const renderer = moduleEv && this . selectRenderer ( moduleEv ) ;
@@ -134,4 +136,21 @@ export class CustomComponentsApi implements ICustomComponentsApi {
134136 }
135137 return null ;
136138 }
139+
140+ private _roomPreviewBarRenderer ?: CustomRoomPreviewBarRenderFunction ;
141+
142+ /**
143+ * Get the custom room preview bar renderer, if any has been registered.
144+ */
145+ public get roomPreviewBarRenderer ( ) : CustomRoomPreviewBarRenderFunction | undefined {
146+ return this . _roomPreviewBarRenderer ;
147+ }
148+
149+ /**
150+ * Register a custom room preview bar renderer.
151+ * @param renderer - the function that will render the custom room preview bar.
152+ */
153+ public registerRoomPreviewBar ( renderer : CustomRoomPreviewBarRenderFunction ) : void {
154+ this . _roomPreviewBarRenderer = renderer ;
155+ }
137156}
0 commit comments