0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2024-12-30 22:34:01 -05:00
Commit graph

2207 commits

Author SHA1 Message Date
renovate[bot]
706aaa65c2
Update dependency tailwind-merge to ^2.6.0 (#21950)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [tailwind-merge](https://redirect.github.com/dcastil/tailwind-merge) |
[`^2.5.5` ->
`^2.6.0`](https://renovatebot.com/diffs/npm/tailwind-merge/2.5.5/2.6.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/tailwind-merge/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwind-merge/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwind-merge/2.5.5/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwind-merge/2.5.5/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>dcastil/tailwind-merge (tailwind-merge)</summary>

###
[`v2.6.0`](https://redirect.github.com/dcastil/tailwind-merge/releases/tag/v2.6.0)

[Compare
Source](https://redirect.github.com/dcastil/tailwind-merge/compare/v2.5.5...v2.6.0)

##### New Features

- Export ConfigExtension type from package by
[@&#8203;dcastil](https://redirect.github.com/dcastil) in
[https://github.com/dcastil/tailwind-merge/pull/505](https://redirect.github.com/dcastil/tailwind-merge/pull/505)

**Full Changelog**:
https://github.com/dcastil/tailwind-merge/compare/v2.5.5...v2.6.0

Thanks to
[@&#8203;brandonmcconnell](https://redirect.github.com/brandonmcconnell),
[@&#8203;manavm1990](https://redirect.github.com/manavm1990),
[@&#8203;langy](https://redirect.github.com/langy),
[@&#8203;jamesreaco](https://redirect.github.com/jamesreaco),
[@&#8203;roboflow](https://redirect.github.com/roboflow),
[@&#8203;syntaxfm](https://redirect.github.com/syntaxfm),
[@&#8203;getsentry](https://redirect.github.com/getsentry),
[@&#8203;codecov](https://redirect.github.com/codecov),
[@&#8203;sourcegraph](https://redirect.github.com/sourcegraph), a
private sponsor and more via
[@&#8203;thnxdev](https://redirect.github.com/thnxdev) for sponsoring
tailwind-merge! ❤️

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* * * * 1-5" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44MC4wIiwidXBkYXRlZEluVmVyIjoiMzkuODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 17:50:32 +00:00
Sag
cff841d1c7
Released Portal v2.47.0 (#21934)
no issue

Changelog v2.46.2 -> v2.47.0:
- 55dc9d997f
- 3233bae37c
- 4bc85e2ff2
- 4ec0bdde3c
- 58ac19ada6
- e67e2411f2
2024-12-20 03:31:10 +08:00
Sag
e67e2411f2
Added option to disable free signups (#21862)
ref https://linear.app/ghost/issue/ENG-1235

- problem: today, when a publisher removes the "free" tier from the
Portal settings, it doesn't disable free signups entirely. It removes
the free tier from the Portal UI, but free signup is still possible via
other avenues (signup form in themes, embeddable signup form on another
site, direct API call). This creates confusion/frustration for
publishers who thought they disabled free signups, but are still getting
unwanted free signups (spam). There is no way to disable free signups
entirely.

- solution: introduced a new "paid-members only" subscription access
setting, which blocks all free signups at the API level. If chosen, the
free tier is hidden in Portal and all free signup are blocked at the API
level with a readable error message (`This site only accepts paid
members.`)

![CleanShot 2024-12-10 at 09 09
28@2x](https://github.com/user-attachments/assets/c71b38b4-0d23-429c-a743-00772e82c787)
2024-12-20 02:43:48 +08:00
Kevin Ansfield
9602c93448 Revert "Removed i18n toggle from labs UI (#21927)"
This reverts commit fab5544217.
2024-12-19 18:09:30 +00:00
Hannah Wolfe
fab5544217
Removed i18n toggle from labs UI (#21927)
ref bb9a69e
ref https://linear.app/ghost/issue/ENG-1753/labs-flags-cleanup

- We promoted i18n to GA several weeks ago now, and it's going fine
- Removing the UI first to reduce confusion before cleaning up all the other references to the flag
- Also changed the i18n test to set the language back at the end of the test, to ensure no conflicts
2024-12-19 15:52:10 +00:00
Kevin Ansfield
4a3626696e Removed commentImprovements labs flag
closes https://linear.app/ghost/issue/PLG-300

- we're not planning on making any more comments improvements behind this flag so it can be removed
- all conditionals using it have been cleaned up previously when feature went GA
2024-12-19 15:30:42 +00:00
Michael Barrett
1e9d09951e
Reduce number of notifications retrieved in admin-x-activtypub (#21928)
no refs

`250` takes a bit too long on the server so reducing it down to `120`
for now
2024-12-19 15:28:15 +00:00
Michael Barrett
e08959a1b5
Increased the number of notifications retrieved in admin-x-activitypub (#21925)
refs
[AP-626](https://linear.app/ghost/issue/AP-626/wrong-posts-showing-up-in-notifications)

Increased the number of notifications retrieved in `admin-x-activitypub`
to account for notifications being grouped and reduce the amount of time
waiting on requests to finish (by making fewer requests)
2024-12-19 13:19:26 +00:00
Michael Barrett
c438f9442f
Filtered notifications that show in admin-x-activitypub (#21903)
refs
[AP-627](https://linear.app/ghost/issue/AP-627/sanitising-note-content)

Adding client side filtering of the notifications in
`admin-x-activitypub` - This is a stop-gap until we have a dedicated
endpoint for returning notifications. Filtering includes:

- Do not show our own likes
- Only show `like` notifications when it is on our own posts
- Only show replies to our own posts
2024-12-19 11:58:24 +00:00
Peter Zimon
252918b70c
Adding Posts analytics React app (#21878)
ref https://linear.app/ghost/issue/DES-1021/create-posts-app

Part of establishing React patterns in Ghost is to build a well-defined
and fairly self-encapsulated app through which we can test assumptions
and define best practices. Our guinea pig is Post analytics for this
purpose. This PR creates a new React app (posts) using Shade (the new
design system).
2024-12-19 12:01:08 +01:00
Daniël van der Winden
ab2c7f18e2
🎨 Improved Access card layout in Settings (#21920)
As part of our efforts to add more personality to Settings, we've
identified areas where we can improve the UX.

This change makes it easier to manipulate Access settings by removing a
step from the flow.

fixes
https://linear.app/ghost/issue/DES-484/improve-access-card-layout-in-settings

**Before**
<img width="1718" alt="access-card-before"
src="https://github.com/user-attachments/assets/8c0f8f14-31b9-4712-93d2-97eb0f05c965"
/>

**After**
<img width="1718" alt="access-card-after"
src="https://github.com/user-attachments/assets/5831a7cc-fbad-4d4b-bccc-6e86be6a8c65"
/>
2024-12-19 11:15:46 +01:00
Hannah Wolfe
d2b7872a08
Revert "Removed i18n toggle from labs UI (#21916)"
This reverts commit d8820230fc.
2024-12-19 09:26:27 +00:00
Hannah Wolfe
d8820230fc
Removed i18n toggle from labs UI (#21916)
ref
bb9a69edfe

- We promoted i18n to GA several weeks ago now, and it's going fine
- Removing the UI first to reduce confusion
- This is before clearning up all the other references to the flag
2024-12-19 06:34:04 +00:00
Kevin Ansfield
21e7a8e4b6
Revert "🎨 Improved Access card layout in Settings (#21913)"
no issue

This reverts commit 040b290fbd.

- the commit has broken browser tests, reverting to get back in a green state
- will be re-introduced in a follow-up PR
2024-12-18 20:34:43 +00:00
Michael Barrett
06cd63a3ab
Fixed intermittent error when posting a note in admin-x-activitypub (#21917)
refs
[AP-629](https://linear.app/ghost/issue/AP-629/notes-say-they-error-but-post-correctly)

Fixed intermittent error when posting a note in `admin-x-activitypub`

The error was intermittent due to it only occurring when a specific set
of steps occurred, and the query cache being periodically cleared.

The error itself was due to incorrectly expecting the `outbox:${handle}`
query to be an array when it was in fact an object.

This PR also resolves and issue where the reply count for new notes
would display `NaN` (because the `replyCount` property was not present
on newly created notes)
2024-12-18 19:05:31 +00:00
Daniël van der Winden
040b290fbd
🎨 Improved Access card layout in Settings (#21913)
As part of our efforts to add more personality to Settings, we've
identified areas where we can improve the UX.

This change makes it easier to manipulate Access settings by removing a
step from the flow.

fixes
https://linear.app/ghost/issue/DES-484/improve-access-card-layout-in-settings

**Before**
<img width="1718" alt="access-card-before"
src="https://github.com/user-attachments/assets/8c0f8f14-31b9-4712-93d2-97eb0f05c965"
/>

**After**
<img width="1718" alt="access-card-after"
src="https://github.com/user-attachments/assets/5831a7cc-fbad-4d4b-bccc-6e86be6a8c65"
/>
2024-12-18 14:29:07 +00:00
Daniël van der Winden
ea4e73e558
Added a header image to Integrations settings (#21902)
As part of adding more personality to our Settings, this change adds a
header image to the Integrations settings.

fixes
https://linear.app/ghost/issue/DES-481/add-image-to-integrations-card-in-settings
2024-12-18 11:47:45 +01:00
Peter Zimon
58ac19ada6
Updated Portal notification styles (#20538)
closes https://linear.app/ghost/issue/DES-548/update-portal-notification-style

Portal popup notification styles look outdated and harsh. Also in-popup notifications have several visual design issues such as positioning, alignment, typography and so on. This PR fixes these issues by applying a much more standard design to Portal notifications.
2024-12-17 13:37:00 +01:00
Sodbileg Gansukh
65bec88187
Added 403 errors to the error handler (#21898)
ref ENG-745

- added permission related errors to list of error types to be handled
- previously, generic error messages were displayed when permission
errors are thrown
- this would make it possible to display the actual message returned
from the API in toasts
2024-12-17 18:21:48 +08:00
Sodbileg Gansukh
4ec0bdde3c
Made name field optional in Portal account settings (#21900)
ref DES-898

- previously, the name field in Portal account settings used to be required which caused an issue users were not able to update their email address without adding name first
- now the name field is optional makes it possible to update the email address without adding name, or remove their name as well
- it was intended not to wire this up to "Display name in signup form" setting in Portal for the simplicity
2024-12-17 18:15:16 +08:00
Sodbileg Gansukh
4bc85e2ff2
Fixed layout shift issue when Portal popup appears (#21895)
ref DES-547

- when Portal popup is opened and the browser scroll bar is visible, it
used to make layout shift, because we were hiding the scrollbar
- now it applies right margin to body element and the trigger button by
calculating the scrollbar width only when the browser scroll bar is
visible
- it also preservers the current right margin for those elements and
makes the calculation based on that
2024-12-17 14:16:39 +08:00
Sodbileg Gansukh
c2bd0d9d07
Fixed theme management menu alignment (#21896)
ref DES-933

- when three dot buttons are clicked in the theme management modal, the
menu alignment was wrong
- this fixes the issue by aligning the button and the menu by the right
edge
2024-12-17 03:14:11 +00:00
Sodbileg Gansukh
b6f94c5fdb
Cleaned up the customFonts feature flag (#21889)
ref DES-1025
2024-12-16 18:13:15 +08:00
Ronald Langeveld
3233bae37c
🐛 Fixed archived newsletters visible in Portal when email disabled (#21737)
ref ONC-225

- Ensures newsletter preferences are hidden in the Portal when email functionality is disabled.
- Adds conditional logic in NewsletterManagement.js to check for the hasNewslettersEnabled prop.
- Updates tests in AccountEmailPage.test.js and AccountHomePage.test.js to cover scenarios where newsletters are disabled.
- Improves user experience by preventing the display of irrelevant settings when email is turned off.
2024-12-16 13:14:21 +07:00
renovate[bot]
011f6a71ed
Update dependency @uiw/react-codemirror to v4.23.7 (#21888)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@uiw/react-codemirror](https://uiwjs.github.io/react-codemirror)
([source](https://redirect.github.com/uiwjs/react-codemirror)) |
[`4.23.6` ->
`4.23.7`](https://renovatebot.com/diffs/npm/@uiw%2freact-codemirror/4.23.6/4.23.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@uiw%2freact-codemirror/4.23.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@uiw%2freact-codemirror/4.23.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@uiw%2freact-codemirror/4.23.6/4.23.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@uiw%2freact-codemirror/4.23.6/4.23.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>uiwjs/react-codemirror (@&#8203;uiw/react-codemirror)</summary>

###
[`v4.23.7`](https://redirect.github.com/uiwjs/react-codemirror/releases/tag/v4.23.7)

[Compare
Source](https://redirect.github.com/uiwjs/react-codemirror/compare/v4.23.6...v4.23.7)

[![Buy me a
coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)
[![](https://img.shields.io/badge/Open%20in-unpkg-blue)](https://uiwjs.github.io/npm-unpkg/#/pkg/@&#8203;uiw/react-codemirror@4.23.7/file/README.md)

Documentation v4.23.7:
https://raw.githack.com/uiwjs/react-codemirror/5b16350/index.html\
Comparing Changes:
https://github.com/uiwjs/react-codemirror/compare/v4.23.6...v4.23.7

```shell
npm i @&#8203;uiw/react-codemirror@4.23.7
```

- 💄 chore: update nextjs example.
[#&#8203;677](https://redirect.github.com/uiwjs/react-codemirror/issues/677)
[`ab89f28`](https://redirect.github.com/uiwjs/react-codemirror/commit/ab89f28)
[@&#8203;jaywcjlove](https://redirect.github.com/jaywcjlove)
- 🐞 fix(theme): implement 'exports' field in themes/theme/package.json
([#&#8203;708](https://redirect.github.com/uiwjs/react-codemirror/issues/708))
[`4edca1d`](https://redirect.github.com/uiwjs/react-codemirror/commit/4edca1d)
[@&#8203;aspiers](https://redirect.github.com/aspiers)
- 🐞 fix(theme): implement 'exports' field in themes/\*/package.json
[#&#8203;708](https://redirect.github.com/uiwjs/react-codemirror/issues/708)
[#&#8203;613](https://redirect.github.com/uiwjs/react-codemirror/issues/613)
[#&#8203;680](https://redirect.github.com/uiwjs/react-codemirror/issues/680)
[`ced0b1a`](https://redirect.github.com/uiwjs/react-codemirror/commit/ced0b1a)
[@&#8203;jaywcjlove](https://redirect.github.com/jaywcjlove)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* * * * 1-5" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 03:20:35 +00:00
Kevin Ansfield
fd8759a3a8 Shipped comments-ui@1.0.5
no issue

- includes styling fix for replies line in dark mode and addition of `data-member-uuid` attribute on each rendered comment container
2024-12-12 21:08:41 +00:00
Kevin Ansfield
ab2058ee1d Added data-member-uuid attribute to each comment
closes https://linear.app/ghost/issue/PLG-268

- allows for external scripts to more easily decorate individual comments
2024-12-12 21:01:37 +00:00
Sanne de Vries
27e79a3a3d
Changed replies line color to be more clear (#21879)
No ref
- The line was almost invisible in dark mode, so the color has been
adjusted to be slightly less transparent.
2024-12-12 20:06:55 +00:00
Djordje Vlaisavljevic
6595697864
Improved ActivityPub reader view (#21877)
ref https://linear.app/ghost/issue/AP-633/reader-view-customization-options, https://linear.app/ghost/issue/AP-631/estimated-reading-time-in-reader-view

- Improved typography, spacing and alignment.
- Improved selection of font sizes from the reader view customization popover.
- Added a button to reset reader view customization settings to default, in case user ends up in a state they’re not happy with and want to go back to a sensible default.
- Added preview to typeface selection component so it’s easier to see what you’re selecting.
- Disabled background clicks on all AP modals for a more consistent experience and to avoid accidental clicks.
- Changed the reading progress indicator increments from 1 to 5 to attract less attention while the user is reading.
2024-12-12 19:47:49 +00:00
Kevin Ansfield
c1c7828499 Shipped comments-ui@1.0.4
no issue

- fixed merge conflict with i18n locales
2024-12-12 19:03:23 +00:00
Kevin Ansfield
12993dff6f Shipped comments-ui@1.0.3
no issue

- contains two edge-case bug fixes, one related to pagination when deleting a comment and another that works around issues arising from potentially unstable API sorting
2024-12-12 19:03:23 +00:00
Kevin Ansfield
48abf6e146 Fixed potential for duplicate comments when fetching pages in comments-ui
closes https://linear.app/ghost/issue/PLG-305

- adds deduplication of comments when fetching top-level pages
- avoids problems where the underlying sort is unstable (e.g. "best" as likes are changing) resulting in an already loaded comment appearing on a later-loaded page
- doesn't solve for missing comments between pages but does prevent invalid local state that can lead to buggy UI
2024-12-12 19:03:23 +00:00
Kevin Ansfield
137ea89a7b Fixed incorrect pagination after deleting top level comment
closes https://linear.app/ghost/issue/PLG-304

- added a refresh of the comments list when a top-level comment with no replies is deleted so the pagination resets and replies aren't missed when loading more due to a shift in the underlying paginated data
2024-12-12 19:03:23 +00:00
Kevin Ansfield
962939b99a Shipped comments-ui@1.0.2
no issue

- contains two minor bug fixes for edit name/expertise buttons on the main form and incorrect replies-left-to-load counts after deleting replies
2024-12-12 19:03:23 +00:00
Kevin Ansfield
46f6f49c03 Fixed incorrect replies pagination count after deleting reply
closes https://linear.app/ghost/issue/PLG-303

- when deleting a reply our "replies left" calculation was getting out of sync because the `count.replies` state on the parent comment wasn't being updated, the result was for each comment deleted we were displaying 1 more reply that was still to load
- updated the `deleteComment` action to also modify the parent comment's `count.replies` value when a reply was deleted ensuring our "replies left" calculation remains correct
2024-12-12 19:03:23 +00:00
Kevin Ansfield
bd9f6bb216 Fixed "Edit expertise" button often not working on main comment form
closes https://linear.app/ghost/issue/PLG-302

- switching from `onClick` to `onMouseDown` allows the button events to fire and be picked up by the popup-opening handler before the click causes a blur event on the main form to fire which removes the expertise buttons
- we have a test for adding expertise via the main form which was giving us a false positive due to the way Playwright handles events, unfortunately I couldn't find a way to adjust that to match the real-world behaviour without ending up with a test that always fails
2024-12-12 19:03:23 +00:00
Kevin Ansfield
fc49dfa10a Shipped comments-ui@1.0.1
no issue

- contains various improvements to design and behaviour
2024-12-12 19:03:23 +00:00
Kevin Ansfield
3dd33968f5 Improved various aspects of comments app
ref https://linear.app/ghost/issue/PLG-300/

Full details available soon on https://ghost.org/changelog/

- removed `commentImprovements` labs flag conditionals
2024-12-12 19:03:23 +00:00
Peter Zimon
e2fad8bcb5
Added experimental section in Shade (#21875)
ref https://linear.app/ghost/issue/DES-1033/icon-implementation

The Storybook structure contained Lucide icons under "Components", but
it's an experimental component. This commit creates an Experimental
component group in Shade and updates the corresponding docs.
2024-12-12 12:12:23 +00:00
Peter Zimon
2f671eca69
Shade icons (#21873)
closes https://linear.app/ghost/issue/DES-1033/icon-implementation

In Shade right now there's no support for icons, which is a fundamental
building block in any design system. We use Streamline Icons which
unfortunately don't have an out-of-the-box React support like e.g.
Lucide Icons. This PR adds support for custom icons to be used directly
from Shade by importing SVG's from a directory and creating React
components dynamically. It also adds a grid view of all available icons
in Storybook so it's easy to get an overview of available icons and copy
their React component.
2024-12-12 11:47:26 +01:00
Djordje Vlaisavljevic
038a3e5939
Improved ActivityPub reader view (#21854)
ref https://linear.app/ghost/issue/AP-633/reader-view-customization-options, https://linear.app/ghost/issue/AP-631/estimated-reading-time-in-reader-view

- Added reader view customization options (typefaces, font sizes and line height) which allow users to make the reading experience suit their personal needs and taste. Changing the font size also subtly tweaks the spacing and width of the articles.
- Added an estimated reading time and a simple text-based progress indicator, so users have a better idea of the article length and their progress when reading long-form content.
2024-12-11 18:58:46 +00:00
Peter Zimon
fbbf34e1d0
Added Shade fundamentals (#21812)
ref
https://linear.app/ghost/issue/DES-1020/create-new-react-app-for-shade

Shade is our new design system that follows React best practices and
leverages third-party libraries extensively. It's built on ShadCN/UI
which is one of the most popular React UI libraries today. This commit
adds an (almost) empty React app, set up to be the a starting point of
Shade.
2024-12-11 15:55:58 +01:00
Sanne de Vries
8e5730680e
Improved discoverability of email design settings (#21869)
No ref
- Added "design" and "customization" to the keywords for the newsletters
settings
- Added a description to the newsletters settings
2024-12-11 13:35:32 +00:00
Sanne de Vries
86ee480d45
Updated avatar icon for removed comments (#21864)
No ref
- The previous avatar icon was too busy visually.
2024-12-11 10:10:22 +00:00
Kevin Ansfield
e86d44ff85 Fixed replies line showing after all replies have been deleted
ref https://linear.app/ghost/issue/PLG-267

- updated delete comment action so it removes comments rather than just updating their status to `'deleted'`
- deleted comments that still have replies have their status updated so the replies remain visible
- matches updated API behaviour where deleted comments are not shown at all
2024-12-11 08:41:27 +00:00
Kevin Ansfield
0f9449137f Fixed comment count in comments-ui when logged in as admin
closes https://linear.app/ghost/issue/PLG-297

- we were setting the comment count Admin API browse comments response meta pagination data which will never be correct because it only counts top-level comments for pagination purposes
- we have a public comment counts endpoint that is already fetched, there's no need to override that when using the Admin API because the overall count doesn't change across API's, even when the Admin API includes hidden comments because those don't impact the visible count
- updated test setup so the title and count is shown so it can be asserted against
- updated mocked api to correctly return count of all published comments+replies
2024-12-10 18:59:49 +00:00
Kevin Ansfield
1fb417b6a3 Fixed dropdown menu being cut off in comments-ui
closes https://linear.app/ghost/issue/PLG-273

- removed previous fix which only worked on last comment but not last reply
  - keeping track of last comment/reply spread a lot of domain knowledge around for a UI-only concern and wouldn't scale if we have other dropdowns in the future
- added `useOutOfViewportClasses` hook
  - accepts an object with top/bottom/right/left containing default and outOfViewPort classes
  - applies the correct classes using the DOM rather than React so that we avoid re-renders and associated flickering or broken rendering
2024-12-10 17:15:29 +00:00
Ronald Langeveld
04f0b9fc3f
Fixed comment likes being incorrect when logged in as an Admin (#21833)
ref https://linear.app/ghost/issue/PLG-296/

When logged in as an Admin, comments-ui switches comment reads from the Members API over to the Admin API so that hidden comments can be displayed to allow moderation activities. However, the Admin API not using member authentication and CORS preventing the front-end members auth cookie being passed over to the Admin API domain meant that the logged-in member's likes were missing when fetching via the Admin API as there is no available reference to the logged in member.

This change works around the problem by introducing an `impersonate_member_uuid` param to the comments read/browse endpoints of the Admin API. When passed, the provided uuid is used to simulate that member being logged in so that likes are correctly shown.

- Introduced `impersonation_member_id` parameter to resolve issues with admin API not returning correct "liked" status for comments when an admin is logged in.
- Updated API endpoints in `comment-replies.js` and `comments.js` to handle `impersonation_member_id`.
- Adjusted `CommentsController` to validate and process the `impersonation_member_id` parameter before passing it to database queries.
- Enhanced test coverage to ensure proper handling of the new parameter and accurate "liked" status behavior.
2024-12-10 14:44:15 +00:00
Kevin Ansfield
5ec9f59411 Removed unused useSecondUpdate hook in comments-ui
no issue

- left over after cleanup of secondary form code
2024-12-09 14:51:27 +00:00
Sanne de Vries
972cc82958
Prevented top-level comment input from closing when it has text (#21795)
REF https://linear.app/ghost/issue/PLG-298/

- When you're typing a comment, and exit the input field, it collapses into a non-editable state; you first have to click on it again to "open" the form. This means you can't select the text or instantly start typing again. When the input has a value, we should stop it from closing.
- added custom `useEditor` hook that wraps TipTap and exposes both the `editor` and `hasContent` props keeping logic out of the consuming components

---------

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2024-12-09 13:42:24 +00:00