Browse Source

Merge pull request #20389 from overleaf/jdt-add-writefull-commons-to-v1

Add writefull commons to v1

GitOrigin-RevId: 36d1022f41b4db3701c6b8fa2120b035b05b38ba
Jimmy Domagala-Tang 1 year ago
parent
commit
aca9466c49

+ 7 - 1
services/web/frontend/js/features/project-list/components/notifications/writefull-premium-promo-banner.tsx

@@ -4,6 +4,7 @@ import { sendMB } from '@/infrastructure/event-tracking'
 import customLocalStorage from '@/infrastructure/local-storage'
 import WritefullLogo from '@/shared/svgs/writefull-logo'
 import OLButton from '@/features/ui/components/ol/ol-button'
+import getMeta from '@/utils/meta'
 
 const eventSegmentation = {
   location: 'dashboard-banner',
@@ -20,6 +21,11 @@ function WritefullPremiumPromoBanner({
   setShow: (value: boolean) => void
   onDismiss: () => void
 }) {
+  // dont show the add to WF commons users since their license already includes it
+  const userAffiliations = getMeta('ol-userAffiliations') || []
+  const hasWritefullCommons = userAffiliations.some(
+    affil => affil.institution?.writefullCommonsAccount
+  )
   const handleClose = useCallback(() => {
     customLocalStorage.setItem('has_dismissed_writefull_promo_banner', true)
     setShow(false)
@@ -27,7 +33,7 @@ function WritefullPremiumPromoBanner({
     onDismiss()
   }, [setShow, onDismiss])
 
-  if (!show) {
+  if (!show || hasWritefullCommons) {
     return null
   }
 

+ 1 - 0
services/web/test/frontend/features/settings/components/emails/emails-section-add-new-email.test.tsx

@@ -23,6 +23,7 @@ const userEmailData: UserEmailData & { affiliation: Affiliation } = {
     department: 'Art History',
     institution: {
       commonsAccount: false,
+      writefullCommonsAccount: false,
       confirmed: true,
       id: 1,
       isUniversity: true,

+ 2 - 0
services/web/test/frontend/features/settings/components/emails/emails-section-institution-and-role.test.tsx

@@ -23,6 +23,7 @@ const userData1: UserEmailData & { affiliation: Affiliation } = {
     department: null,
     institution: {
       commonsAccount: false,
+      writefullCommonsAccount: false,
       confirmed: true,
       id: 1,
       isUniversity: false,
@@ -53,6 +54,7 @@ const userData2: UserEmailData & { affiliation: Affiliation } = {
     department: 'Art History',
     institution: {
       commonsAccount: false,
+      writefullCommonsAccount: false,
       confirmed: true,
       id: 1,
       isUniversity: false,

+ 3 - 0
services/web/test/frontend/features/settings/fixtures/test-user-email-data.ts

@@ -24,6 +24,7 @@ export const professionalUserData: UserEmailData & {
     department: 'Art History',
     institution: {
       commonsAccount: false,
+      writefullCommonsAccount: false,
       confirmed: true,
       id: 1,
       isUniversity: false,
@@ -56,6 +57,7 @@ export const unconfirmedCommonsUserData: UserEmailData & {
     department: 'Art History',
     institution: {
       commonsAccount: true,
+      writefullCommonsAccount: false,
       confirmed: true,
       id: 1,
       isUniversity: false,
@@ -85,6 +87,7 @@ export const ssoUserData: UserEmailData = {
     department: 'Art History',
     institution: {
       commonsAccount: true,
+      writefullCommonsAccount: false,
       confirmed: true,
       id: 2,
       isUniversity: true,

+ 1 - 0
services/web/types/institution.ts

@@ -2,6 +2,7 @@ import { Nullable } from './utils'
 
 export type Institution = {
   commonsAccount: boolean
+  writefullCommonsAccount: boolean
   confirmed: boolean
   id: number
   isUniversity: boolean