@@ -13,12 +13,28 @@ import {
1313 PRO_TIER_FAVORITE_SLOT_LIMIT ,
1414} from '@/constants/personalLearning' ;
1515import { DEFAULT_VIDEO_WATERMARK } from '@/video/constants' ;
16+ import { getFeatureFlagVariant } from './featureFlags' ;
1617
17- // Session limits for anonymous users
18- export const ANONYMOUS_VISUALIZATION_LIMIT = 12 ;
18+ // Default session limits for anonymous users
19+ const DEFAULT_ANONYMOUS_VISUALIZATION_LIMIT = 12 ;
1920const ANONYMOUS_COMPLEXITY_VIEW_LIMIT = 2 ;
2021const FREE_TIER_DAILY_EXPORT_LIMIT = 50 ;
2122
23+ /**
24+ * Get the anonymous visualization limit, considering PostHog feature flag.
25+ * @returns {number }
26+ */
27+ function getAnonymousVisualizationLimit ( ) {
28+ const variant = getFeatureFlagVariant ( 'feature-anonymous-viz-limit' ) ;
29+ if ( variant === 'limit-8' ) return 8 ;
30+ if ( variant === 'limit-16' ) return 16 ;
31+ return DEFAULT_ANONYMOUS_VISUALIZATION_LIMIT ;
32+ }
33+
34+ // Exported constant for backward compatibility (reads once at module load)
35+ export const ANONYMOUS_VISUALIZATION_LIMIT =
36+ DEFAULT_ANONYMOUS_VISUALIZATION_LIMIT ;
37+
2238// localStorage keys
2339const STORAGE_KEY_VIZ_COUNT = 'anon_viz_count' ;
2440const STORAGE_KEY_COMPLEXITY_COUNT = 'anon_complexity_views' ;
@@ -169,12 +185,12 @@ export function canRunVisualization(user) {
169185 if ( plan === PLAN_TIERS . FREE || plan === PLAN_TIERS . PRO ) {
170186 return true ; // Unlimited
171187 }
172- // Anonymous: check session limit
188+ // Anonymous: check session limit (dynamic from feature flag)
173189 const count = parseInt (
174190 localStorage . getItem ( STORAGE_KEY_VIZ_COUNT ) || '0' ,
175191 10
176192 ) ;
177- return count < ANONYMOUS_VISUALIZATION_LIMIT ;
193+ return count < getAnonymousVisualizationLimit ( ) ;
178194}
179195
180196/**
@@ -204,7 +220,7 @@ export function getRemainingVisualizations(user) {
204220 localStorage . getItem ( STORAGE_KEY_VIZ_COUNT ) || '0' ,
205221 10
206222 ) ;
207- return Math . max ( 0 , ANONYMOUS_VISUALIZATION_LIMIT - count ) ;
223+ return Math . max ( 0 , getAnonymousVisualizationLimit ( ) - count ) ;
208224}
209225
210226/**
0 commit comments