no issue
- fixed an issue where toggling the visibility of the announcement bar doesn't update the 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 bad7a08</samp>
Simplified the `AnnouncementBarPreview` component by using a shallow
equality check for the `visibility` prop. This is part of a refactor to
use React hooks and functional components.
refs https://github.com/TryGhost/Product/issues/3807https://github.com/TryGhost/Product/issues/3806
Added double buffering to iframes in Admin to have smoother transitions when swapping out iframes for preview pages.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at ad2b1a9</samp>
Refactored the announcement bar modal and preview components to use a
custom `IframeBuffering` component for better performance and
simplicity. Extracted the `IframeBuffering` component to a new file and
added some types and functions to support it. Removed some unused code
and cleaned up imports.
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 49f8c6a</samp>
Updated `@tryghost/admin-x-settings` package to version 0.0.14 with new
features and bug fixes. This package provides the settings UI for the
Ghost admin panel.
refs https://github.com/TryGhost/Product/issues/3819
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 9e5d762</samp>
This pull request adds a color picker feature to the membership
settings, which lets the user customize the appearance of the embed
signup form. It modifies the `EmbedSignupFormModal` and
`EmbedSignupSidebar` components and uses the `ColorPicker` component
from the admin-x-ds library.
fixes https://github.com/TryGhost/Product/issues/3822
fixes https://github.com/TryGhost/Product/issues/3838
This PR became a bit big because it affected multiple parts of Ghost
that needed to be updated to prevent breaking anything.
### Backend
- Added pagination to the recommendations API's
- Updated BookshelfRepository template implementation to handle
pagination
- Allow to pass `page` and `limit` options to Models `findAll`, to allow
fetching a page without also fetching the count/metadata (=> in the
repository pattern we prefer to fetch the count explicitly if we need
pagination metadata)
- Added E2E tests for public recommendations API (content API)
- Extended E2E tests of admin recommendations API
### Portal
- Corrected recommendations always loaded in Portal. Instead they are
now only fetched when the recommendations page is opened.
### Admin-X
- Added `usePagination` hook: internally used in the new
`usePaginatedQuery` hook. This automatically adds working pagination to
a query that can be used to display in a table by passing the
`pagination` and `isLoading` results to the `<Table>`
- Added placeholder `<LoadingIndicator>` component
- Added a loading indicator to `<Table>`. This remembers the previous
height of the table, to avoid layout jumps when going to the next page.
refs https://github.com/TryGhost/Product/issues/3819
- Wired up embeddable signup form to admin x.
- minus the colour picker, to add in the next commit.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 9a3f1b9</samp>
This pull request introduces a new feature that allows users to embed a
signup form for their blog site on other websites. It adds a new
component `EmbedSignupFormModal` that renders a modal with form
customization and code copying options. It also updates the `Config`
type and the `config.ts` file to store and access the necessary data for
the embed code generation.
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 3a37838</samp>
This pull request refactors the color settings in the site design and
branding section of the admin settings app to use a reusable
`ColorPickerField` component. This improves the UI consistency, user
experience, and code readability.
fixes https://github.com/TryGhost/Product/issues/3820
- This adds a new public site endpoint in the members API to check if a
site can offer the one-click-subscribe feature
- This is implemented on the members API as a copy of the `site`
endpoint because the admin API site endpoint is protected by CORS and
mainly because it can be served on a different domain than the
recommended site and this is hard to detect reliably from the frontend
- Added a new calculated setting `allow_self_signup`, which can replace
the setting that is currently used in Portal (best to do this after a
release otherwise we risk creating issues if a patch release happens)
refs https://github.com/TryGhost/Product/issues/3807
- Added announcement bar customisation to Admin X
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 91368ce</samp>
This pull request enhances the `AnnouncementBarModal` component to
enable users to customize the announcement bar on their site. It adds
editing and previewing features, as well as API integration and toast
notifications.
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/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/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: 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
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/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
refs. https://github.com/TryGhost/Product/issues/3349
- added outline to modal cancel button to avoid floating it too much in space
- added a lil' animation to modals to make it more obvious that it's a modal
- added ESC button so that it's easier to escape the modal
refs. https://github.com/TryGhost/Product/issues/3349
- added thousands separator to numbers in tiers list and preview
- added dirty state handling to edit/add tier modal
- applied sorting to tiers list
- fixed free trial toggle bug. No default was set and didn't keep the trial value and the toggle in sync
- applied a little scale down to tier preview for better proportions
refs. https://github.com/TryGhost/Product/issues/3349
- applied outline and fixed spacing for form groups
- small UI refinements for static version of Newsletter settings
- replaced textareas with textfields in site description, twitter and FB descriptions
- unified pattern for "Save & close" and "Cancel" in user detail settings
- refined checked background for logo container in Design settings
- refined spacing in Tier detail modal
- fixed gradient bug in Portal preview
- fixed UI bugs in Portal / Links
- fixed tier dropdown bug in Portal / Links. It was always showing links for the first tier
- unified form input element headings
- refined checkbox and toggle label typography and spacing
refs https://github.com/TryGhost/Product/issues/3601
- `NewsletterList` now uses the new `Table` component, along with its
subcomponents `TableRow` and `TableCell` to be able to show more
relevant data
refs. https://github.com/TryGhost/Product/issues/3608
- Basic static components are needed for Stripe Connect flow
- The current Stripe Connect flow has quite a lot of visual issues and
also the UX is somewhat messy
refs https://github.com/TryGhost/Product/issues/3601
- Added static button group which will control newsletter title
alignment as a placeholder until we implement something like a Segmented
Control component
- Made the newsletter preview box shadow more subtle and fixed the
background color issue
refs https://github.com/TryGhost/Product/issues/3601
- Added static design for Newsletter settings group to Admin X settings,
that shows a simple list of newsletters and opens a preview modal with a
sidebar with static form design
- Fixed issue with spacing in `Forms` when there is no title
refs. https://github.com/TryGhost/Product/issues/3580
- It was possible to archive free tier
- The form group heading wasn't discoverable enough
- The left action in modals were not working
refs https://github.com/TryGhost/Product/issues/3580
- Made free trial toggle work properly
- Updated currency picker to work correctly
- Enforce format on tier prices
- Added support for editing the free tier
- Added validations to tier modal
- Updated tier modal to remove blank benefits before saving
refs. https://github.com/TryGhost/Product/issues/3580
- Using cards instead of standard rows in the Tiers list makes it much
easier to orient it. Also makes settings more playful and nicer.
- Updated `DesktopChrome` component
- Refactored the existing `PreviewModal` and `ThemePreview`
components to use the new component and removed some redundant code
- Added storybook for the component
refs. https://github.com/TryGhost/Product/issues/3580
- The currency dropdown needed a small version of the regular select
- The input field needed a version with a right-side placeholder text
refs. https://github.com/TryGhost/Product/issues/3545
- Device selector is not needed in Portal settings' preview
- Links page was too wide
- Scrolling for preview contents was on the whole modal instead of just the preview area
refs https://github.com/TryGhost/Product/issues/3545
- Fixed TODOs
- Fixed koenig editor not resizing as content expands
- Fixed placeholder in html field
- Updated signup options to validate terms length
refs. https://github.com/TryGhost/Product/issues/3349
It's a bit cumbersome how design and theme navigation is handled in
AdminX at the moment. On a high level, this PR applies the following
changes:
- Change theme is under Design settings
- After activating a theme, Design settings are automatically opened
refs https://github.com/TryGhost/Product/issues/3349
- adds basic routing in adminX settings based on hash url path
- adds new routing provider that manages hash routing across adminX
- updates sidebar navigation to update route directly
- updates theme/design settings to update route for opening edit modals
refs. https://github.com/TryGhost/Product/issues/3545
Styles was not applied to AdminX Portal settings forms. Also a couple of new components had to be added for easer future form design and implementation.
refs. https://github.com/TryGhost/Team/issues/3545
As the first step of Portal settings being rebuilt in AdminX, we needed a couple of static skeleton components to get started. For this we also had to extend the props of Preview modal component in the design system.
refs https://github.com/TryGhost/Team/issues/3349
Tidies up the remaining major pieces which were not covered by tests.
Extends the existing test patterns, although the API mocks are getting a
bit unmanageable.