Commit Graph

82 Commits

Author SHA1 Message Date
Antoine Clausse
b901bb6c75 [web] Update fetch-mock to version 12 (#24837)
* Update fetch-mock to version 12

* Replace `fetchMock.done` by `fetchMock.callHistory.done`

* Replace `…Mock.called` by `…Mock.callHistory.called`

* Replace `fetchMock.reset` by `fetchMock.hardReset`

* Replace `fetchMock.restore` by `fetchMock.hardReset`

* Replace `fetchMock.resetHistory` by `fetchMock.clearHistory`

* Replace `fetchMock.calls` by `fetchMock.callHistory.calls`

* Replace `fetchMock.flush` by `fetchMock.callHistory.flush`

* Update tests for fetch-mock version 12

See https://www.wheresrhys.co.uk/fetch-mock/docs/Usage/upgrade-guide

* Update stories for fetch-mock version 12

* Remove `overwriteRoutes` option

* Add `fetchMock.spyGlobal()` to storybook

* Remove deprecated `sendAsJson` param

* Replace `fetchMock.hardReset()` by `fetchMock.removeRoutes().clearHistory()`

* Fixup fetch-mock in storybook:

Call `mockGlobal` inside the hook, call `removeRoutes` and `unmockGlobal` on cleanup

Behaviour can be tested by navigating between

https://storybook.dev-overleaf.com/main/?path=/story/editor-ai-error-assistant-compile-log-entries--first-log-entry
https://storybook.dev-overleaf.com/main/?path=/story/editor-ai-error-assistant-compile-log-entries--rate-limited

https://storybook.dev-overleaf.com/main/?path=/story/project-list-notifications--project-invite
https://storybook.dev-overleaf.com/main/?path=/story/project-list-notifications--project-invite-network-error

And clicking the buttons

GitOrigin-RevId: 35611b4430259e4c21c3d819ad18b2e6dab66242
2025-04-17 08:06:24 +00:00
Kristina
9f22564ca3 Merge pull request #24680 from overleaf/kh-rename-recurly-namespace
[web] rename recurly namespace

GitOrigin-RevId: b7cfd26923d47bd7f3de4140be24d2d1ef20f6c8
2025-04-11 08:05:20 +00:00
Kristina
af46bcdace Merge pull request #24396 from overleaf/kh-rm-unused-recurly-subscription-property
[web] rm dead code in `SubscriptionViewModelBuilder`

GitOrigin-RevId: 64006e3f51f61c40e2d4e01fd04961546319ffdd
2025-04-11 08:05:16 +00:00
Kristina
7920cd9d3d Merge pull request #24519 from overleaf/kh-add-payment-service-low-delta
[web] add `PaymentService` to `buildUsersSubscriptionViewModel`

GitOrigin-RevId: 543531226bad38d34b225dae28cf00a5e02e5558
2025-04-10 08:05:06 +00:00
Tim Down
28468e134c Merge pull request #24660 from overleaf/td-bs5-remove-react-bootstrap-0
Remove react-bootstrap 0.33.1

GitOrigin-RevId: c320a6b18c576afdc0fd49559915d3d2f3a7a1ef
2025-04-10 08:04:50 +00:00
ilkin-overleaf
61ce012fb5 Merge pull request #24430 from overleaf/ii-flexible-group-licensing-tear-down-feature-flag
[web] Tear down flexible group licensing feature flag

GitOrigin-RevId: 181713f1f2371b51cbc4256debea59bbcf3668f3
2025-03-31 08:04:42 +00:00
Tim Down
c2da12939e Merge pull request #24313 from overleaf/td-ac-bs5-frontend-tests
Update front-end tests to use Bootstrap 5

GitOrigin-RevId: abaa09f8c0639d64d6ade97468ab16204e5de97b
2025-03-24 10:48:20 +00:00
Davinder Singh
7ec4cbd841 Merge pull request #24164 from overleaf/ds-group-discount-10-percent-february
Group plans - Reintroduce 10% discount for group plans (Part 1, 2 & 3 Combined)

GitOrigin-RevId: f3a59a65bbd300cc06f70e179e794c32ed7970ce
2025-03-11 09:05:50 +00:00
Davinder Singh
37dc516ea2 Merge pull request #24148 from overleaf/revert-24066-ds-group-discount-2
Revert "Group plans - Reintroduce 10% discount for group plans (part 2)"

GitOrigin-RevId: 2d8a8d117222daa997e4d0632a9e7235559a8b8c
2025-03-07 09:06:35 +00:00
Davinder Singh
3784061935 Merge pull request #24066 from overleaf/ds-group-discount-2
Group plans - Reintroduce 10% discount for group plans (part 2)

GitOrigin-RevId: ea5d600d901329944092daf560a015ac8ca10cd3
2025-03-07 09:06:05 +00:00
Davinder Singh
3851ee4eb2 Plans Group Size - Removing the 50 size (#23851)
* removing the group size 50

* removing the if condition for 20/50 groups

* running make cleanup_unused_locales

* removing instances of sizesForHighDenominationCurrencies and the related if conditions

* removing the price related to group size of 50 in different currencies

* fixing the test

* changing the 50 to 20 under faqs

* changing the remaining 50 to 20

* cleaning of variables

* removing extra variable

GitOrigin-RevId: 68f5d7df1eab29360e9c806ad844f1c900341c19
2025-02-28 09:04:51 +00:00
Antoine Clausse
d9a9fbb242 [web] Fix button-link loading state in subscription page (#23640)
* Fix inline loading button style

* Fix frontend test

GitOrigin-RevId: 59cdf68b8f2ad50f042a4457dc37f5c3d33d6c87
2025-02-26 09:04:58 +00:00
ilkin-overleaf
4a927e45a6 Merge pull request #23117 from overleaf/ii-flexible-group-licensing-subscription-page
[web] Subscription page for flexible licensing

GitOrigin-RevId: 8f2fab1fc01e27063d716a86add66b1b9a72cbe6
2025-02-05 09:05:54 +00:00
roo hutton
50f5a4e909 Merge pull request #23161 from overleaf/rh-pause-no-plan-change
Prevent downgrade to personal plan during subscription pause

GitOrigin-RevId: e3ba2e8e4d9b909fa2ee9c3c7e15db2ed257e43b
2025-01-31 09:04:58 +00:00
roo hutton
ad096f82bf Merge pull request #21905 from overleaf/rh-pause-sub
Add support for pausing subscription

GitOrigin-RevId: f939ea4e7f3c2b1fa16dcb8aff1b2460d091d4e2
2025-01-23 09:06:04 +00:00
Alf Eaton
604471bfe9 Improve types for window.metaAttributesCache (#22983)
GitOrigin-RevId: cc962bf7eeaac525267ba04080889b0d58051914
2025-01-23 09:05:14 +00:00
M Fahru
da6f332269 Merge pull request #22821 from overleaf/kh-cop-on-upgrade-modal
[web] limit COP group plans to 20 seats in upgrade modal

GitOrigin-RevId: b1d2713b978d0269892d8f547eeccc5ab702ea77
2025-01-16 09:06:37 +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
Kristina
7994390967 [web] tear down group-pricing-2025 split test on non-plans pages (#22785)
* [web] rm split test from the change to group modal
* [web] rm split test from cancel flow
* [web] rm split test from checkout flow
* [web] rm unused translations

GitOrigin-RevId: 0188f2631ed18e79fdf55dabedac7cdea4f213d3
2025-01-16 09:05:22 +00:00
M Fahru
2ef5db2938 Merge pull request #22340 from overleaf/mf-clean-up-currency-format-test
[web] Clean up localized currency format test (`local-ccy-format-v2`)

GitOrigin-RevId: 30d671479522b87ee9205994508b745d2b0ae4c3
2025-01-14 09:05:49 +00:00
MoxAmber
18aa1b4e3b [Group Pricing] Add price change warning to cancellation flow (#22640)
* Add price change warning to cancellation flow
* Fixes lint error from translated string
* update pricing effective date

---------

Co-authored-by: Kristina Hjertberg <kristina.hjertberg@overleaf.com>
GitOrigin-RevId: d1b6982ff437d931144feffddcbddd96f5a3405b
2025-01-07 09:04:36 +00:00
Eric Mc Sween
a21db20631 Merge pull request #22164 from overleaf/em-subscription-case
Fix case in subscription related pages

GitOrigin-RevId: df5c1da01a2cc391d081b4dccf882dfe45276766
2024-11-28 09:05:50 +00:00
Miguel Serrano
a5f38a8663 Merge pull request #21683 from overleaf/msm-sso-admin-checkbox
[web] Change Group SSO radio in admin panel to checkbox

GitOrigin-RevId: c4a07400c6f399724be0368108be24ec6df67efa
2024-11-21 09:03:52 +00:00
Miguel Serrano
3e0428d450 Merge pull request #21884 from overleaf/msm-remove-group-sso-enabled-flag
[web] Cleanup `GROUP_SSO_ENABLED` env variable

GitOrigin-RevId: b41ce989348c70c3b4ca59ebf4986edf059534aa
2024-11-21 09:03:43 +00:00
Jimmy Domagala-Tang
9818912cb7 Merge pull request #20968 from overleaf/jdt-subscription-page-addons
feat: add all add-ons to price calculation in subs view model
GitOrigin-RevId: d03374192d735278c6459fc6341a72d0b0c7c3aa
2024-11-05 09:05:49 +00:00
roo hutton
551de499d5 Merge pull request #20802 from overleaf/rh-change-personal-plan
[web] Remove personal plans from 'change plans' table

GitOrigin-RevId: 284573cf3d5d38b1964d10fe6451b1468c90ff84
2024-10-14 11:02:24 +00:00
Antoine Clausse
9997c4874f [web] Migrate /user/subscription to BS5 (#20513)
* [web] Initialize BS5 in subscription page

* [web] Update subscription-dashboard.tsx for BS5

* [web] Update row-link.tsx for BS5

* [web] Update modals

* [web] Add `btn` to `btn-inline-link` classes

* [web] Update circle change-to-group circle price element

* [web] Replace `list-item-with-margin-bottom` with `mb-3`

* [web] Update form elements to BS5

* [web] Use `useContactUsModal`

* [web] Adjust tables margin/padding, and more

* [web] Update change-to-group-modal.tsx

* [web] Add gap to subscription buttons

* [web] Remove subscription page colspan for md and above

* [web] Use Notification component

* [web] Update "leave group" buttons

* [web] Fix tests: add `ol-user` meta tag

* [web] Nest .hover-highlight in #subscription-dashboard-root

* [web] Update to OLRow/OLCol

* [web] Update to OLButtons

* [web] Update to OLFormGroup

* [web] Naming: use BSversion prefix

* [web] Set CancelSubscriptionButton as ghost directly in component

* [web] Set "Plan" font size

* [web] Simplify cancel-subscription buttons

* [web] Remove `--neutral-10` ModalFooter background

* [web] Simplify circle styles

* [web] Center discount badge

* [web] Update fieldset label

* [web] Add `<ul>` around RowLink

* [web] Define SCSS for row-link component

* [web] Remove some use of utility classes

* [web] Revert and update `fieldset` changes (fixes tests)

* [web] Fixup some more OLButtons

* [web] Fixup use of OLRow/OLCol

* [web] Reduce spacing below "legend-as-label"

* [web] Use h5 instead of small in OLModalTitle

* [web] Revert OLCol removal on lg screens

I had removed them by mistake because I wasn't using the proper breakpoints

* [web] Add backdrop to nested modal ContactUsModal

* [web] Don't prefill project URL in ContactUsModal

* [web] Fix lint

* [web] Share `className` prop in BS5 and BS3 modals

* [web] Set sub-title font sans serif (BS3)

* [web] Update remaining Alerts to OLNotification

GitOrigin-RevId: 7fd975ae3e992cebfaf71d4e182f8e13ec886d09
2024-10-01 08:05:14 +00:00
Thomas
a16db120c0 Implement free trial limits (#19507)
* Add additional validations for subscription trials

GitOrigin-RevId: 1cb821c62e02d3eaa5b2bcacaee63b6bc7a63311
2024-08-08 08:05:05 +00:00
Alf Eaton
901d79dd55 Merge pull request #19757 from overleaf/ae-eslint-upgrade
Upgrade `@typescript-eslint` dependencies

GitOrigin-RevId: b953e795d705b817ec3669b04cd6a289be12b20d
2024-08-08 08:04:09 +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
Jessica Lawshe
cbe5cefb9a Merge pull request #18161 from overleaf/jel-subscription-dash-admin
[web] Subscription dash message when viewing as admin

GitOrigin-RevId: 699a523d7ac8d1a71e9ba14c7b8a66b39142958a
2024-05-31 08:04:23 +00:00
Jessica Lawshe
c6b88085d5 Merge pull request #18188 from overleaf/jel-react-group-invite
[web] Migrate team invite to React

GitOrigin-RevId: 32e968c3b512020aef9a396808c73a7b4859e6d1
2024-05-09 08:05:03 +00:00
Alf Eaton
9729befe59 Merge pull request #18170 from overleaf/ae-token-access-page
Convert token access page to React

GitOrigin-RevId: d7434f0de395c47a95d00767727fbe9d43f9abca
2024-05-03 08:05:01 +00:00
Antoine Clausse
6a6f155029 [web] Use React hooks to get split-test variants instead of getSplitTestVariant (getMeta) (#18133)
* Fix split-tests loading in React component: use `useSplitTestContext` instead of `getSplitTestVariant`

* Replace use of `isSplitTestEnabled` by `useSplitTestContext`

* Add SplitTestProvider to roots, and fix tests

* Create `useFeatureFlag` hook

* Use `useFeatureFlag` where applicable

GitOrigin-RevId: 9ff7bb3975d50bc4d07d74d93c482d56dc96f615
2024-05-01 08:04:55 +00:00
Antoine Clausse
b2ef7a935f [web] Use localized number formatting for currencies (#17622)
* Add a unit test on `SubscriptionFormatters.formatPrice`

* Add JSDoc to `formatPrice`

Also: Name the functions before exporting:
This fixes my IDE (WebStorm) navigation

* Make `'USD'` the default param instead of reassigning

* Create `formatCurrency` function

* Use `formatCurrency` in SubscriptionFormatters

* Use an `isNoCentsCurrency` logic for `CLP` `JPY` `KRW` `VND`

And remove custom `CLP` logic and locale

* Add `locale` param to `formatPrice`

* Generate `groups.json` and `localizedPlanPricing.json`

```
bin/exec web node ./scripts/recurly/recurly_prices.js --download -o prices.json
bin/exec web node ./scripts/plan-prices/plans.js -f ../../prices.json -o dir
```

* Update scripts/plan-prices/plans.js to generate numbers instead of localized amounts

* Generate `groups.json` and `localizedPlanPricing.json`

```
bin/exec web node ./scripts/recurly/recurly_prices.js --download -o prices.json
bin/exec web node ./scripts/plan-prices/plans.js -f ../../prices.json -o dir
```

* Remove generation of `plans.json`

As /services/web/frontend/js/main/plans.js was removed in https://github.com/overleaf/internal/pull/12593

* Sort currencies in alphabetical order in scripts/plan-prices/plans.js

* Generate `groups.json` and `localizedPlanPricing.json`

```
bin/exec web node ./scripts/recurly/recurly_prices.js --download -o prices.json
bin/exec web node ./scripts/plan-prices/plans.js -f ../../prices.json -o dir
```

* Use `formatCurrency` in price-summary.tsx

* Use `formatCurrency` in Subscription Pug files

* Fix unit tests SubscriptionHelperTests.js

* Remove unused `currencySymbol`

* Change to `formatCurrency` in other React components

* Add `CurrencyCode` JSDoc types

* Duplicate `formatCurrency` into services/web/app/src/util

* Wrap tests in a top-level describe block

* Use `narrowSymbol`

* Fix tests with `narrowSymbol` expects

* Revert deletion of old `formatPrice` in SubscriptionFormatters.js

* Rename `formatCurrency` -> `formatCurrencyLocalized`

* Revert deletion of `CurrencySymbol`

* Add split-test in SubscriptionController.js

* Add split-test in SubscriptionViewModelBuilder.js

* Add split-test in plans

* Add split-test in subscription-dashboard-context.tsx

* Add split-test in 4 more components

* Update tests

* Show currency and payment methods in interstitial page

* Fix `&ndash;` being printed. Use `–` instead

* Fix test with NOK

* Storybook: Fix missing `SplitTestProvider`

* Storybook: Revert "Remove unused `currencySymbol`"

This reverts commit e55387d4753f97bbf8e39e0fdc3ad17312122aaa.

* Replace `getSplitTestVariant` by `useSplitTestContext`

* Use parameterize currencyFormat in `generateInitialLocalizedGroupPrice`

* Fixup import paths of `formatCurrencyLocalized`

* Replace `% 1 === 0` by `Number.isInteger`

* Add comment explaining that any combinations of languages/currencies could happen

* Fixup after rebase: import `useSplitTestContext`

* Revert "Remove SplitTestProvider from subscription root"

This reverts commit be9f378fda715b86589ab0759737581c72321d87.

* Revert "Remove split test provider from some tests"

This reverts commit 985522932b550cfd38fa6a4f4c3d2ebaee6ff7df.

GitOrigin-RevId: 59a83cbbe0f7cc7e45f189c654e23fcf9bfa37af
2024-04-19 08:03:54 +00:00
Jessica Lawshe
d5639794c2 Merge pull request #17166 from overleaf/ab-fix-group-settings-label
[web] Cleanup managed users env var and fix group settings label

GitOrigin-RevId: 817ed86a6c94c03adb41e8c10115d6404180142e
2024-02-20 09:05:54 +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
Mathias Jakobsen
7c8014d791 Merge pull request #15798 from overleaf/mj-features-page-teardown
[web] Tear down features-page split test

GitOrigin-RevId: 346064bea8775033d226f4405843717b380085fd
2023-11-21 09:04:03 +00:00
ilkin-overleaf
7db5d761ea Merge pull request #15557 from overleaf/ii-ide-page-prototype-review-panel-track-changes
Review panel track changes for React IDE page

GitOrigin-RevId: d061596581ff10bd897b286dcd5c280ce79a6384
2023-11-17 09:03:02 +00:00
Alexandre Bourdin
8abf8ba956 Merge pull request #15639 from overleaf/ab-fix-group-settings-visibility
[web] Various fixes for Group SSO

GitOrigin-RevId: 0a98d7eed14b2878a6be5e28e54ab1f7ceb9be5f
2023-11-07 12:34:45 +00:00
Davinder Singh
8b5213397c Group SSO - Display group SSO switch independently of managed users (#15423)
GitOrigin-RevId: 249a9b176404418da712eee9e29de931d9498887
2023-11-07 09:04:31 +00:00
Thomas
843b4f3940 Move checkout to subscriptions module (#15022)
* Move checkout to subscriptions module

GitOrigin-RevId: 0ad6587ddd7042aed7f2e18d9d0668e02942eb1e
2023-10-03 08:04:31 +00:00
Thomas Mees
00f329cb67 Move check to display PremiumFeaturesLink in to SubscriptionDashboard
GitOrigin-RevId: 931dcd61e019d889e60a6c7ea5f1facd15dcf905
2023-09-06 08:06:00 +00:00
Thomas Mees
8d04297f21 Fix PremiumFeaturesLink tests
GitOrigin-RevId: 32f5b8eecb94074f39622e21833aba0e6ce7feb0
2023-09-06 08:05:56 +00:00
Thomas Mees
1cde138160 Move premium features link outside the subscription block
GitOrigin-RevId: b88d765d859f1bdf1eb1d469131c8f239f327562
2023-09-06 08:05:47 +00:00
Thomas
6a9c9652f9 Merge pull request #14007 from overleaf/tm-subscription-active-until-trial-ends
Show cancelled subscription will remain active until end of trial

GitOrigin-RevId: 277f477dc95869ff61cbb48cb2033ec55db3cf52
2023-08-09 08:04:28 +00:00
Davinder Singh
88d0254dde Merge pull request #13390 from overleaf/ab-managers-page-styling
[web] Full-row links styling for group subscription links in dash

GitOrigin-RevId: f3b2dd67e9c14cf8fde1df41d74d380c06cc3d4c
2023-07-17 10:31:18 +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
f375362894 Always use mockable location methods (#11929)
* Always use mockable location methods
* Add eslint rules for window.location calls/assignment
* Add useLocation hook
* Update tests

GitOrigin-RevId: eafb846db89f884a7a9a8570cce7745be605152c
2023-03-17 09:05:21 +00:00