* 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
* Rename manage group entry point
* Migrate group management root page to React
* Add cypress tests for the group management react page
* Fix linting
* Add checkbox labels for screen-readers + remove unused classes
* Await on add/remove members calls
* Display the export CSV link for a full group
* Display error message when group is full
* Sort locales
* Handle the managers management page in React version
* Fix missing type in GroupMemberRow
* Split members and managers React pages
* Build API paths on frontend side + add cypress tests for each page
* Fix linting
* Update unit tests
* Review improvements
* Type API errors
GitOrigin-RevId: d124a9d24cbf33de8aacc5d69e9d46e7bcda93c5
* Redesign the styling of conflict state for file upload in the editor
* Change overwrite button style from primary (green) to danger (red)
* Change the idle state and dragging state styling to match the error state new design:
*remove the double border; only keep the dashed border
* on idle state, change border color
* Add hardcoded texts to translation file
* Add padding to prevent text is becoming too near to the border when multiple files appear in the conflict file list
* Apply custom file uploader style to smaller screen
GitOrigin-RevId: 266e60bb8575a02c02c1ed1d7fa04cdb101f3dd1
* Implement new users micro survey for project dashboard page on react and non-react version
* Add 'new-users-micro-survey-click' and 'new-users-micro-survey-prompt' new event for the analytics
GitOrigin-RevId: 9aabe931987638b38995d404aa90ac4d40b2f3b5
- Implement the banner on both react and non-react project dashboard
- Use split test with 4 different variants, `save`, `empower`, `did-you-know`, and `default`, each variant has a different copy, except the `default` which won't show the banner to users
GitOrigin-RevId: ee76769dfd38b8e52de8cc0f201c24e41905d016
* Update "go to line" hotkey for cm6 and add new info text in hotkeys modal
* Differentiate modal title between cm6 and ace hotkeys
* Update test to reflect change in hotkeys modal title
* Add test for hotkeys modal bottom text
* Update test on editor left menu hotkeys button to reflect change in hotkeys modal title
GitOrigin-RevId: 61bae16313ea7a37fa3b9441dbe5a93ab7823d01
* Migrate actions menu in editor left menu to react
* Move margin from inline style to css file
* remove focus selector to avoid "highlighting" the button after closing modal and regain focus
* Add disabled state on word count button when the compiling is loading or failed
* Use div instead of button for disabled word count button
* Add accessibility text props when LeftMenuButton is disabled
* Add actions menu test cases and storybook components
* use util assign function and wrap function prop in usecallback
GitOrigin-RevId: 81ab104be21fbcf5dfbc72c07d29eeb32976c61f
* Initialize left menu react migration and migration download menu UI to react
* Add test case to DownloadMenu react component
* Update test description and add an href check to one of the download link
* Extract storybook document mock to its own fixture file
* Add mockCompileOnLoad config on storybook editor scope
- if mockCompileOnLoad: true (default), then the default compile mock will be used
- If mockCompileOnLoad: false, then we have to provide a compile mock on the storybook component
* Create download menu storybook component
* Use a single "editor-left-menu" controller on the editor left menu migrations
* Remove the form import from the react version of the left menu
* Change inline style to utility class name
GitOrigin-RevId: 5357c7bfc78bf40f52b9b308df8f2b60d793fbf7