* Add helpers for checking and removing user readwrite token membership
* Add sharing-updates page and handlers
* Redirect read write token members to sharing-updates on project load
GitOrigin-RevId: d552a2cd74a9843c6103923b03f137131a48877a
[web] Fix loading plans page with group plan modal hash (#groups) does not enable the group plan table
GitOrigin-RevId: acd2e683d8e8d3f2b3325c3745856fe27c96eed6
Example case: visit plans page via other pages, the hash will be empty initially, this commit will make sure hash is updated even though no initial hash exists.
GitOrigin-RevId: 411585111e8cf1b3eb803059ad4cf98ae4e69b19
* Load correct JS for the active Bootstrap version
* Tidy up bootstrapVersion declaration
* Add Bootstrap JS to website redesign layout
* FIx error on interstitial subscriptions page
* Remove unnecessary import of jQuery and Bootstrap
* Use global entrypointScripts in bootstrap-js mixin
GitOrigin-RevId: 6b1977354a72dc69008fc0d2e3baec2f28d97f6b
* 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 `–` 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
* Implement redesign on the default urls and redirect variants to defaults
* Fix Features & Benefits inconsistent case, cleanup temp translation
* Replace header_extras with the website redesign header extras
* Delete old home page
* Remove real time edits javascript (old home page)
* Cleanup unused locales
* Temporarily disable test that checked about/features-overview page
* Fix business/universities links in customer stories
GitOrigin-RevId: 9d2ee64c2622ffea7a2c2f7448a5e5beae3187e9
* React IDE page shell
* Set the maximum height of the symbol palette to 336px
* Tidy export
* Remove unnecessary destructuring
* Update comment
* Optimize toggle
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
* Change snap-to-collapse threshold to 5%
* Synchronize left column width between history and editor views and remove duplication in ide-page
* Replace resizer dots with SVG
* Rermove unnecessary import and comment the remaining ones
* Use block prepend to avoid duplication
* Improve vertical content divider styling
* Implement fixed width during container resize on left column
* Change IDE page file extension
* Refactor fixed-size panel into a hook and use for chat panel
---------
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: aa881e48a2838a192b6f8f9e16e561f5cd706bd3
* Fix "For student" link in footer isn't working because of hash being placed before querystring
* add scroll to top behaviour if "For students" link is accessed on the plans page
* Add an extra delay to make sure computation is finished before performing scroll to top behaviour
GitOrigin-RevId: 46b906271223267bc47ffcd781c25dc03f23a8e7
* 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