* Implement Back to School 2023 banners and modal
* Only show WritefullPromoBanner if not showing BackToSchoolModal
GitOrigin-RevId: 3bd2ea48fa6d66f112cc26662a61be05cf7daafd
* Edited notification copy for user with affilation that ha commons account
* edited translation key to have overleaf professional appear in bold and switched to using trans component
* changed anchor tag to button and added additional check to ensure affiliation exists before accessing institution name
* add tests for commons user confirmation notification
* edit user email context test to facilitate test data changes
* edit license in fake test data
* edit test to check text of notification for non commons user
GitOrigin-RevId: 6700ceaa066f099ce593283887fa81d72ad624b6
* Revert "Revert "Tw reference manager access""
This reverts commit 55f3512f254e136d8a239bb5d9ca39f0d04720fd.
* added conditional to check whether file linked data exists
* created new translation key for refresh error
* Fix for misleading reference manager access error to ensure users are aware only original importer of reference file can refresh it. If original importer, then user is prompted to relink provider account. Previous PR and conversation #13618.
GitOrigin-RevId: 85232c1559c6d2068effec50e31b8fa30bf53c89
* Implement LATAM geo-pricing split test
* Hide Paypal if currency is one of INR, COP, CLP, PEN
* Only send the LATAM/INR banner events when banner is rendered
* Workaround in Subscription dashboard for CLP not having minor units
GitOrigin-RevId: a677086a7762900563558126d2f81a4c57bbe9d7
* [cm6] toolbar for source mode
* top:0 for new toolbar
* empty div for extensions
* fix legacy css top pos
* show source toolbar split test
* prettier
* show beta icon in source editor
* dropdown toolbar wip
* fix wrong conflict resolve
* math dropdown, chrome extension fixes
* math dropdown cleanup
* sort en.json
* fix sort en.json
* using isVisual
* getMeta in component, pug update
* using flex grow
* toolbar beta badge
* remove extra whitespace
* has-legacy-toolbar class
* Increase container size
* fix tests
* prettier
* styling fixes, using SplitTestBadge
* only show source toolbar if flag is set
* fix typo
---------
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: 34b01a9421f4a0d6defc40925c5092901575946e
* [cm6] rename to Code Editor | Visual Editor
* showLegacySourceEditor change
* show info badge
* remove info badge
* display info badge
* use "Visual Editor" in example project
GitOrigin-RevId: 549e25aa4bcfe58522eadc70e35ca35f822317b1
* Improve error message when a user is trying to import an empty repo with github
* Only show GitHub organization footer link after the user is successfully connected to github
This link should only be shown for users that have some of their repos missing because of their organization's access restriction
See this ticket for more detail: https://github.com/overleaf/web-internal/pull/1591
GitOrigin-RevId: 3235d63b94b952b93f7a1cfe0d551d38a2783eb3
* Implement INR geopricing test
* Show again the INR banner after 30 days
* Update INRBanner to direct users to the plans page and add tracking
* Remove local testing hack in GeoIpLookup
* Update formatter for subscription dashboard
* Flip assignment to assign all users and add event segmentations
* Fix linting
* Review suggestions - factorised recommended currency helper function
GitOrigin-RevId: b1616520f8c7ead689a840720057297e67d3f574
* Implement history view paywall
* Add tests and some CSS fallbacks
* Make additional faded version above paywall non-clickable
* Change isFaded to faded for consistency
* Remove unused import
* Add missing attribute
* SHow all labels in free tier
* Address review comments
* Change Boolean conversion
Co-authored-by: ilkin-overleaf <100852799+ilkin-overleaf@users.noreply.github.com>
* Make adding or deleting a label show up in version list again
* Refactor to use visibleUpdateCount rather than maintaining two separate update arrays
* Removed unused import
* Use data-testid instead on class
* Round gradient values
* Correct test selector
---------
Co-authored-by: ilkin-overleaf <100852799+ilkin-overleaf@users.noreply.github.com>
GitOrigin-RevId: a2b021f3f4d3b9eb1358edb2ee4aa7db1bc7240e
* Use forked @codemirror/search
* Use getPanel to get the search panel
* Remove layer-based highlightSelectionMatches
* Add "within selection" option to the search form
* Add test for "replace all within selection"
* Fix tests
GitOrigin-RevId: 95ce76fd017f96278b04c16a1fd34f785f7504a3
* Add strikethrough to deleted file tree item in history file tree
* Add "restore file" button on toolbar if the selected file have a `removed` operation.
* Implement "restore file" functionality on removed file:
- Refactor the `Selection` object in history context value since we need the `deletedAtV` data which currently is not passed through the state.
- Refactor and clean up file tree type system to support passing through the whole `FileDiff` object for getting the `deletedAtV` data which only appear on `removed` operation
- Implement `postJSON` with file restoration API and pass it on restore file onClick handler at toolbar
* Implement loading behaviour while restoring file is inflight:
- Add `loadingRestoreFile` to `LoadingState`
- Change restore file button to `Restoring...` when in loading state.
* Refactor:
- Rename `DiffOperation` to `FileOperation`
- Extract `isFileRemoved` and `isFileRenamed` to its own file
- Extract `Toolbar` components into small files
GitOrigin-RevId: 2e32ebd2165f73fc6533ff282a9c084162efd682
There are two different UI in this PR: `comparing` and `viewing` mode.
- For `comparing`, the user would be shown two separate date. It uses the `UpdateRange` object and this PR adds a timestamp to both `fromV` and `toV` of the object type.
- For `viewing`, the user would only be shown one date since `viewing` mode means viewing a specific update version.
Some other notable changes:
- Move `diff` state to `diff-view.tsx`, which contains `main.tsx` (main editor history view) and `toolbar.tsx` as its children
- refactor `autoSelectFile` by passing `updateRange.toV` directly
- refactor `updateIsSelected` by passing an object that contains `fromV` and `toV` instead of passing `update
There's also a cypress test for both the `viewing` mode and `comparing` mode in this PR.
GitOrigin-RevId: ba54f073f3479c55a39eb6b2932ea7faff78dddc
* Change wording of tags header and hide uncategorized when tags list is empty
* Add a tooltip on the colour picker more button
* Fix linting
GitOrigin-RevId: 07e1c411c2c9f6f66e0a00c1610af662b829c4e4
* Base for color picker
* React color picker and updated modals
* Add tag color picker to mobile dashboard
* Update existing tests and fix disable save button condition
* CSS adaptations for desktop modal streched into mobile display
* Update TagsController tests
* Add aria-hidden label on color pickers
* Fix linting
* Fix project list test
* Select random color when creating tag
* Cleanup leftovers in project list context
* Test cleanup
* Pre-select custom color and store local color while picking
* Add type to preset colors
* Add css fix to override disabled button opacity
* Skip redundant check
* Fix linting
* Add back btn-secondary on manage tag modal after rebase
GitOrigin-RevId: a4cf24e85cc0ca01466f4bf9c77482be8360e68e
* Implement onboarding video tour split test:
- Add split test infrastructure
- Create new `OnboardingVideoTourModal` component
- Place the component inside the editor pug template with a split test
* add event segmentation for `onboarding-video-tour-close-button-click` event:
1. video: `first` | `second`
2. firstVideoWatchingTimeInSecond: total time watching first video
2. secondVideoWatchingTimeInSecond: total time watching second video (0 if skipped)
* add event segmentation for:
1. `onboarding-video-tour-dismiss-button-click`
2. `onboarding-video-tour-next-button-click`
3. `onboarding-video-tour-done-button-click`
with these key/value:
1. firstVideoWatchingTimeInSecond: total time watching first video
2. secondVideoWatchingTimeInSecond: total time watching second video (0 if skipped/not watched yet)
* Use contentful to host video assets
GitOrigin-RevId: 27a6f38d15d7a03b07455e216dda63d99983ca80