([])
@@ -250,14 +253,24 @@ const MessengerWidget = () => {
})
}
- const closeWidget = () => {
+ const closeWidget = useCallback(() => {
setOpen(false)
- setMaximized(false)
setSelectedIds([])
setText('')
setAttachments([])
setShowEmoji(false)
- }
+ }, [])
+
+ useEffect(() => {
+ if (!open) return
+
+ const handleKeyDown = (event: KeyboardEvent) => {
+ if (event.key === 'Escape') closeWidget()
+ }
+
+ window.addEventListener('keydown', handleKeyDown)
+ return () => window.removeEventListener('keydown', handleKeyDown)
+ }, [closeWidget, open])
const handleFiles = async (files: FileList | null) => {
if (!files?.length) return
@@ -349,11 +362,10 @@ const MessengerWidget = () => {
setText((current) => `${current}${emoji.emoji}`)
}
- if (!auth.session.signedIn) return null
+ if (!auth.session.signedIn || !location.pathname.startsWith('/admin')) return null
- const panelClassName = maximized
- ? 'pointer-events-auto fixed inset-2 z-[51] overflow-hidden rounded-xl border border-gray-200 bg-white/80 shadow-[0_24px_80px_rgba(15,23,42,0.35)] backdrop-blur-xl dark:border-gray-700 dark:bg-gray-900/85 sm:inset-4'
- : 'pointer-events-auto fixed inset-x-2 bottom-20 top-3 z-[51] overflow-hidden rounded-xl border border-gray-200 bg-white/80 shadow-[0_24px_80px_rgba(15,23,42,0.35)] backdrop-blur-xl dark:border-gray-700 dark:bg-gray-900/85 sm:inset-auto sm:bottom-20 sm:right-5 sm:h-[min(75vh,680px)] sm:w-[min(78vw,800px)]'
+ const panelClassName =
+ 'pointer-events-auto fixed inset-2 z-[51] overflow-hidden rounded-xl border border-gray-200 bg-white/80 shadow-[0_24px_80px_rgba(15,23,42,0.35)] backdrop-blur-xl dark:border-gray-700 dark:bg-gray-900/85 sm:inset-4'
const headerActionClassName =
'text-gray-600 hover:bg-gray-900/10 hover:text-gray-900 active:bg-gray-900/15 dark:text-gray-200 dark:hover:bg-white/10 dark:hover:text-white dark:active:bg-white/15'
@@ -405,21 +417,6 @@ const MessengerWidget = () => {
-
- : }
- className={headerActionClassName}
- onClick={() => setMaximized((value) => !value)}
- />
-
-
:
}
- className={headerActionClassName}
- onClick={() => setMaximized((value) => !value)}
- title={
- maximized
- ? translate('::MessengerWidget.Minimize')
- : translate('::MessengerWidget.Maximize')
- }
- />
-
-
{translate('::App.SiteManagement.Theme.Style')}
-
-
{translate('::SidePanel.NavMode')}
+
+
{translate('::App.SiteManagement.Theme.Style')}
+
+
{translate('::SidePanel.Themed')}
diff --git a/ui/src/components/template/ThemeConfigurator/ThemeSwitcher.tsx b/ui/src/components/template/ThemeConfigurator/ThemeSwitcher.tsx
index 6555306..abe9b7e 100644
--- a/ui/src/components/template/ThemeConfigurator/ThemeSwitcher.tsx
+++ b/ui/src/components/template/ThemeConfigurator/ThemeSwitcher.tsx
@@ -104,6 +104,7 @@ const ThemeSwitcher = () => {
return (