diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDetailContent.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDetailContent.tsx index 9e9db0f39f..2542cdef17 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDetailContent.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDetailContent.tsx @@ -53,7 +53,6 @@ export function FrameworkDetailContent({ const pathname = usePathname(); const searchParams = useSearchParams(); const { hasPermission, permissions } = usePermissions(); - const versioningEnabled = useFeatureFlag('is-framework-versioning-enabled'); const complianceTimelineEnabled = useFeatureFlag('is-timeline-enabled'); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const [dropdownOpen, setDropdownOpen] = useState(false); @@ -82,7 +81,7 @@ export function FrameworkDetailContent({ const validTabsList: string[] = []; if (complianceTimelineEnabled) validTabsList.push('progress'); validTabsList.push('requirements'); - if (versioningEnabled) validTabsList.push('history'); + validTabsList.push('history'); const validTabs = new Set(validTabsList); const activeTab = tabParam && validTabs.has(tabParam) ? tabParam : DEFAULT_TAB; @@ -158,7 +157,7 @@ export function FrameworkDetailContent({ Requirements {requirementsCount} - {versioningEnabled && History} + History } > @@ -197,14 +196,12 @@ export function FrameworkDetailContent({ /> - {versioningEnabled && ( - - - - )} + + + (); - if (!enabled) return null; - const canUpdate = hasPermission('framework', 'update'); return ( diff --git a/apps/app/src/hooks/use-framework-update-status.ts b/apps/app/src/hooks/use-framework-update-status.ts index 3305db8e50..478a0d5623 100644 --- a/apps/app/src/hooks/use-framework-update-status.ts +++ b/apps/app/src/hooks/use-framework-update-status.ts @@ -6,17 +6,15 @@ import type { FrameworkUpdateStatus } from '@/types/framework-versioning'; interface UseFrameworkUpdateStatusOptions { fallbackData?: FrameworkUpdateStatus; - enabled?: boolean; } export function useFrameworkUpdateStatus( frameworkInstanceId: string, options?: UseFrameworkUpdateStatusOptions, ) { - const key = - frameworkInstanceId && options?.enabled !== false - ? `/v1/frameworks/${frameworkInstanceId}/update-status` - : null; + const key = frameworkInstanceId + ? `/v1/frameworks/${frameworkInstanceId}/update-status` + : null; return useSWR( key, @@ -30,10 +28,9 @@ export function useFrameworkUpdateStatus( // Always revalidate on mount, even when fallbackData is provided. // fallbackData is only a fast first paint — without this, SWR treats // the server-rendered snapshot as authoritative forever and skips the - // client fetch, so users don't see newly-available upgrades after the - // feature flag is flipped, after a sync on a sibling framework, or - // whenever the Next.js router cache serves a stale RSC. Short of - // signing out and back in. + // client fetch, so users don't see newly-available upgrades after a + // sync on a sibling framework or whenever the Next.js router cache + // serves a stale RSC. revalidateOnMount: true, revalidateOnFocus: true, },