* [web] add external 15s heartbeat to socket.io connection
* [web] extend debugging context for client errors
- include performance.now() timestamp for correlating other timings
- include connectionState, especially for new externalHeartbeat detail
- include spellCheckLanguage to check on client-side spelling impact
* [web] remove unnecessary hook dependency
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
* Refactor externalHeartbeat
* Add connectionManager to context
* Clear the interval earlier, and on connect
* [web] refactor handling of socket debugging info
* [web] add split-test for external socket heartbeat
* [web] fully remove connectionManager from connection context
---------
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: fbebe64f8aa207eb4fd4a8f27d522d1cac35f9d4
* Convert event-tracking to TypeScript
* Convert local-storage to TypeScript
* Convert mapSeries to TypeScript
* Convert SessionStorage to TypeScript
* Convert account-upgrade to TypeScript
* Convert isValidTeXFile to TypeScript
* Convert date functions to TypeScript
* Convert EventEmitter to TypeScript
* Convert isNetworkError to TypeScript
* Convert webpack-public-path to TypeScript
* Convert displayNameForUser to TypeScript
GitOrigin-RevId: 79c5a2d1101fcd520f3116f0f4af29d974189d94
* Allow providers to be overridden in ReactContextRoot
* Use ReactContextRoot in EditorProviders
* Use ReactContextRoot in ScopeDecorator
GitOrigin-RevId: bb6dab91f3fca843d7563ed812c4ea6f56fb28bb
* Support for adding reviewer role
* added collaboratorsGetter tests
* emit toggle-track-changes when reviewer is added
GitOrigin-RevId: 5b831102d561f5dbc4b23ab9f6dc63e3a87ea103
* Support for adding reviewer role
* show reviewer in track changes user list
* added "review" in assertClientCanViewProject
* test if reviewer can read project
* added collaboratorsGetter tests
* eit toggle-track-changes when track changes changes
* Support for changing privilege to reviewers for invited users (#22159)
* Add reviewer in change privilege level handler
* added reviewer translation
* added acceptance tests
* fix tests
* Set track changes state permissions for reviewer role (#22167)
* Add reviewer in change privilege level handler
* added reviewer translation
* added acceptance tests
* fix tests
* Set track changes state permissions for reviewer role
* added authorization helper tests
* added ensureUserCanReviewProjectContent middleware
* allow changing track changes only with write permissions
* removed canUserReviewProjectContent
* List projects where user is added as a reviewer (#22249)
* List projects where user is added as reviewer
* list projects in /user/projects
* fix tests
GitOrigin-RevId: 54064a7f961fe06f188ab449cd469cdaaf01b20a
* Add showGenericConfirmModal in ModalsContext
* Add confirm modal on accept/reject selected changes
* plural in translations
* change tooltip to include selected changes
* add _plural to all translated languages
* lowercase title/tooltip
* count replacements as single change
* use new translation key
GitOrigin-RevId: afadbe1eeb2a290688b96f2b5388485f40c958d0
* Tidy up review panel components
* Add ReviewPanel providers
* [web] new design for review panel track change (#19544)
* [web] new design for review panel track change
* fixed mini view
* mini icon style change
* fix icon size
* format date
* useRangesUserContext hook
* remove useRangesUserContext hook
* using full class names
* fix action icons hover
* change wording for tooltips
* added ReviewPanelChangeUser component
* Update header in new review panel
* Extract ReviewPanelTrackChangesMenuButton as a separate component
* Remove wrapper div
* Replace h2 with div for review panel label
* Rename ReviewPanelTools to ReviewPanelHeader
* Rename trackChangesExpanded -> trackChangesMenuExpanded
* Dont break memoisation of ReviewPanelTrackChangesMenuButton
* Fix the width of the track changes arrow icon
* Update how prop types are declared
* Remove new empty state from old review panel
* Add empty state to new review panel
* Add project members and owner to ChangesUsers context (#19624)
---------
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
* Redesign comment entry in review panel (#19678)
* Redesign comment entry in review panel
* ReviewPanelCommentOptions component
* remove unused prop
* Tidying
* Add conditional import
* Optional changeManager
* Add more split test compatibility
* More split test compatibility
* Fixes
* Improve overview scrolling
* Fix overview scrolling
* Fix & simplify track changes toggle
* Fix overview scrolling
* Fix current file container
* ExpandableContent component for messages in review panel (#19738)
* ExpandableContent component for messages in review panel
* remove isExpanded dependancy
* Delete comment option for new review panel (#19772)
* Delete comment option for new review panel
* dont show thread warning if there are no replies
* fix hasReplies issue
* Implement initial collapsing overview files
* Fix positioning of overview panel
* Small styling changes
* Add count of unresolved comments and tracked chanegs
* More style adjustments
* Move review-panel-overview styles into css file
* Remove unused var
---------
Co-authored-by: Domagoj Kriskovic <dom.kriskovic@overleaf.com>
Co-authored-by: David Powell <david.powell@overleaf.com>
Co-authored-by: David <33458145+davidmcpowell@users.noreply.github.com>
GitOrigin-RevId: e67463443d541f88445a86eed5e2b6ec6040f9c7
* add RestoreFileOrigin in overleaf-editor-core
* support source to be an object
* use sourceOrOrigin as param
* rename to originOrSource so the priority is more clear
* get timestamp from version
* fix test
* include version and min_count in getUpdatesFromHistory
* extractOriginOrSource util function
* fix RestoreManagerTests
GitOrigin-RevId: 0ace05a6ade2794c753a9d0bffb4f858ecc6899a
* [web] revert binary file
* use addEntityWithName if file was deleted
* todo comments
* only show Revert file in ui even if deleted
* use _revertBinaryFile function
* emit new ids when reverting
* format:fix
* await emitToRoom calls
* use EditorController.upsertFile
* remove _revertBinaryFile function
* binary file check
* mock importFile method in tests
* move findElementByPath stub
* debug ci error
* resolve with empty object as file
* fix tests
* remove await before expect()
* format:fix
* test when binary file exists and when it does not
* use "file-revert" for source
* [web] revert existing file without ranges support (#18107)
* [web] revert existing file without ranges support
* ignore document_updated_externally if file-revert
* fix test
GitOrigin-RevId: a5e0c83a7635bc7d934dec9debe916bdd4beb51e
* Send operations to project-history when resolving/unresolving comments
* small fixes
* added doc_id in web unit test
* Revert "added doc_id in web unit test"
This reverts commit f0b8251abfce17965d5e1b0e45d8784fcf1d9eed.
* fix mocked dependency in test
* wip: web unit tests
* document updater, reopen test
* document-updater tests
* format fix
* fix typo
* fix callsArgWith
* fix reopenThread calls in doc updater tests
* fix typos
* log error if chat api resolve failes
* log error when reopening thread
* sendStatus calls done() in tests
* using OError instead of logging
* removed timers
* preserve legacy endpoints
* update after merge
* Remove timer check in HttpControllerTest
* prettier
* added "legacy" in log
* remove metrics.timer
* fix promisify issues
* remove unused cb
GitOrigin-RevId: 849538c86996973a065c727835e93028e5429344