refs https://github.com/TryGhost/Product/issues/3771
- if recommendations are enabled, render the recommendation modal on
sign up, in Portal
- for free signups, the recommendations modal is rendered after clicking
on the magic link
- for paid signups, the recommendations modal is rendered after Stripe
Checkout
- the recommendations modal is not rendered on a free to paid upgrade
refs https://github.com/TryGhost/Product/issues/3745
---
This pull request adds a new feature to the `admin-x-settings` app that
allows users to customize the colors of their email newsletters. It also
simplifies and refactors the routing logic and the components related to
integrations, newsletters, and users. It introduces new dependencies and
components for color manipulation and selection, and updates the
existing components and stories to use them.
refs https://github.com/TryGhost/Product/issues/3349https://ghost.slack.com/archives/C0568LN2CGJ/p1693556448443489
- fixes an issue that's caused an infinite loop in the Portal design modal and stressing the CPU.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at ac33e3e</samp>
Refactors error handling logic for signup options form fields in
`SignupOptions.tsx` using `useCallback` and `useEffect` hooks. This
enhances the code quality and efficiency.
no issue
- Also fixes a backend issue with nullable fields
- Fixes blurring the url input and setting the value to '/'
automatically while we expect absolute urls
- Added autoFocus to inputs
refs https://github.com/TryGhost/Product/issues/3349
---
This pull request improves the end-to-end tests for the code injection
settings in the admin-x-settings app. It fixes some typing and saving
issues with the `CodeMirror` editor.
refs https://github.com/TryGhost/Product/issues/3745
---
This pull request adds a storybook file for the `CurrencyField`
component and changes its value prop to use cents instead of a string.
This improves the component's usability and consistency.
no issue
Previously the beta editor only worked for newly created posts/pages, any older content would open with the original editor. This change enables automatic conversion of old content to the new content format when a post/page is opened in the admin interface allowing new features like signup and advanced header cards to be used on existing content.
- removed `convertToLexical` feature flag
- where necessary switched to using just the `lexicalEditor` feature flag in its place
- moved the "L"/"M" indicators on the posts list to a new `lexicalIndicators` feature flag to make debugging/development easier
- added a redirect to the original editor route so that any route to opening the editor (such as the `/edit` front-end shortcut, or other areas of Admin) will open in the beta editor
- avoids confusing/inconsistent behavior
refs https://github.com/TryGhost/Product/issues/3745
---
Added a user setting for webmention notifications in the admin panel.
This allows users to opt in or out of receiving notifications when they
are mentioned by other sites using webmentions.
refs https://github.com/TryGhost/Product/issues/3746
---
This pull request adds and improves features for the membership settings
app, especially for the tips or donations feature. It introduces a new
`CurrencyField` component and a `currency` module for handling currency
input and display. It also refactors and enhances some existing
components, hooks, and types for better user experience and code
quality. It affects files such as `TierDetailModal.tsx`,
`TipsOrDonations.tsx`, `useForm.ts`, and `currency.ts`.
refs https://github.com/TryGhost/Product/issues/3745
---
This pull request adds and refactors several components and hooks for
the labs and advanced settings in the admin app. It introduces feature
flags for alpha and beta features, and allows the user to upload and
download redirects, routes and content files.
refs https://github.com/TryGhost/Product/issues/3349
---
Improved user experience for editing user details in the admin settings.
Added `dirty` state to track and handle unsaved changes in the
`UserDetailModal` component.
refs https://github.com/TryGhost/Product/issues/3751
---
This pull request adds limit checks and upgrade prompts for various
features in the admin-x-settings app, such as staff, members,
newsletters, custom integrations, and custom themes. It uses a custom
hook called `useLimiter`, which relies on the `@tryghost/limit-service`
package and the host settings configuration data.
refs https://ghost.slack.com/archives/C0568LN2CGJ/p1692804385770949
- Analytics exports was previously retrieved on on page load instead of
on demand.
- This fixes that to ensure it gets fetched when the user hits the
download button.
- Renamed the file saving to `post-analytics.yyyy-mm-dd.csv`
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 2c96e78</samp>
Improved the export posts feature in the membership settings by fetching
the data only on demand and adding a date to the file name. Modified the
`usePostsExports` hook and the `exportPosts` function in
`Analytics.tsx`.
refs https://github.com/TryGhost/Product/issues/3504
- This adds support for translations, but doesn't yet translate every
possible string in the app.
- Only active if beta translations is enabled
fixes https://github.com/TryGhost/Product/issues/3753
The validation for the terms checkbox was being executed when the terms
checkbox was not being rendered. The validation checks needed to be
updated to account for if the checkbox was rendered or not. Basically
the same as this:
45a70a3f4c
refs https://github.com/TryGhost/Product/issues/3349
- When updating certain states, eg the branding colour using or a typing
in a text box, we want it display on the preview almost immediately.
However this comes with a drawback of sending a ton of requests to the
server.
- This fix adds debouncing which essentially adds a small delay of
500ms, to wait for the user to finish typing / selecting colour before
making a request.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 4e623ff</samp>
Improved the performance and user experience of the site description and
accent color settings by debouncing the backend updates. Added a
`debounce` utility function in `debounce.ts`.
refs https://github.com/TryGhost/Product/issues/3349
- Previously it detected members as being disabled altogether, which
wasn't the case.
- This resolves that by passing in a few extra required params to have
Portal loading properly
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at d3cccab</samp>
This pull request enhances the portal preview feature by adding new
parameters to the iframe URL for the portal settings and pricing tiers.
It also cleans up some code in `PortalFrame.tsx` for better readability
and type safety.
refs https://github.com/TryGhost/Product/issues/3729
This pull request improves the Slack integration settings by allowing
users to test the webhook URL and save the settings from a modal. It
also refactors the `SlackModal` component and adds a new API function
`useTestSlack` to handle the test message.
refs https://github.com/TryGhost/Product/issues/3349
- added a download handler for the analytics download button.
- wired up the download api endpoint
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 46054be</samp>
This pull request adds a feature to export post analytics as a csv file
from the membership analytics dashboard. It implements a new query hook,
a download function, and a response handler in the
`apps/admin-x-settings` app, and adds a test case for the feature.
refs https://github.com/TryGhost/Product/issues/3729
---
This pull request enhances the custom integrations feature in the
admin-x-settings app by adding accessibility and UI improvements to the
`Select` and `WebhookModal` components, refactoring the webhook and
integration types in the API module, and adding a new end-to-end test
file to verify the functionality using mocked API responses.
refs https://github.com/TryGhost/Product/issues/3349
- Adds an additional condition to set the 'default' mailgun base url in case it not need change, to prevent it from staying null in the database config, when setting the domain and api key.
- In other cases it will work as usual.
refs https://github.com/TryGhost/Product/issues/3504
- App component now uses React hooks intead of React class component
- App is now written in TypeScript
- All JavaScript is now removed from the Comments-UI project
- Removed `PopupNotification` because these were never displayed
- Removed `action` from AppContext (never used)
- Moved options parsing out of `index.ts` into a separate utility file,
similar to the signup-form
- Improved reliability of some editor tests by always waiting for the
editor to be focused (was not always the case) + added an utility method
for this
refs https://github.com/TryGhost/Product/issues/3729
- Wired up the Pintura Integration to AdminX.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 4d33355</samp>
This pull request adds the ability to customize the Pintura image editor
with custom JS and CSS files in the advanced settings modal. It
introduces a new `files.ts` file in the `api` folder, which provides a
hook and a helper function for uploading and retrieving files. It also
modifies the `PinturaModal.tsx` component to use these functions and
display the settings.
refs. https://github.com/TryGhost/Product/issues/3349
- added static Preview button to Tips and Donations
- updated modal buttons in Design settigns, so it doesn't close on save
and easier to play around with various settings
refs TryGhost/Product#3743
- Users should be able to hide the free plan from Portal, which removes it as an option on the main portal /signup page
- However, they should still be able to use the /signup/free link to allow members to signup for the free plan. Currently if the free plan is hidden from portal, the /signup/free link renders the main /signup page, with only paid plans available.
- This PR fixes that by allowing the /signup/free link to work even if the free plan is hidden from portal, but only by directly accessing the /signup/free link
refs https://github.com/TryGhost/Product/issues/3504
- When you are logged in as an admin, but not as a member, no buttons
showed (discovered in new e2e tests)
- Added E2E tests for admin actions
refs: https://github.com/TryGhost/Product/issues/3729
- Wired up the FirstPromoter api to adminx
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at bacd8ec</samp>
This pull request refactors the `FirstPromoterModal` component to use
hooks and helper functions, and adds a new end-to-end test file to
verify its functionality. The purpose of these changes is to improve the
code quality and the user experience of the FirstPromoter integration
feature.
refs https://github.com/TryGhost/Product/issues/3729
- wired up api to the AMP integration on AdminX
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 930d3b2</samp>
This file adds a modal component to the advanced settings page that
allows users to toggle and customize AMP integration for their site. It
uses the `settings` API and React hooks to handle the modal logic and
state.
closes https://github.com/TryGhost/Product/issues/3741
refs https://github.com/TryGhost/Product/issues/3729
- my first commit with some Admin X stuff! 🕺🏻
- Wired up the API to the Unsplash integration modal
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at da09dd4</samp>
This pull request adds a toggle to the Unsplash modal in the advanced
settings to enable or disable the Unsplash integration. It also updates
the settings API hook to include the Unsplash setting in the query.
refs. https://github.com/TryGhost/Product/issues/3729
- added static setting group for Integrations in AdminX
- added static built-in integration modals with forms
- added static custom integration list
closes https://github.com/TryGhost/Product/issues/3661
- until now, Portal was not loaded if members were disabled. With the
introduction of Tips & Donations, signed-off readers can also make
payments, using the Portal link /#/portal/support.
- now, Portal is loaded when Tips & Donations are enabled, even if
Memberships are disabled
- depending on the member signup access, the top bar / trigger button
Portal buttons are hidden as before (signup/subscribe hidden if access is set to none, subscribe hidden if
access is set to invite-only)
- for any other signup / signin Portal links (e.g., added by the theme,
or added via a Post/Page), a new popup informs the reader when
Memberships are disabled: "Memberships unavailable, contact the site
owner for access".
no issue
- When clicking back button in the browser when on the checkout page,
will not open Stripe again
- Does not open Stripe checkout in peek and pop mode in Arc
closes https://github.com/TryGhost/Product/issues/3661
- until now, Portal was not loaded if members were disabled. With the
introduction of Tips & Donations, signed-off readers can also make
payments, using the Portal link /#/portal/support.
- now, Portal is loaded when Tips & Donations are enabled, even if
Memberships are disabled
- depending on the member signup access, the "sign in" / "subscribe"
Portal buttons are hidden (both hidden if none, signup hidden if
invite-only)
- for any other signup / signin Portal links (e.g., added by the theme,
or added via a Post/Page), a new popup informs the reader as such when
Memberships are disabled: "Memberships unavailable, contact the site owner for access".
refs https://github.com/TryGhost/Product/issues/3349
- Simplified a few more places after switching to react-query
- Improved how mocking works in specs to be more scalable as the number
of queries increases
refs https://github.com/TryGhost/Product/issues/3676
- add filter for sidebar display of theme errors (angry red box)
- filter specific to each page feature, will need to add each one by this approach
refs. https://github.com/TryGhost/Product/issues/3601
- new newsletter modal needed to be added to be able to create newsletters
- design refinements in AdminX newsletter list and preview modal
refs https://github.com/TryGhost/Product/issues/3349
Now that we're a bit further, we can open AdminX settings from the usual
gearwheel button when the Labs flag is enabled instead of having a
separate navigation item
refs https://github.com/TryGhost/Product/issues/3650
- adds '/support', '/support/success' and 'support/error' pages
- support page calls the '/members/api/create-stripe-checkout-session'
backend endpoint on mount, then renders an error or success page
accordingly
refs https://github.com/TryGhost/DevOps/issues/50
- we should default to keeping the rule on and so I've excluded lines
that currently use `any` to avoid the need to go and fix them all up
refs. https://github.com/TryGhost/Product/issues/3349
- highlighting current navigation item while scrolling
- highlighting current navigation in content area when clicking on the sidebar. Both are for better orientation
refs https://github.com/TryGhost/DevOps/issues/50
- `react-app` comes from `eslint-config-react-app`, which is a CRA package
- we're moving away from that so this commit switches the linting over
to a more recently updated plugin
- once that was removed, we started using a newer version of
`@typescript-eslint/eslint-plugin`, so there were plenty of
updates/exemptions to make