0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00
Commit graph

2217 commits

Author SHA1 Message Date
Djordje Vlaisavljevic
d9abbb594f Fixed bottom part of modals getting cut off on mobile
ref https://linear.app/ghost/issue/DES-1069/cannot-save-changes-made-to-staff-user-profile-from-mobile-device, https://linear.app/ghost/issue/DES-1070/on-mobile-cannot-click-send-invitation-now-when-adding-staff-members

- We were using viewport units to set the height of the modal, but the issue with that value is that it doesn't take into account browser toolbars on phones. Switching to dynamic viewport units fixes this issue.
2025-01-08 15:52:11 +00:00
Peter Zimon
620b42f275
Fixed Select component catching all ESC keypresses (#21977)
closes
https://linear.app/ghost/issue/DES-1075/regression-esc-doesnt-close-admin-settings

- Hitting ESC in Admin/Settings while nothing is in focus should close
Settings and navigate back to the Dashboard — instead, right now nothing
happens when `ESC` is hit. The problem was that the `Select` component
in the current Design System caught `ESC` keystrokes and stopped
propagating them even if they were not in focus. This issue wasn't
apparent so far because no `Select` components were rendered directly on
the Settings page. However, in a [recent
change](ab2c7f18e2)
we moved out some select components from Access settings to the main
Settings view, which immediately stopped propagating `ESC` keystrokes to
the main component. This fix adds a check if the `Select` (or any other)
component is in focus and stops propagation only if that's true.
2025-01-08 15:13:00 +01:00
Djordje Vlaisavljevic
30a60d903d Disable "Create" button after first click in "Create newsletter" modal
ref https://linear.app/ghost/issue/DES-505/double-click-on-newsletter-create-button-closes-the-modal

- It was possible to click this button again after the first click, which would close the modal and then open the "Edit newsletter" modal, which is confusing for the user. The button is now both disabled and in the loading state after the first click.
2025-01-07 16:56:13 +00:00
Djordje Vlaisavljevic
1d59399b41
Improved history modal (#21970)
ref https://linear.app/ghost/issue/DES-408/staff-filter-cut-off-in-history-in-rare-case, https://linear.app/ghost/issue/DES-313/adminx-history-doesnt-show-loader-when-actions-are-being-fetched, https://linear.app/ghost/issue/DES-314/adminx-history-pagination-is-cut-off

- Added missing loading states: bigger one for initial fetch, smaller one when loading the next page
- Added missing empty states: one for when there’s no history entries at all, another for when no entries match the currently applied filters
- Fixed last entry having the bottom part cut off
- Fixed type icon showing underneath the avatar
- Made “Filter” button larger to match the select field
2025-01-07 12:12:58 +00:00
renovate[bot]
e441157874 Pin dependencies 2025-01-07 12:11:37 +01:00
Daniel Lockyer
1b26f06c48 Removed Admin UI for enabling URL cache
ref https://linear.app/ghost/issue/ENG-1803/remove-url-cache-code

- this was an experimental feature to persist the URL cache to disk so it can be read upon boot, which would save recalculating it and hopefully speed up boot times
- it was never fleshed out and the code is a bit of a hack, so it's not really worth keeping it around
- it's not trivial to delete the backend code because it's hooked into
  the E2E tests and they fail if you remove the flag (strange), so I'm
  just removing the UI so no-one can enable it
- I'll remove the backend code in a future commit
2025-01-07 11:11:42 +01:00
Sag
0c045d0515
Released Portal v2.47.1 (#21967)
no issue

- changelog:
    - 943c393542
    - 1fd2175a44
2025-01-07 09:06:41 +00:00
Sag
1fd2175a44
Fixed copy in Portal when signup is not available (#21965)
ref https://linear.app/ghost/issue/ENG-1235

- we currently have three different messages when signup is not
available (this site is invite-only, this site only accepts paid
memebers, membership unavailable); the first two offer a link to sign
in, whereas the third one does not as all membership features are
disabled
- this PR fixes the logic to render the correct message, given the
reason why signup is not available
- also removes the usage of `allowSelfSignup` in Portal, as 1) the
naming is poor and 2) `allowSelfSignup` is computed based on the
existing `membersSignupAccess` and is therefore redundant
2025-01-07 08:32:32 +00:00
John O'Nolan
943c393542
2025
Co-authored-by: Hannah Wolfe github.erisds@gmail.com
2025-01-06 11:40:59 +00:00
renovate[bot]
7ac2f5e830
Update dependency react-hot-toast to v2.5.1 (#21960)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[react-hot-toast](https://redirect.github.com/timolins/react-hot-toast)
| [`2.4.1` ->
`2.5.1`](https://renovatebot.com/diffs/npm/react-hot-toast/2.4.1/2.5.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-hot-toast/2.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-hot-toast/2.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-hot-toast/2.4.1/2.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-hot-toast/2.4.1/2.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>timolins/react-hot-toast (react-hot-toast)</summary>

###
[`v2.5.1`](https://redirect.github.com/timolins/react-hot-toast/compare/v2.5.0...v2.5.1)

[Compare
Source](https://redirect.github.com/timolins/react-hot-toast/compare/v2.5.0...v2.5.1)

###
[`v2.5.0`](https://redirect.github.com/timolins/react-hot-toast/releases/tag/v2.5.0):
2.5.0

[Compare
Source](https://redirect.github.com/timolins/react-hot-toast/compare/v2.4.1...v2.5.0)

#### What's new

##### `toast.promise()` improvements

-   Make messages optional
-
[#&#8203;179](https://redirect.github.com/timolins/react-hot-toast/issues/179)
from n33pm/feat/promiseOptionalMsg)
[`25bd873`](https://redirect.github.com/timolins/react-hot-toast/commit/25bd873)
-   Allow to pass async function
-
[#&#8203;301](https://redirect.github.com/timolins/react-hot-toast/issues/301)
from kagurazaka-0/feat-toast-promise-async-func
[`c80d57f`](https://redirect.github.com/timolins/react-hot-toast/commit/c80d57f)

##### Other

-   Add customizable `removeDelay`
-
[#&#8203;89](https://redirect.github.com/timolins/react-hot-toast/issues/89)
from heyfuaad/main
[`c3d6739`](https://redirect.github.com/timolins/react-hot-toast/commit/c3d6739)
-   Refactor removal of dismissed toasts
- Make `csstype` a dependency to avoid warning.
[`d695daf`](https://redirect.github.com/timolins/react-hot-toast/commit/d695daf)

***

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-31 16:55:23 +00:00
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