diff --git a/services/web/app/src/Features/Tutorial/TutorialController.mjs b/services/web/app/src/Features/Tutorial/TutorialController.mjs index a5cdf8d478..e66a54f71b 100644 --- a/services/web/app/src/Features/Tutorial/TutorialController.mjs +++ b/services/web/app/src/Features/Tutorial/TutorialController.mjs @@ -13,6 +13,7 @@ const VALID_KEYS = [ 'us-gov-banner-fedramp', 'full-project-search-promo', 'editor-popup-ux-survey', + 'wf-features-moved', ] async function completeTutorial(req, res, next) { diff --git a/services/web/config/settings.defaults.js b/services/web/config/settings.defaults.js index be567bf13e..07970fb852 100644 --- a/services/web/config/settings.defaults.js +++ b/services/web/config/settings.defaults.js @@ -968,6 +968,7 @@ module.exports = { sourceEditorComponents: [], pdfLogEntryComponents: [], pdfLogEntriesComponents: [], + pdfPreviewPromotions: [], diagnosticActions: [], sourceEditorCompletionSources: [], sourceEditorSymbolPalette: [], diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index 320db9714a..207da71688 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -613,6 +613,7 @@ "full_width": "", "future_payments": "", "generate_from_text_or_image": "", + "generate_tables_and_equations": "", "generate_token": "", "generic_if_problem_continues_contact_us": "", "generic_linked_file_compile_error": "", @@ -1053,6 +1054,7 @@ "need_to_leave": "", "neither_agree_nor_disagree": "", "new_compile_domain_notice": "", + "new_create_tables_and_equations": "", "new_file": "", "new_folder": "", "new_font_open_dyslexic": "", diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-preview-pane.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-preview-pane.tsx index 8133ff31ee..7bbecbc327 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-preview-pane.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-preview-pane.tsx @@ -1,4 +1,4 @@ -import { memo, Suspense } from 'react' +import { ElementType, memo, Suspense } from 'react' import classNames from 'classnames' import PdfLogsViewer from './pdf-logs-viewer' import PdfViewer from './pdf-viewer' @@ -11,6 +11,7 @@ import { PdfPreviewProvider } from './pdf-preview-provider' import PdfPreviewHybridToolbarNew from '@/features/ide-redesign/components/pdf-preview/pdf-preview-hybrid-toolbar' import PdfErrorState from '@/features/ide-redesign/components/pdf-preview/pdf-error-state' import { useIsNewEditorEnabled } from '@/features/ide-redesign/utils/new-editor-utils' +import importOverleafModules from '../../../../macros/import-overleaf-module.macro' function PdfPreviewPane() { const { pdfUrl, hasShortCompileTimeout } = useCompileContext() @@ -18,6 +19,10 @@ function PdfPreviewPane() { 'pdf-empty': !pdfUrl, }) const newEditor = useIsNewEditorEnabled() + const pdfPromotions = importOverleafModules('pdfPreviewPromotions') as { + import: { default: ElementType } + path: string + }[] return (
@@ -36,6 +41,9 @@ function PdfPreviewPane() {
{newEditor ? : } + {pdfPromotions.map(({ import: { default: Component }, path }) => ( + + ))} ) diff --git a/services/web/frontend/stylesheets/bootstrap-5/modules/writefull.scss b/services/web/frontend/stylesheets/bootstrap-5/modules/writefull.scss index bc4107e3ae..6ffb33254b 100644 --- a/services/web/frontend/stylesheets/bootstrap-5/modules/writefull.scss +++ b/services/web/frontend/stylesheets/bootstrap-5/modules/writefull.scss @@ -10,3 +10,26 @@ max-width: 520px; text-align: left; } + +.feature-rebrand-promo-container { + z-index: 1; + position: absolute; + bottom: 15px; + right: 15px; + background: $bg-dark-primary; + color: $content-primary-dark; + max-width: 450px; +} + +.feature-rebrand-promo-title-container { + display: flex; +} + +.feature-rebrand-promo-title-text { + color: white; + font-size: 14px; +} + +.feature-rebrand-promo-body { + color: white; +} diff --git a/services/web/locales/en.json b/services/web/locales/en.json index 779d61ecbf..065ae7ba38 100644 --- a/services/web/locales/en.json +++ b/services/web/locales/en.json @@ -813,6 +813,7 @@ "gallery_show_more_tags": "Show more", "general": "General", "generate_from_text_or_image": "From text or image", + "generate_tables_and_equations": "Generate tables and equations from text and images. Try it for free in the Overleaf toolbar!", "generate_token": "Generate token", "generic_if_problem_continues_contact_us": "If the problem continues please contact us", "generic_linked_file_compile_error": "This project’s output files are not available because it failed to compile. Please open the project to see the compilation error details.", @@ -1380,6 +1381,7 @@ "need_to_leave": "Need to leave?", "neither_agree_nor_disagree": "Neither agree nor disagree", "new_compile_domain_notice": "We’ve recently migrated PDF downloads to a new domain. Something might be blocking your browser from accessing that new domain, <0>__compilesUserContentDomain__. This could be caused by network blocking or a strict browser plugin rule. Please follow our <1>troubleshooting guide.", + "new_create_tables_and_equations": "NEW! Create tables and equations in seconds", "new_file": "New file", "new_folder": "New folder", "new_font_open_dyslexic": "New font: OpenDyslexic Mono is designed to improve readability for those with dyslexia.",