From c85977cb68b10ba06c1f43c02b48a8bf67e1c69f Mon Sep 17 00:00:00 2001
From: Cyril
Date: Wed, 18 Feb 2026 14:28:14 +0100
Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(frontend)=20add=20clickable=20setting?=
=?UTF-8?q?s=20general=20link=20in=20idle=20modal?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
helps users quickly disable idle warning from the right settings tab.
---
CHANGELOG.md | 4 ++++
.../components/IsIdleDisconnectModal.tsx | 19 +++++++++++++++++--
src/frontend/src/locales/de/rooms.json | 4 +++-
src/frontend/src/locales/en/rooms.json | 4 +++-
src/frontend/src/locales/fr/rooms.json | 4 +++-
src/frontend/src/locales/nl/rooms.json | 4 +++-
6 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 242b7b9b..e3ebdcf4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,10 @@ and this project adheres to
## [Unreleased]
+### Changed
+
+- ✨(frontend) add clickable settings general link in idle modal #974
+
## [1.6.0] - 2026-02-10
### Added
diff --git a/src/frontend/src/features/rooms/livekit/components/IsIdleDisconnectModal.tsx b/src/frontend/src/features/rooms/livekit/components/IsIdleDisconnectModal.tsx
index 0eca6343..60f3d2f2 100644
--- a/src/frontend/src/features/rooms/livekit/components/IsIdleDisconnectModal.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/IsIdleDisconnectModal.tsx
@@ -1,4 +1,4 @@
-import { Button, Dialog, H, P, ScreenReaderAnnouncer } from '@/primitives'
+import { A, Button, Dialog, H, P, ScreenReaderAnnouncer } from '@/primitives'
import { useTranslation } from 'react-i18next'
import { css } from '@/styled-system/css'
import { useSnapshot } from 'valtio'
@@ -9,6 +9,8 @@ import { navigateTo } from '@/navigation/navigateTo'
import humanizeDuration from 'humanize-duration'
import i18n from 'i18next'
import { useScreenReaderAnnounce } from '@/hooks/useScreenReaderAnnounce'
+import { useSettingsDialog } from '@/features/settings/hook/useSettingsDialog'
+import { SettingsDialogExtendedKey } from '@/features/settings/type'
const IDLE_DISCONNECT_TIMEOUT_MS = 120000 // 2 minutes
const COUNTDOWN_ANNOUNCEMENT_SECONDS = [90, 60, 30]
@@ -18,6 +20,7 @@ export const IsIdleDisconnectModal = () => {
const connectionObserverSnap = useSnapshot(connectionObserverStore)
const [timeRemaining, setTimeRemaining] = useState(IDLE_DISCONNECT_TIMEOUT_MS)
const lastAnnouncementRef = useRef(null)
+ const { openSettingsDialog } = useSettingsDialog()
const { t } = useTranslation('rooms', { keyPrefix: 'isIdleDisconnectModal' })
const announce = useScreenReaderAnnounce()
@@ -117,7 +120,19 @@ export const IsIdleDisconnectModal = () => {
}),
})}
- {t('settings')}
+
+ {t('settingsPrefix')}{' '}
+ {
+ connectionObserverStore.isIdleDisconnectModalOpen = false
+ openSettingsDialog(SettingsDialogExtendedKey.GENERAL)
+ }}
+ >
+ {t('settingsLink')}
+
+ {t('settingsSuffix')}
+