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.