From 71934491b2941aba691ecbabe3c5c5c55ba8294d Mon Sep 17 00:00:00 2001 From: Sora Morimoto Date: Wed, 2 Jul 2025 16:54:53 +0900 Subject: [PATCH] Prevent crash when `settings` control is enabled in `ControlBar` Replace `useLayoutContext()` with `useMaybeLayoutContext()` in `useSettingsToggle` to handle cases where `LayoutContext` is not provided, preventing crashes when settings control is enabled in `ControlBar` component. Signed-off-by: Sora Morimoto --- .changeset/sweet-parks-shake.md | 9 +++++++++ packages/react/src/hooks/useSettingsToggle.ts | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 .changeset/sweet-parks-shake.md diff --git a/.changeset/sweet-parks-shake.md b/.changeset/sweet-parks-shake.md new file mode 100644 index 000000000..e9b653150 --- /dev/null +++ b/.changeset/sweet-parks-shake.md @@ -0,0 +1,9 @@ +--- +'@livekit/components-react': patch +--- + +Prevent crash when `settings` control is enabled in `ControlBar`. + +Replace `useLayoutContext()` with `useMaybeLayoutContext()` in +`useSettingsToggle` to handle cases where `LayoutContext` is not provided, +preventing crashes when settings control is enabled in `ControlBar` component. diff --git a/packages/react/src/hooks/useSettingsToggle.ts b/packages/react/src/hooks/useSettingsToggle.ts index 5041605a2..e2f50583b 100644 --- a/packages/react/src/hooks/useSettingsToggle.ts +++ b/packages/react/src/hooks/useSettingsToggle.ts @@ -1,4 +1,4 @@ -import { useLayoutContext } from '../context'; +import { useMaybeLayoutContext } from '../context'; import { mergeProps } from '../mergeProps'; import * as React from 'react'; @@ -15,7 +15,8 @@ export interface UseSettingsToggleProps { * @alpha */ export function useSettingsToggle({ props }: UseSettingsToggleProps) { - const { dispatch, state } = useLayoutContext().widget; + const layoutContext = useMaybeLayoutContext(); + const { dispatch, state } = layoutContext?.widget ?? {}; const className = 'lk-button lk-settings-toggle'; const mergedProps = React.useMemo(() => {