diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json
index 88b06f77af..25fa28abb3 100644
--- a/services/web/frontend/extracted-translations.json
+++ b/services/web/frontend/extracted-translations.json
@@ -1969,6 +1969,7 @@
"thanks_for_subscribing_you_help_sl": "",
"thanks_settings_updated": "",
"the_add_on_will_remain_active_until": "",
+ "the_ai_assistant_isnt_currently_available_on_your_plan": "",
"the_code_editor_color_scheme": "",
"the_code_editor_color_scheme_dark_mode": "",
"the_code_editor_color_scheme_light_mode": "",
@@ -2431,6 +2432,7 @@
"your_git_access_info_bullet_4": "",
"your_git_access_info_bullet_5": "",
"your_git_access_tokens": "",
+ "your_limit_will_reset_in_time_or_speak_to_admin": "",
"your_message_to_collaborators": "",
"your_name_and_email_address_will_be_visible_to_project_editors": "",
"your_name_and_email_address_will_be_visible_to_the_project_owner_and_other_editors": "",
@@ -2464,11 +2466,13 @@
"youre_signed_in_using_your_organization_email": "",
"youve_added_more_licenses": "",
"youve_added_x_more_licenses_to_your_subscription_invite_people": "",
- "youve_hit_your_overleaf_ai_limit": "",
+ "youve_hit_your_daily_ai_limit": "",
"youve_lost_collaboration_access": "",
"youve_paused_your_subscription": "",
- "youve_reached_the_ai_fair_usage": "",
+ "youve_reached_the_fair_usage": "",
"youve_reached_the_fair_usage_limit_on_your_plan_you_can_start_chatting_again_in_time": "",
+ "youve_reached_your_ai_usage_limit": "",
+ "youve_reached_your_daily_ai_limit": "",
"youve_unlinked_all_users": "",
"youve_upgraded_your_plan": "",
"youve_upgraded_your_subscription": "",
diff --git a/services/web/frontend/js/shared/components/ai-paywall-notification.tsx b/services/web/frontend/js/shared/components/ai-paywall-notification.tsx
index f590a3a936..2cb58c8044 100644
--- a/services/web/frontend/js/shared/components/ai-paywall-notification.tsx
+++ b/services/web/frontend/js/shared/components/ai-paywall-notification.tsx
@@ -28,6 +28,10 @@ function AiPaywallNotification({
const { t } = useTranslation()
const features = useUserFeaturesContext()
const inQuotaRollout = useFeatureFlag('plans-2026-phase-1')
+ const user = getMeta('ol-user')
+
+ const isCommons = user.hasInstitutionLicence
+ const isGroupUser = user.isMemberOfGroupSubscription
if (!getMeta('ol-showAiFeatures')) {
return null
@@ -78,7 +82,7 @@ function AiPaywallNotification({
time: formatSecondsToHoursAndMinutes(t, secondsTillReset),
}
)
- const assistMessage = t('youve_reached_the_ai_fair_usage')
+ const assistMessage = t('youve_reached_the_fair_usage')
return (
)
}
+
+ if (isGroupUser) {
+ return (
+
+ )
+ }
+
+ if (isCommons) {
+ return (
+
+ )
+ }
+
const message = t('upgrade_for_unlimited_access_to_ai', {
time: formatSecondsToHoursAndMinutes(t, secondsTillReset),
})
@@ -106,7 +129,7 @@ function AiPaywallNotification({
<>
+
+ >
+ )
+}
+
+function CommonsPaywall({
+ secondsTillReset,
+ featureLocation,
+}: {
+ secondsTillReset: number
+ featureLocation: aiFeatureLocations
+}) {
+ const { t } = useTranslation()
+
+ // workbench isnt available on commons plans, so dont show it here and let upgrade-notification handle it
+ if (featureLocation === 'workbench') {
+ return null
+ }
+
+ const message = t('this_will_reset_in', {
+ time: formatSecondsToHoursAndMinutes(t, secondsTillReset),
+ })
+
+ return (
+ <>
+
+ >
+ )
+}
+
function FairUseLimit({
secondsTillReset,
featureLocation,
@@ -136,7 +221,7 @@ function FairUseLimit({
const title =
featureLocation === 'workbench'
? t('usage_limit_reached')
- : t('youve_reached_the_ai_fair_usage')
+ : t('youve_reached_the_fair_usage')
const workbenchMessage = t(
'youve_reached_the_fair_usage_limit_on_your_plan_you_can_start_chatting_again_in_time',
diff --git a/services/web/locales/en.json b/services/web/locales/en.json
index 4db0368021..0740b0bb20 100644
--- a/services/web/locales/en.json
+++ b/services/web/locales/en.json
@@ -2576,6 +2576,7 @@
"thanks_for_subscribing_you_help_sl": "Thank you for subscribing to the __planName__ plan. It’s support from people like yourself that allows __appName__ to continue to grow and improve.",
"thanks_settings_updated": "Thanks, your settings have been updated.",
"the_add_on_will_remain_active_until": "The add-on will remain active until the end of the current billing period.",
+ "the_ai_assistant_isnt_currently_available_on_your_plan": "The AI Assistant isn’t currently available on your organization’s plan.",
"the_code_editor_color_scheme": "The code editor color scheme",
"the_code_editor_color_scheme_dark_mode": "The code editor color scheme for dark mode",
"the_code_editor_color_scheme_light_mode": "The code editor color scheme for light mode",
@@ -2845,7 +2846,7 @@
"upgrade": "Upgrade",
"upgrade_cc_btn": "Upgrade now, pay after 7 days",
"upgrade_for_more_compile_time": "Upgrade to get more compile time",
- "upgrade_for_unlimited_access_to_ai": "Upgrade for unlimited access to all AI features or check back in __time__",
+ "upgrade_for_unlimited_access_to_ai": "Upgrade to keep using AI features, or wait __time__ for your limit to reset.",
"upgrade_my_plan": "Upgrade my plan",
"upgrade_now": "Upgrade now",
"upgrade_plan": "Upgrade plan",
@@ -3096,6 +3097,7 @@
"your_git_access_info_bullet_4": "You won’t be able to view the full token after the first time you generate it. Please copy it and keep it safe",
"your_git_access_info_bullet_5": "Previously generated tokens will be shown here.",
"your_git_access_tokens": "Your Git authentication tokens",
+ "your_limit_will_reset_in_time_or_speak_to_admin": "Your limit will reset in __time__. Or speak to your group admin about upgrading.",
"your_message_to_collaborators": "Send a message to your collaborators",
"your_name_and_email_address_will_be_visible_to_project_editors": "Your name and email address will be visible to project editors.",
"your_name_and_email_address_will_be_visible_to_the_project_owner_and_other_editors": "Your name and email address will be visible to the project owner and other editors.",
@@ -3135,11 +3137,13 @@
"youve_added_more_licenses": "You’ve added more license(s)!",
"youve_added_x_more_licenses_to_your_subscription_invite_people": "You’ve added __users__ more license(s) to your subscription. <0>Invite people0>.",
"youve_already_used_your_free_trial": "You’ve already used your free trial. Upgrade to continue using premium features.",
- "youve_hit_your_overleaf_ai_limit": "You’ve hit your Overleaf AI limit",
+ "youve_hit_your_daily_ai_limit": "You’ve hit your daily AI limit",
"youve_lost_collaboration_access": "You’ve lost collaboration access",
"youve_paused_your_subscription": "Your <0>__planName__0> subscription is paused until <0>__reactivationDate__0>, then it’ll automatically unpause. You can unpause early at any time.",
- "youve_reached_the_ai_fair_usage": "You’ve reached the AI fair usage limit on your plan",
+ "youve_reached_the_fair_usage": "You’ve reached the fair usage limit on your plan",
"youve_reached_the_fair_usage_limit_on_your_plan_you_can_start_chatting_again_in_time": "You’ve reached the fair usage limit on your plan. You can start chatting again in __time__.",
+ "youve_reached_your_ai_usage_limit": "You’ve reached your AI usage limit",
+ "youve_reached_your_daily_ai_limit": "You’ve reached the daily AI limit",
"youve_unlinked_all_users": "You’ve unlinked all users",
"youve_upgraded_your_plan": "You’ve upgraded your plan!",
"youve_upgraded_your_subscription": "You’ve upgraded your subscription",