Commit graph

61 commits

Author SHA1 Message Date
Tim Down
905cc5d45f Move project context out of scope value store (#26615)
* Refactor project context to not use scope store

* Fix Cypress tests for project context changes

* Fix frontend React Testing Library tests for project context changes

* Remove redundant code

* Fix some project types in tests

* Remove unused import and fix a type

* Throw an error if updating the project in the project context before joining the project

* Fix some review panel tests

* Remove unused imports

GitOrigin-RevId: 2f0c928b651f387aa980c29aef7d1ba0649790a7
2025-07-10 08:06:31 +00:00
Antoine Clausse
07b1701b72 [web] Convert EditorProviders and some test files to Typescript (#26512)
* Rename files to tsx

* Update types

* Remove props that aren't typed

* Add `LayoutContextOwnStates`

* Use `LayoutContextOwnStates`

* Ignore ts errors about `SocketIOMock`

* Address comments: remove `satisfies`, update `BroadcastChannel` fixture

* Add types to `makeEditorOpenDocProvider`. Update `openDocId`->`currentDocumentId`

* misc.

* Type sockets as `SocketIOMock & Socket`

* Fix remaining typing errors

* Fix type of `ideReactContextValue`

GitOrigin-RevId: 2734ac707517d56c452b0bf06ea3438f947a64be
2025-07-07 08:05:40 +00:00
Antoine Clausse
09a534f48b [web] Move scopes permissionsLevel, permissions and hasLintingError to React context (#26607)
* Move `hasLintingError` from scope to react state

* Move `permissionsLevel` to IdeReactContext states

* Get `permissionsLevel` from `useIdeReactContext()`

* Set `permissionsLevel` in mocked `IdeReactProvider`

* Replace `permissions` scope by React state

* Fixup `permission` changes

* Remove redundant type

GitOrigin-RevId: 6203c61f9ac429789624196bf67e508310f4577f
2025-07-07 08:05:36 +00:00
Tim Down
904fac958d Merge pull request #26326 from overleaf/td-clean-up-scope-store
Create separate window.overleaf.unstable.store based on React context values

GitOrigin-RevId: 68f070a6fc5e2965a82720024d91b16fa622b28b
2025-07-02 08:05:53 +00:00
Antoine Clausse
9e189e7d59 [web] Move UI scope to React states (#26403)
* Move `ui.view` to setState

* Move `openFile` to setState

* Move `ui.leftMenuShown` to setState

* Move `ui.miniReviewPanelVisible` to setState

* Move `ui.pdfLayout` to setState

* Move `ui.chatOpen` to setState

* Move `ui.reviewPanelOpen` to setState

* Cleanup: remove layout-context-adapter and imports

* Replace `ui` scope by mocked `LayoutProvider` in tests

* Update test

* Remove unnecessary `scopeStore.set('ui.chatOpen' ...`

GitOrigin-RevId: 81578bfdc958239eac492905f714a6074c81d0f5
2025-06-25 08:05:15 +00:00
MoxAmber
0a79ac75ff Merge pull request #26312 from overleaf/as-10s-compile-timeout
[web] 10s Compile Timeout: Warning Phase

GitOrigin-RevId: 749baad646fa7ef0d3a8e14fbbb5edec7b227ed3
2025-06-13 08:06:13 +00:00
Jakob Ackermann
b3a1341545 [web] settle on a single split-test for the clsi-cache rollout (#25399)
* [web] settle on a single split-test for the clsi-cache rollout

Use the split-test that was used for rolling out the writes so that we
can use their already populated caches.

* [clsi-cache] fix non-sharded clsi-cache in dev-env

GitOrigin-RevId: 6ebd6369183342fe6d5e325b760d011fd1d57516
2025-05-08 08:06:37 +00:00
Tim Down
7abafb01ea Merge pull request #23940 from overleaf/td-react-18
Upgrade to React 18

GitOrigin-RevId: 9b81936e6eea2bccd97fe5c2c5841f0b946371b8
2025-05-02 08:05:29 +00:00
Jakob Ackermann
8ed650f57a [web] make clsi-cache a premium feature (#25075)
* [web] stopOnFirstError=true does not conflict with =false locally

Allow stopOnFirstError to be enabled in the compile from cache and
disabled locally.
Compiles that passed with stopOnFirstError=true will also pass with
stopOnFirstError=false. The inverse does not hold, and we need to
recompile.

* [web] record event when using compile from cache

* [web] record event when falling back to clsi-cache

* [web] make clsi-cache a premium feature

* [k8s] clsi-cache: increase disk size for beta rollout

NOTE: As this is a premium feature and paid servers run in zones c+d, we
do not need to scale up clsi-cache in zone b for now.

* [web] enable full sampling of compile-result-backend events

* [web] fix frontend tests

* [web] be more verbose when determining access to clsi-cache feature

GitOrigin-RevId: 6fd663e16085187876eb225f7f33eeeaf69d2b2a
2025-04-25 08:05:33 +00:00
Jakob Ackermann
39110d9da9 [clsi-cache] check compiler settings before using compile from cache (#24845)
* [web] provide an actual rootFolder from EditorProviders in tests

- Fixup SocketIOMock and ShareJS mocks to provide the complete interface
- Extend SocketIOMock interface to count event listeners
- Fixup test that did not expect to find a working rootDoc

* [web] expose imageName from ProjectContext

* [clsi-cache] check compiler settings before using compile from cache

* [web] avoid fetching initial compile from clsi-cache in PDF detach tab

GitOrigin-RevId: e3c754a7ceca55f03a317e1bc8ae45ed12cc2f02
2025-04-16 08:05:35 +00:00
Jakob Ackermann
b831a0b3f7 [clsi-cache] frontend (#24389)
* [clsi-lb] forward ?clsiserverid=cache requests to clsi-cache

* [web] use clsi-cache in frontend

* [web] upgrade compile from cache to full compile when triggered inflight

* [web] fix pdf-js-viewer.spec.tsx tests -- add ?clsiserverid=foo to url

* [web] fix renamed reference after merge

* [web] fix download of other output files and use specific build

* [web] consolidate validation of filename into ClsiCacheHandler

* [web] remove unused projectName from getLatestBuildFromCache

* [web] avoid hitting the same clsi-cache instance first all the time

* [web] update documentation

GitOrigin-RevId: d48265a7ba89d6731092640e1492bc9f103f5c33
2025-04-10 08:05:22 +00:00
Alf Eaton
e56c4304a1 Avoid re-rendering sync buttons when code/pdf position changes (#24192)
GitOrigin-RevId: cc17fc15df356bde6a737d6e60479cdc2e421d3e
2025-03-24 10:48:02 +00:00
Alf Eaton
2147f1d53d Remove Bootstrap 3 code from IDE page components (#23061)
GitOrigin-RevId: b41aff10672bf96e892de0be396a69eb25e2443b
2025-03-07 09:05:45 +00:00
Alf Eaton
cee51af9fd Disable "Go to code location in PDF" button for non-TeX files (#23751)
GitOrigin-RevId: 9a51252e2df6e52532d0cd787a8fd744af41ed95
2025-02-26 09:04:08 +00:00
David
1d648f9755 Merge pull request #23502 from overleaf/dp-pdf-typescript
Convert PDF Preview components to typescript

GitOrigin-RevId: 34594d21143727fa42b8b595aa12125a4dd7ae5e
2025-02-13 09:06:41 +00:00
Alf Eaton
87186eb568 Standardise naming of openDocId as openDocWithId or currentDocumentId (#23307)
GitOrigin-RevId: d71b6d878188c7b916f02a3749976ecd96d648a3
2025-02-05 09:05:15 +00:00
Alf Eaton
f1e1d55d8c Merge pull request #22964 from overleaf/ae-project-search-flush
Ensure that open docs are flushed before running full project search

GitOrigin-RevId: 6707cf982018908a37957503add73a085c749f61
2025-01-24 09:05:05 +00:00
Alf Eaton
2fbb4615f9 Convert utility functions to TypeScript (#22658)
* 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
2025-01-16 09:05:36 +00:00
Alf Eaton
be45aec5b5 Fix tests
GitOrigin-RevId: 739e1c1fccaa583bd3e13da96802b8c6d4164ad8
2024-10-14 11:00:41 +00:00
Tim Down
e60885aa88 Merge pull request #19347 from overleaf/td-bs5-cypress-css
Move CSS loading in Cypress to individual test spec files

GitOrigin-RevId: 92bb5167cfa81b0bd54acc724efb23b397421ccb
2024-07-25 08:05:16 +00:00
Alf Eaton
cfb1a5b82f Display previous fix from AI error assistant (#19278)
GitOrigin-RevId: 12468956281d11f9ebdc50a2e30e5f8213f68308
2024-07-15 09:03:19 +00:00
Alf Eaton
26d7524c93 Updates to the AI error assistant (#19107)
GitOrigin-RevId: 7ffc1e32d331fa8bab1ea25919e706bf8b59800f
2024-06-26 11:11:44 +00:00
Jakob Ackermann
aa480a2663 Merge pull request #18898 from overleaf/jpa-no-window
[web] migrate from window attributes to getMeta

GitOrigin-RevId: 3dcf1ab6b01155e5e4abeb3e78d0fa9053e055bc
2024-06-19 08:04:21 +00:00
Alf Eaton
c24ace801b Remove Angular (#17534)
GitOrigin-RevId: 7a0d45e17d9905fa75569e2d19ca59caa4a41565
2024-06-06 08:04:09 +00:00
Antoine Clausse
491bc2628d Merge pull request #17899 from overleaf/revert-17700-ac-tear-down-compile-timeout-tests
Revert "[web] Remove split-tests `compile-backend-class*` and `compile-timeout-20s*`"

GitOrigin-RevId: d5070ced06adbd435e782a44b7ef767e395bd6a0
2024-04-15 08:04:37 +00:00
Antoine Clausse
2dd10c7fee [web] Remove split-tests compile-backend-class* and compile-timeout-20s* (#17700)
* Remove split-tests of `compile-timeout-20s` and `compile-timeout-20s-existing-users`

* Remove `NEW_COMPILE_TIMEOUT_ENFORCED_CUTOFF` variables

* Revert timeout override `60` -> `20`

* Update settings.overrides.saas.js: `compileTimeout: 20`

* Remove `compile-backend-class-n2d`

* Remove `force_new_compile_timeout`

* Remove `showNewCompileTimeoutUI`

* Remove `compileTimeChanging`

* Simplify code by removing segmentation object

* Remove `CompileTimeoutChangingSoon`

* Remove `user.features.compileTimeout = '20 (with 10s prompt)'`

* Remove `CompileTimeWarning`

* Remove `TimeoutUpgradePrompt` (old)

* Remove `compile-backend-class`

* Remove unused translations

* Update tests

* Fix: Show `CompileTimeout` even if `!window.ExposedSettings.enableSubscriptions`

* Create script to migrate users to 20s compileTimeout

* migration script: exclude `compileTimeout: 20` from the match

* migration script: use `batchedUpdate`

* Remove `showFasterCompilesFeedbackUI` and `FasterCompilesFeedback`

Helped-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

* Remove `_getCompileBackendClassDetails`, simplify definition of `limits` object

* Remove `Settings.apis.clsi.defaultBackendClass`

* Remove unnecessary second scan of the whole user collection in dry mode

* Override `timeout` to 20 for users having `compileGroup === 'standard' && compileTimeout <= 60`

* Remove second `logCount`: re-run the script in dry-mode if you want to see that count

* Use secondary readPreference when counting users

* Fix script setup and exit 0

* Fix: Remove `user.` from query path!

* Add acceptance test on script migration_compile_timeout_60s_to_20s.js

GitOrigin-RevId: 3cb65130e6d7fbd9c54005f4c213066d0473e9d8
2024-04-15 08:04:24 +00:00
Alf Eaton
0cde5be165 Merge pull request #14709 from overleaf/ae-context-typescript
Convert React context providers to TypeScript [don't squash!]

GitOrigin-RevId: d92a91798286978410956ab791d73c17c5086d86
2024-01-29 09:03:04 +00:00
Tim Down
38efea39f2 Merge pull request #15707 from overleaf/td-user-settings-context
Move user settings to a context

GitOrigin-RevId: 9a9d55dfee9f71cee323fe64d1442303ac7cfeb2
2023-11-22 09:04:39 +00:00
Mathias Jakobsen
edb4d7b84e Merge pull request #15455 from overleaf/mj-enable-all-the-things
[web] Enable skipped cypress tests

GitOrigin-RevId: 36cffbb2cc72ffb4cae9e5b8eaa57f7ba7929fa7
2023-10-30 09:04:29 +00:00
Tim Down
13f246a85e Merge pull request #15342 from overleaf/td-remove-file-tree-manager-in-react
Remove use of FileTreeManager in React code

GitOrigin-RevId: f15bc9b4f84e0f65709b9850ed8cc5d3637efa7f
2023-10-27 08:03:10 +00:00
Mathias Jakobsen
1518b94451 Merge pull request #15352 from overleaf/mj-pdf-preview-test
[web] Re-enable pdf preview test

GitOrigin-RevId: cc60719f9780b2c5426db357ddbc2accd1ad0bee
2023-10-26 08:03:27 +00:00
Tim Down
3be937c503 Migrate layout context to TypeScript (#15275)
Migrate layout context to TypeScript

GitOrigin-RevId: ce453bfb67f7c36176fa24144413b556cd3c117e
2023-10-19 08:03:01 +00:00
Alf Eaton
04900349e6 Add PdfPreviewProvider and preserve PDF viewer loading error (#14970)
GitOrigin-RevId: ac305633c7c0bc13f5f670b71890cfd30a3cbffd
2023-09-29 08:04:10 +00:00
ilkin-overleaf
1c66d2728c Merge pull request #14405 from overleaf/ii-enable-tests
[web] Enable disabled tests

GitOrigin-RevId: 1b7199446849ccaf3febe51409f73d9305a93e9c
2023-09-01 08:04:05 +00:00
Alf Eaton
af038a9d47 Skip flaky "disables compile button while compile is running" test (#13731)
GitOrigin-RevId: c0b9dcd7438882251012b9eef913547b0a967485
2023-07-17 10:54:23 +00:00
Alf Eaton
283c1d7282 Merge pull request #13605 from overleaf/ae-meta-tests
[cypress] Set/reset window.metaAttributesCache globally

GitOrigin-RevId: 5aa1d5e37780b53f6ddf7d34587e2119ba328003
2023-07-17 10:49:15 +00:00
Brian Gough
137eda06f0 Merge pull request #13571 from overleaf/bg-disable-flaky-cypress-tests
disable flaky cypress tests

GitOrigin-RevId: 3ff8a8a50aff352251eb23daa86e55650ca1f369
2023-07-17 10:43:11 +00:00
Alf Eaton
29f67a3985 Merge pull request #13525 from overleaf/jpa-teardown-compile-domain-test
[web] start tear down of split test for new compile domain

GitOrigin-RevId: 405bba924a37f56614b0744f47914306f420a028
2023-07-17 10:43:01 +00:00
Alf Eaton
510e686b7b Upgrade ESLint plugins (#13153)
GitOrigin-RevId: 9cd0b4429a9c2b3df9c18957aef21ef021e5fdfd
2023-05-25 08:05:34 +00:00
Alf Eaton
e0d327a3e8 Skip/improve flaky pdf tests (#13150)
GitOrigin-RevId: a98b145e86f325d1df79bdbcd1825ee5a3ca6def
2023-05-25 08:04:49 +00:00
Alf Eaton
390d7ed005 Merge pull request #12176 from overleaf/ae-syntex-tests
Improve synctex Cypress tests

GitOrigin-RevId: 282d26d344d8ae08f52b18ef4c12a4c311a6b7ff
2023-03-14 09:04:14 +00:00
Alf Eaton
488c6ff919 Improve compile request mocking in Cypress tests (#12095)
GitOrigin-RevId: fdbc53148e5437e451dab4889232923c823d649e
2023-03-07 09:05:25 +00:00
M Fahru
b62cb86bf8 Create new SplitMenu component and implement it for the pdf compile button (detached & non-detached) (#11772)
* 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
2023-02-22 09:04:42 +00:00
Alf Eaton
1d3e41e541 Merge pull request #11418 from overleaf/ae-skip-detach
Skip PdfSynctexControls and useDetachLayout tests

GitOrigin-RevId: bb6c150ffd72c7a2a9d4b5b69dc9c8fd2e9e9759
2023-01-25 09:04:08 +00:00
Alf Eaton
cda947d1ac Remove sysend dependency (#10852)
GitOrigin-RevId: c3d9601256af8720ab41264609cb5c5c810afbba
2023-01-10 09:04:37 +00:00
Alf Eaton
0b14c55d24 Upgrade Cypress to v12 (#11011)
* Upgrade Cypress to v12.2.0
* Remove cy.unmount
* Only record video in CI
* Remove unmount definition and @cypress/react

GitOrigin-RevId: 463bc216b1debc65ad066f7c1d479724cfa062d1
2023-01-06 09:03:55 +00:00
Alf Eaton
29576fc1fd Merge pull request #11064 from overleaf/ae-skip-pdfsynctexcontrols-tests
Skip PdfSynctexControls tests

GitOrigin-RevId: 17896aa9cf5862b862d777c522c5506ac87fc260
2023-01-05 09:04:52 +00:00
Alf Eaton
22336942a8 Merge pull request #10081 from overleaf/ae-skip-flaky-test
Skip flaky PdfPreviewDetachedRoot test

GitOrigin-RevId: f0be1ab4dae4351a5f258a072150469bd34a50b8
2022-10-21 08:03:39 +00:00
Alf Eaton
27686264f4 Merge pull request #9981 from overleaf/ae-cypress-tweaks
Use more built-in assertions in Cypress tests

GitOrigin-RevId: e89a324cf4357383b484d0bebaf43862c1d21329
2022-10-19 08:03:52 +00:00
Jakob Ackermann
315414de1b Merge pull request #9011 from overleaf/jpa-better-render-error-message
[web] provide helpful error message when pdf rendering fails

GitOrigin-RevId: abbe6f362fa362fadee197527463ee675760e581
2022-07-29 08:04:48 +00:00