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
* Prevent the duplicated message IDs by filtering them out
* fix: Prevent the duplicated message IDs by filtering them out
GitOrigin-RevId: 6d6c2821e6e29c9949fd323fa3a507016b51aff4
* Update Copybara options in preparation for open-sourcing the source editor
* Move files
* Update paths
* Remove source-editor module and checks for its existence
* Explicitly mention CM6 license in files that contain code adapted from CM6
GitOrigin-RevId: 89b7cc2b409db01ad103198ccbd1b126ab56349b
* 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
On history react, when the initial screen has been loaded, no default pathname is selected. This PR adds logic for selecting default pathname and getting the diff for that pathname.
Also, add some other small changes, the notable ones are:
- Refactor some type naming and file structure related to the history file tree
- Refactor file tree selectable hooks (merge selectable context provider into the main provider)
- prevent clicking on the same file tree item by checking the current pathname before invoking the handler function
GitOrigin-RevId: 73c36e9ed918ae3d92dd47108fbe8542a7571bdd
* Create a new shared `SplitMenu` component.
* Refactor the pdf compile button & detached compile button:
- Rename `detach-compile-button` to `detach-compile-button-wrapper`
- Rename `pdf-compile-button-inner` to `detach-compile-button`
- Move some of the logic from `detach-compile-button-wrapper` to `detach-compile-button`
- Create a new `compile-button.less` to centralize all of the compile button (detached/non-detached) custom styles rule.
- Extract the animated striped CSS definition to the dedicated CSS file, change the class from `btn-recompile-group-has-changes` to `btn-striped-animated`
- Refactor other className(s) appropriately according to the new component name
- Delete the unused `changes-to-autocompile` css rule since it has not been used anywhere
* Implement the new pdf compile button with the new `SplitMenu` component.
GitOrigin-RevId: d1d055bffd311923fc47b4681605ce8ba8e26f25
* Refactor & change `add-affiliation.tsx` file:
* Change class from `user-profile` to `add-affiliation`
* Add new optional `className` props for custom styling
* Show affiliation widget on mobile screen:
* Fix bug on use add affiliation hooks: return type should be `boolean`, not `boolean | 0`
GitOrigin-RevId: 800b951e2a012797266b1780993b4ed9a918d565
* 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
* Add new event segmentations for the upgrade button in dashboard to help analysis
* Also add an extra check for the upgrade button in the navbar since it's only appeared in the project dashboard react version
GitOrigin-RevId: fca14e3adfbafd0fd143b045ba43588913f7297b
* Upgrade Cypress to v12.2.0
* Remove cy.unmount
* Only record video in CI
* Remove unmount definition and @cypress/react
GitOrigin-RevId: 463bc216b1debc65ad066f7c1d479724cfa062d1
- 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
- Importing SettingsController from the angular code, which enables post requests for every select menu and socket handler for compiler, texlive version, and main document select option
- New context for the data handling infrastructure between react and angular. The data is still located in the angular version, and I use the context only as a proxy to fetch/post new data.
GitOrigin-RevId: 59009bceb128d82969a2318e90036aacf79f9887
* 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