mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 14:13:43 +01:00
[Web] Enable Quota System for AI Features (#31544)
* feat: migrate from aiErrorAssist naming for disabling AI features to aiFeatures.enabled to avoid confusion feat: keep aiErrorAssistant as setting on user object until migration is run * feat: migrate writefull.enabled unset to instead use promotionSet false * feat: updating to use quota based system for AI usage * feat: hide relevant sections of quota system behind split test * feat: ship onAiFreeTrial instead of free quota amount to project meta * fix: renaming splitTestEnabledForUser to featureFlagEnabledForUser * fix: v1_personal should have free trial amount of ai quota * fix: onAiFreeTrial in projectController should account for anonymous users with no features * feat: fixing marketing exports for ai quotas * feat: update features epoch * feat: move to quota tiers, and map tier to numeric allowance within rateLimiters GitOrigin-RevId: 17763447965aae5777053b783d2601517bfe6b12
This commit is contained in:
committed by
Copybot
parent
8fb5b0ed05
commit
92463fb3e2
@@ -11,9 +11,12 @@ import { useUserContext } from './user-context'
|
||||
import { useReceiveUser } from '../hooks/user-channel/use-receive-user'
|
||||
import { getJSON } from '@/infrastructure/fetch-json'
|
||||
import { useEditorContext } from './editor-context'
|
||||
import getMeta from '@/utils/meta'
|
||||
|
||||
export const UserFeaturesContext = createContext<User['features']>(undefined)
|
||||
|
||||
const onAiFreeTrial = getMeta('ol-onAiFreeTrial')
|
||||
|
||||
export const UserFeaturesProvider: FC<React.PropsWithChildren> = ({
|
||||
children,
|
||||
}) => {
|
||||
@@ -31,7 +34,12 @@ export const UserFeaturesProvider: FC<React.PropsWithChildren> = ({
|
||||
|
||||
useEffect(() => {
|
||||
const listener = async ({ isPremium }: { isPremium: boolean }) => {
|
||||
if (features?.aiErrorAssistant === isPremium) {
|
||||
// todo: quota clean-up: remove once we are transitioned off aiErrorAssistant naming
|
||||
const hasPremiumQuota = !onAiFreeTrial
|
||||
const alreadyPremium =
|
||||
features?.aiErrorAssistant === isPremium ||
|
||||
hasPremiumQuota === isPremium
|
||||
if (alreadyPremium) {
|
||||
// the user is premium on writefull and has the AI assist, no need to refresh the features
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user