From 1bd593b530cdaac6c0c1b4e44dc91e03a56f14cf Mon Sep 17 00:00:00 2001 From: Gigiaj Date: Thu, 8 May 2025 17:59:51 -0500 Subject: [PATCH] update client layout to funnel outlet the iframes for the call container --- src/app/pages/client/ClientLayout.tsx | 38 ++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/src/app/pages/client/ClientLayout.tsx b/src/app/pages/client/ClientLayout.tsx index 9aa431a8..62ba0e05 100644 --- a/src/app/pages/client/ClientLayout.tsx +++ b/src/app/pages/client/ClientLayout.tsx @@ -1,9 +1,11 @@ -import React, { ReactNode, useMemo } from 'react'; +import React, { ReactNode, useMemo, useRef } from 'react'; import { Box } from 'folds'; -import { useParams } from 'react-router-dom'; +import { Outlet, useParams } from 'react-router-dom'; import { useCallState } from './CallProvider'; import { PersistentCallContainer } from '../call/PersistentCallContainer'; import { useMatrixClient } from '../../hooks/useMatrixClient'; +import { ClientWidgetApi } from 'matrix-widget-api'; +import { SmallWidget } from '../../features/room/SmallWidget'; type ClientLayoutProps = { nav: ReactNode; @@ -11,6 +13,13 @@ type ClientLayoutProps = { }; export function ClientLayout({ nav, children }: ClientLayoutProps) { const { activeCallRoomId } = useCallState(); + const iframeRef = useRef(null); + const widgetApiRef = useRef(null); + const smallWidgetRef = useRef(null); + + const backupIframeRef = useRef(null); + const backupWidgetApiRef = useRef(null); + const backupSmallWidgetRef = useRef(null); const { roomIdOrAlias: viewedRoomId } = useParams(); const mx = useMatrixClient(); const isCall = mx.getRoom(viewedRoomId)?.isCallRoom(); @@ -22,21 +31,38 @@ export function ClientLayout({ nav, children }: ClientLayoutProps) { + - {children} + - - {' '} + ); }