From 3be5a5afc65b6d507af16ce6d666d68eb4d4a700 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Tue, 3 Dec 2024 23:08:57 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(frontend)=20package=20checks?= =?UTF-8?q?=20in=20useHasTranscriptAccess=20hook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This hook will be used by the toggle and the sidepanel to make sure the users have sufficient permissions to access the transcript features. --- .../components/controls/TranscriptToggle.tsx | 13 ++++--------- .../livekit/hooks/useHasTranscriptAccess.ts | 17 +++++++++++++++++ .../rooms/livekit/hooks/useIsAdminOrOwner.ts | 6 ++++++ 3 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 src/frontend/src/features/rooms/livekit/hooks/useHasTranscriptAccess.ts create mode 100644 src/frontend/src/features/rooms/livekit/hooks/useIsAdminOrOwner.ts diff --git a/src/frontend/src/features/rooms/livekit/components/controls/TranscriptToggle.tsx b/src/frontend/src/features/rooms/livekit/components/controls/TranscriptToggle.tsx index c22fb347..d3d1f660 100644 --- a/src/frontend/src/features/rooms/livekit/components/controls/TranscriptToggle.tsx +++ b/src/frontend/src/features/rooms/livekit/components/controls/TranscriptToggle.tsx @@ -1,11 +1,9 @@ import { ToggleButton } from '@/primitives' import { RiBardLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' -import { useSidePanel } from '@/features/rooms/livekit/hooks/useSidePanel' +import { useSidePanel } from '../../hooks/useSidePanel' +import { useHasTranscriptAccess } from '../../hooks/useHasTranscriptAccess' import { css } from '@/styled-system/css' -import { useFeatureFlagEnabled } from 'posthog-js/react' -import { useIsAnalyticsEnabled } from '@/features/analytics/hooks/useIsAnalyticsEnabled' -import { useIsTranscriptEnabled } from '@/features/rooms/livekit/hooks/useIsTranscriptEnabled' export const TranscriptToggle = () => { const { t } = useTranslation('rooms', { keyPrefix: 'controls.transcript' }) @@ -13,12 +11,9 @@ export const TranscriptToggle = () => { const { isTranscriptOpen, toggleTranscript } = useSidePanel() const tooltipLabel = isTranscriptOpen ? 'open' : 'closed' - const featureEnabled = useFeatureFlagEnabled('transcription-summary') - const isAnalyticsEnabled = useIsAnalyticsEnabled() - const isTranscriptEnabled = useIsTranscriptEnabled() + const hasTranscriptAccess = useHasTranscriptAccess() - if (!featureEnabled && isAnalyticsEnabled) return - if (!isTranscriptEnabled) return + if (!hasTranscriptAccess) return return (
{ + const featureEnabled = useFeatureFlagEnabled('transcription-summary') + const isAnalyticsEnabled = useIsAnalyticsEnabled() + const isTranscriptEnabled = useIsTranscriptEnabled() + const isAdminOrOwner = useIsAdminOrOwner() + + return ( + (featureEnabled || !isAnalyticsEnabled) && + isAdminOrOwner && + isTranscriptEnabled + ) +} diff --git a/src/frontend/src/features/rooms/livekit/hooks/useIsAdminOrOwner.ts b/src/frontend/src/features/rooms/livekit/hooks/useIsAdminOrOwner.ts new file mode 100644 index 00000000..e583a2cd --- /dev/null +++ b/src/frontend/src/features/rooms/livekit/hooks/useIsAdminOrOwner.ts @@ -0,0 +1,6 @@ +import { useRoomData } from './useRoomData' + +export const useIsAdminOrOwner = () => { + const apiRoomData = useRoomData() + return apiRoomData?.is_administrable +}