no issue
- Refactored the Pintura integration to be easier to implement and also
more accurately display whether it's enabled or not.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 8480176</samp>
This pull request refactors the code related to the Pintura image editor
integration in the admin settings. It introduces a custom hook that
handles the logic of checking and updating the integration status and
settings, and simplifies the UI components that use the hook. It also
removes unnecessary variables and props from the components and the
hook. The affected files are `Integrations.tsx`, `UserDetailModal.tsx`,
`BrandSettings.tsx`, `usePinturaEditor.ts`, `Facebook.tsx`, and
`Twitter.tsx`.
closes https://github.com/TryGhost/Product/issues/4084
---
### <samp>🤖 Generated by Copilot at 9380e1f</samp>
This pull request adds a new UI for creating and managing offers for
members in the admin settings, which is controlled by an alpha feature
flag. It introduces new modal components for the offers UI, a new
sidebar item, new routes, and a new setting group. It also updates the
`labs.js` file to include the `adminXOffers` flag.
refs
https://www.notion.so/ghost/When-hitting-ESC-within-the-Pintura-editor-editing-cover-image-from-Design-Branding-it-would-e-b1c70064f2fd4f5cb830b095c2abd08e
- When escape was hit in within the Pintura editor in Settings, it
cleared the modal underneath it, causing the close button to become
unresponsive.
- A previous commit was made to disable the escape key altogether so
that users don't accidentally quit Pintura and having all their changes
discarded.
- This fixes a regression to make sure the background modal don't hide
and Pintura can only be closed by mouse clicking the actual close button
on the top left, if not saving it on the top right.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 5ed7f7e</samp>
This pull request enhances the Pintura editor integration by adding
error reporting and escape key handling. It modifies the
`usePinturaEditor` hook in
`apps/admin-x-settings/src/hooks/usePinturaEditor.ts`.
refs https://github.com/TryGhost/Product/issues/4060
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 55149bc</samp>
Refactored various settings forms and modals in the admin app to use the
updated `useForm` hook, which simplifies the form state management,
validation, and saving logic. Improved the UI and UX of the modal ok
buttons by using the `okProps` object and the `saveState` from the hook.
Added options to save the forms without changes and to fake the saving
when unchanged. Fixed some bugs and removed unused code.
refs https://github.com/TryGhost/Product/issues/4073 &
https://github.com/TryGhost/Product/issues/4074
---
### <samp>🤖 Generated by Copilot at eb30d37</samp>
This pull request updates some dependencies and adds fallback values for
email customization settings in the `admin-x-settings` app. This
improves the color contrast and timezone detection of the email
newsletters and prevents rendering issues.
refs https://github.com/TryGhost/Product/issues/3831
The wrong logic was used to fetch the next page, making the remaining
users show twice after deleting. Also fixed the route not updating after
deletion.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 82a41fc</samp>
Refactor and improve `UserDetailModal` component with React Query,
TypeScript, and UX enhancements. Fix data bug and add navigation
feature.
refs. https://github.com/TryGhost/Product/issues/4060
The new settings screen is too dense, lacks hierarchy and hard to scan. This update addresses some of the problems of the initial version:
- clear hierarchy in typography and larger spaces between sections to make the overall structure is easier to scan
- using icons in the sidebar to strengthen the groups + help visual thinkers to remember settings better + just to be a bit less serious
- updated colors for better contrast + orientation (bg on the sidebar)
- updated input fields to help focus on filling forms
- other small improvements for more consistency and simplicity
---------
Co-authored-by: Jono Mingard <reason.koan@gmail.com>
refs https://github.com/TryGhost/Product/issues/4053
This adds the feature flag. If enabled, the list-unsubscribe header
should be set. The value currently is only for testing purposes and
probably won't work yet.
refs https://github.com/TryGhost/Ghost/issues/18718
---
### <samp>🤖 Generated by Copilot at 6fc7040</samp>
Refactored the `id` prop of the `ImageUpload` component in
`ThemeSettings.tsx` to avoid duplication and follow naming convention.
This is part of improving the theme settings UI and functionality.
no issue
- flag is no longer used in Admin so we can clean it up in Core too
- updated Post model to set blank document to `lexical` field rather than `mobiledoc` as a default value
- switched over to returning `mobiledoc,lexical` as default formats in Admin API
no issue
- the stripe value is saved under the `stripe_connect_display_name`
column, yet Admin X was querying `stripe_connect_account_name` causing
it to be undefined.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at f0e6cb6</samp>
Renamed `stripe_connect_account_name` setting to
`stripe_connect_display_name` in the admin-x-settings app. This improves
clarity and consistency for the Stripe integration in the membership
settings.
no issue
- Updated the readme document for AdminX, Settings.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 728a9a3</samp>
Improved the documentation of the `admin-x-settings` project by updating
the `README.md` file. Removed obsolete information and added new testing
options.
refs https://github.com/TryGhost/Product/issues/4044
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at ea09dec</samp>
This pull request improves the validation of suggested amounts for tips
or donations in the membership settings. It adds a constant `MAX_AMOUNT`
based on Stripe's limit and refactors the `validateCurrencyAmount`
function to make it more reusable.
no issue
- this adds a bit more logic to ensure the portal plans remain consistent with the tier's visibility in the portal preview.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 74fd5c4</samp>
Refactored the `Free` tier checkbox in the portal signup options
component to use the `portalPlans` array. This improves the consistency
and reliability of the portal plans settings.
refs https://ghost.slack.com/archives/CTH5NDJMS/p1697741715839159
- the visibility property of the tier wasn't toggled when updating the
settings in the Portal settings.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at af531a8</samp>
This pull request adds support for free tier visibility in the
membership portal settings, and refactors the components and tests to
use the new `allTiers` API data. It updates the `PortalModal` and
`SignupOptions` components, and the `portal.test.ts` and `acceptance.ts`
files.
refs https://github.com/TryGhost/Product/issues/4044
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at ea09dec</samp>
This pull request improves the validation of suggested amounts for tips
or donations in the membership settings. It adds a constant `MAX_AMOUNT`
based on Stripe's limit and refactors the `validateCurrencyAmount`
function to make it more reusable.
no issue
- this adds a bit more logic to ensure the portal plans remain consistent with the tier's visibility in the portal preview.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 74fd5c4</samp>
Refactored the `Free` tier checkbox in the portal signup options
component to use the `portalPlans` array. This improves the consistency
and reliability of the portal plans settings.
no issue
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 87456d8</samp>
Enable tier card text verification in `tiers.test.ts`. This change is
part of adding tiers support in the admin settings.
no issue
- The stripe connect modal had "dummy" hardcoded. This adds the
`stripeConnectAccountName` variable to the text output.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
copilot:summary
refs https://ghost.slack.com/archives/CTH5NDJMS/p1697741715839159
- the visibility property of the tier wasn't toggled when updating the
settings in the Portal settings.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at af531a8</samp>
This pull request adds support for free tier visibility in the
membership portal settings, and refactors the components and tests to
use the new `allTiers` API data. It updates the `PortalModal` and
`SignupOptions` components, and the `portal.test.ts` and `acceptance.ts`
files.
refs https://github.com/TryGhost/Product/issues/3831
---
### <samp>🤖 Generated by Copilot at ea48006</samp>
Refactored the `CodeEditor` component to use Tailwind CSS and added a
`className` prop for custom styling. Applied the `className` prop to the
`CodeEditor` instances in the `CodeInjection` component to improve the
layout.
refs https://github.com/TryGhost/Product/issues/3831
---
### <samp>🤖 Generated by Copilot at f85ceff</samp>
This pull request adds drag and drop functionality and custom styling
options to the `FileUpload` and `ImageUpload` components, and uses them
to improve the user experience of uploading themes and user images in
the admin settings. It also fixes a minor issue with the background
color contrast in the `IntegrationHeader` component in dark mode, and
updates the corresponding tests.
fixesTryGhost/Product#4038
- When selecting a theme from the gallery view of official themes, the logic needs to be different for default/legacy themes (source & casper) vs other official themes. For default/legacy themes, they will already be installed so we just need to activate them, not install them.
- Previously this logic was applied only to the default theme (currently source) but was not applied to Casper, which led to errors when trying to install Casper, since it is protected from being overwritten
- This change treats default/legacy themes the same by skipping the install process and going straight to activating for casper and source
closes https://github.com/TryGhost/Product/issues/3955
- also, moved recommendations code to the "membership" folder for
consistency with the UI
- also, renamed "yarn test:slowmo" to "yarn test:acceptance:slowmo" for
consistency in the naming
- also, removed "limit: 1" when checking whether a recommendation URL
already exists. The limit defaults to 5 on the API side, and allowing
more than 1 result will lead to a more thorough check
refs
https://www.notion.so/ghost/Cannot-fetch-invites-error-shown-for-authors-edc00af822d844e7add114fd834fc8fc
- the problem is that certain users don't have permissions to make
certain API calls.
- This adds a new hook that validates the current user against
permissions before a query can be made.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 9d9cc07</samp>
Added a `usePermission` hook and a `permissions` option for custom API
queries to implement role-based permissions in the admin settings app.
refs https://github.com/TryGhost/Product/issues/3832
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 8ad5f58</samp>
This pull request enhances the portal modal component in the admin
settings for membership. It improves how it handles errors, saves
changes, and communicates with the user.
refs https://github.com/TryGhost/Product/issues/3832
Hopefully the scrolling finally works consistently
- Fixed a bug where clicking the navigated section wouldn't scroll to it
- Fixed a bug where the first click after opening settings wouldn't
animate the scroll
- Fixed a bug where the sidebar would always animate scroll even on the
initial page load
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 0996b8b</samp>
This pull request improves the scrolling and navigation functionality of
the settings page by using a custom hook and a context provider. It
refactors the `RoutingProvider` and the `useScrollSection` hook to
handle the route and sidebar changes more efficiently, and simplifies
the code by removing unnecessary components and state. It also adds new
functions to the scroll section context data to update and scroll to the
desired section.
no issue
- the default theme (currently Source) showed Activate despite being
active already, which may lead to confusion.
- This fix checks whether it's already to more accurately display the
wording of the button
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 4fd443c</samp>
Fix theme preview button label for default theme. Hide the activate
button for the default theme if it is already active in
`ThemePreview.tsx`.