From 56c1cd98fa9f843146b60e957514e95d4714c6e5 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Mon, 28 Apr 2025 16:48:26 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7(frontend)=20make=20feedback=20form?= =?UTF-8?q?=20configurable=20via=20backend=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implement conditional rendering that hides all feedback-related UI components when feedback is disabled in backend configuration. Also, feedback URL is now customizable. --- src/backend/meet/settings.py | 3 ++ src/frontend/src/api/useConfig.ts | 3 ++ .../src/components/FeedbackBanner.tsx | 8 ++++-- .../controls/Options/FeedbackMenuItem.tsx | 7 +++-- .../prefabs/ControlBar/MobileControlBar.tsx | 28 +++++++++++-------- src/frontend/src/locales/en/global.json | 2 +- src/frontend/src/locales/fr/global.json | 2 +- src/frontend/src/locales/nl/global.json | 2 +- src/frontend/src/utils/constants.ts | 3 -- .../dev-keycloak/values.meet.yaml.gotmpl | 1 + 10 files changed, 37 insertions(+), 22 deletions(-) diff --git a/src/backend/meet/settings.py b/src/backend/meet/settings.py index 2eca2219..2c472180 100755 --- a/src/backend/meet/settings.py +++ b/src/backend/meet/settings.py @@ -312,6 +312,9 @@ class Base(Configuration): "is_silent_login_enabled": values.BooleanValue( True, environ_name="FRONTEND_IS_SILENT_LOGING_ENABLED", environ_prefix=None ), + "feedback": values.DictValue( + {}, environ_name="FRONTEND_FEEDBACK", environ_prefix=None + ), } # Mail diff --git a/src/frontend/src/api/useConfig.ts b/src/frontend/src/api/useConfig.ts index 205a333e..0a490341 100644 --- a/src/frontend/src/api/useConfig.ts +++ b/src/frontend/src/api/useConfig.ts @@ -11,6 +11,9 @@ export interface ApiConfig { support?: { id: string } + feedback: { + url: string + } silence_livekit_debug_logs?: boolean is_silent_login_enabled?: boolean recording?: { diff --git a/src/frontend/src/components/FeedbackBanner.tsx b/src/frontend/src/components/FeedbackBanner.tsx index 7dd2d00e..15b581f7 100644 --- a/src/frontend/src/components/FeedbackBanner.tsx +++ b/src/frontend/src/components/FeedbackBanner.tsx @@ -2,10 +2,14 @@ import { css } from '@/styled-system/css' import { RiErrorWarningLine, RiExternalLinkLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { Text, A } from '@/primitives' -import { GRIST_FEEDBACKS_FORM } from '@/utils/constants' +import { useConfig } from '@/api/useConfig' export const FeedbackBanner = () => { const { t } = useTranslation() + const { data } = useConfig() + + if (!data?.feedback?.url) return + return (
{ gap: 0.25, })} > - + {t('feedback.cta')}