♻️(frontend) extract feature flag into a dedicated enum
Extract code elements related to feature flag into a proper enum to avoid hardcoded literals.
This commit is contained in:
committed by
aleb_the_flash
parent
94e71ba15d
commit
ba9d22f6c8
4
src/frontend/src/features/analytics/enums.ts
Normal file
4
src/frontend/src/features/analytics/enums.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
export enum FeatureFlags {
|
||||||
|
Transcript = 'transcription-summary',
|
||||||
|
faceLandmarks = 'face-landmarks',
|
||||||
|
}
|
||||||
@@ -3,10 +3,11 @@ import { useIsAnalyticsEnabled } from '@/features/analytics/hooks/useIsAnalytics
|
|||||||
import { RecordingMode } from '../types'
|
import { RecordingMode } from '../types'
|
||||||
import { useIsRecordingModeEnabled } from './useIsRecordingModeEnabled'
|
import { useIsRecordingModeEnabled } from './useIsRecordingModeEnabled'
|
||||||
import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner'
|
import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner'
|
||||||
|
import { FeatureFlags } from '@/features/analytics/enums'
|
||||||
|
|
||||||
export const useHasRecordingAccess = (
|
export const useHasRecordingAccess = (
|
||||||
mode: RecordingMode,
|
mode: RecordingMode,
|
||||||
featureFlag: string
|
featureFlag: FeatureFlags
|
||||||
) => {
|
) => {
|
||||||
const featureEnabled = useFeatureFlagEnabled(featureFlag)
|
const featureEnabled = useFeatureFlagEnabled(featureFlag)
|
||||||
const isAnalyticsEnabled = useIsAnalyticsEnabled()
|
const isAnalyticsEnabled = useIsAnalyticsEnabled()
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import {
|
|||||||
BETA_USERS_FORM_URL,
|
BETA_USERS_FORM_URL,
|
||||||
CRISP_HELP_ARTICLE_TRANSCRIPT,
|
CRISP_HELP_ARTICLE_TRANSCRIPT,
|
||||||
} from '@/utils/constants'
|
} from '@/utils/constants'
|
||||||
|
import { FeatureFlags } from '@/features/analytics/enums'
|
||||||
|
|
||||||
export const Transcript = () => {
|
export const Transcript = () => {
|
||||||
const [isLoading, setIsLoading] = useState(false)
|
const [isLoading, setIsLoading] = useState(false)
|
||||||
@@ -30,7 +31,7 @@ export const Transcript = () => {
|
|||||||
|
|
||||||
const hasTranscriptAccess = useHasRecordingAccess(
|
const hasTranscriptAccess = useHasRecordingAccess(
|
||||||
RecordingMode.Transcript,
|
RecordingMode.Transcript,
|
||||||
'transcription-summary'
|
FeatureFlags.Transcript
|
||||||
)
|
)
|
||||||
const roomId = useRoomId()
|
const roomId = useRoomId()
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import { useFeatureFlagEnabled } from 'posthog-js/react'
|
import { useFeatureFlagEnabled } from 'posthog-js/react'
|
||||||
import { useIsAnalyticsEnabled } from '@/features/analytics/hooks/useIsAnalyticsEnabled'
|
import { useIsAnalyticsEnabled } from '@/features/analytics/hooks/useIsAnalyticsEnabled'
|
||||||
|
import { FeatureFlags } from '@/features/analytics/enums'
|
||||||
|
|
||||||
export const useHasFaceLandmarksAccess = () => {
|
export const useHasFaceLandmarksAccess = () => {
|
||||||
const featureEnabled = useFeatureFlagEnabled('face-landmarks')
|
const featureEnabled = useFeatureFlagEnabled(FeatureFlags.faceLandmarks)
|
||||||
const isAnalyticsEnabled = useIsAnalyticsEnabled()
|
const isAnalyticsEnabled = useIsAnalyticsEnabled()
|
||||||
|
|
||||||
return featureEnabled || !isAnalyticsEnabled
|
return featureEnabled || !isAnalyticsEnabled
|
||||||
|
|||||||
Reference in New Issue
Block a user