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

40169 commits

Author SHA1 Message Date
Sodbileg Gansukh
6ac01d96c7 Made post settings form controls consistent 2024-12-19 11:41:30 +08:00
Sanne de Vries
58f175761a Updated tag page styles
REF DES-800
2024-12-19 11:41:30 +08:00
Sodbileg Gansukh
5fd8126fc3 Added a global style for form controls with AdminX style 2024-12-19 11:41:30 +08: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
renovate[bot]
eafdcd041d
Update dependency sanitize-html to v2.14.0 (#21918)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>apostrophecms/sanitize-html (sanitize-html)</summary>

###
[`v2.14.0`](https://redirect.github.com/apostrophecms/sanitize-html/blob/HEAD/CHANGELOG.md#2140-2024-12-18)

[Compare
Source](https://redirect.github.com/apostrophecms/sanitize-html/compare/2.13.1...2.14.0)

- Fix adding text with `transformTags` in cases where it originally had
no text child elements. Thanks to [f0x](https://cthu.lu).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 19:08:16 +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
Hannah Wolfe
79e5991ac2
Fixed Tinybird KPI results (#21914)
ref https://linear.app/ghost/issue/ANAL-120/bounce-rate-data-seems-to-mix-units
closes https://linear.app/ghost/issue/ANAL-119/visit-duration-metric-inaccurate
closes https://linear.app/ghost/issue/ANAL-118/charts-are-empty-with-only-1-data-point

- The original [web analytics starter kit KPI endpoint](ad1efb766e/tinybird/pipes/kpis.pipe (L122)) had this simpler endpoint, but as I've messed around adding features, I've unintentionally overcomplicated it and introduced a tonne of bugs.
- This reverts the KPI endpoint back towards the original structure, and moves all the calculations and where statements up to the data node
- This means that the left join at the end works and pulls in all the dates from the timeseries node correctly, without the need for using `WITH FILL STEP 1` which generated a result for every second when looking at a single days data. 
- Moving the where clause handling up to the `data` node, rather than being on the endpoint still works as expected, which confused me when I first started working with tinybird
- This should resolve several bugs we've experienced with the visit duration, with missing data points and empty charts, and perhaps even the bounce rate (but need to look at that more closely)
2024-12-18 16:59:24 +00:00
GGLVXD
ad44d7ac61
🌐 Added Latvian translations (#21852)
no issue

- added new `lv` locale and translations
2024-12-18 15:10:45 +00:00
echobilisim3421
4426070744
🌐 Updated Turkish translations (#21822)
no issue

- added missing comments translations

---------

Co-authored-by: Hannah Wolfe <github.erisds@gmail.com>
Co-authored-by: Cathy Sarisky <42299862+cathysarisky@users.noreply.github.com>
2024-12-18 14:57:41 +00:00
Àlex Rodríguez Bacardit
42ba90f197
🌐 Updated Catalan translations (#21830)
no issue

- added missing search translations
2024-12-18 14:55:41 +00:00
Duy
11d5bce68f
🌐 Updated Vietnamese translations (#21771)
no issue

Portal.json
- Added new strings from (#21739)
- Corrected the spelling mistake of missing a `t` character in the sentence
2024-12-18 14:46:43 +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
Hannah Wolfe
69474bb7db
Fixed tinybird charts when viewing < 1 day date ranges (#21912)
- This case works significantly differently to the normal KPIs and was
untested, so we didn't spot that we broke it.
- This adds a test, and brings in the fix by @FGonzalezLopez from
41029a4476
- This fixes the charts in so much as they no longer error
- However, the test result is indicating another bug as we're getting a row per second, instead of one row per hour which is what we actually expect to happen

---------

Co-authored-by: Paco Gonzalez <paco@tinybird.co>
2024-12-18 13:28:21 +00:00
Sanne de Vries
509dd6229f
Fixed video card aspect ratio on frontend (#21911)
ref
https://linear.app/ghost/issue/DES-1047/video-ratio-is-off-on-frontend
- When a video card is rendered on the frontend, the aspect ratio was
not correctly calculated and displayed. This commit fixes the issue by
calculating the aspect ratio based on the video's width and height.
2024-12-18 11:54:02 +01: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
Chris Raible
ec59aa39c5
Rewrote clean.sh script in javascript (#21909)
ref https://linear.app/ghost/issue/ENG-1958/rewrite-cleansh-in-js

- This script removes all node_modules, clears the yarn cache, nx cache,
and deletes all build artifacts to provide a "fresh start". It's
particularly useful for switching back and forth between local vs docker
development environments because some of the node_modules (and therefore
the caches) are built specifically for the architecture of whatever
"host" they are built on.
- The script works fine, but it's written in bash which isn't super easy
to extend/modify and most of this repo is in JavaScript, so
this commit just rewrites the bash script in JS for easier
maintainability.
2024-12-17 18:00:38 -08:00
renovate[bot]
3bac33ffff
Update dependency json-stable-stringify to v1.2.0 (#21908)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[json-stable-stringify](https://redirect.github.com/ljharb/json-stable-stringify)
| [`1.1.1` ->
`1.2.0`](https://renovatebot.com/diffs/npm/json-stable-stringify/1.1.1/1.2.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/json-stable-stringify/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/json-stable-stringify/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/json-stable-stringify/1.1.1/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/json-stable-stringify/1.1.1/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ljharb/json-stable-stringify (json-stable-stringify)</summary>

###
[`v1.2.0`](https://redirect.github.com/ljharb/json-stable-stringify/blob/HEAD/CHANGELOG.md#v120---2024-12-17)

[Compare
Source](https://redirect.github.com/ljharb/json-stable-stringify/compare/v1.1.1...v1.2.0)

##### Fixed

- \[readme] remove dead badges
[`#14`](https://redirect.github.com/ljharb/json-stable-stringify/issues/14)

##### Commits

- \[New] add types
[`5dbd6c8`](5dbd6c802f)
- \[eslint] clean up formatting
[`21e95e5`](21e95e57ea)
- \[meta] sort package.json
[`a9f44d5`](a9f44d5e53)
- \[actions] split out node 10-20, and 20+
[`74551e4`](74551e4cc7)
- \[Tests] add test coverage for options provided directly on a cmp
function
[`0a50205`](0a502052b9)
- \[Robustness] cache more builtins
[`d390c99`](d390c99889)
- \[Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `tape`
[`03686a0`](03686a0af2)
- \[Tests] key ordering is reversed in node 11+
[`7034a17`](7034a176d0)
- \[Dev Deps] update `npmignore`, `tape`
[`ba8d519`](ba8d519505)
- \[Refactor] use `call-bound` directly
[`850b24c`](850b24c5b3)
- \[Tests] replace `aud` with `npm audit`
[`22fb720`](22fb720610)
- \[Deps] update `call-bind`
[`adc30b0`](adc30b0746)
- \[Deps] update `call-bind`
[`a280582`](a280582e6b)
- \[Dev Deps] add missing peer dep
[`3bb517c`](3bb517cc17)

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 00:29:44 +00:00
Chris Raible
d275395c1f
Added redis data volume to compose setup (#21906)
ref
https://linear.app/ghost/issue/ENG-1956/redis-creates-new-anonymous-volume-each-time-it-boots

- Before this commit, the redis service in our docker compose setup
would create a new anonymous volume each time it boots, with a
non-descriptive, hash-based name. Over time these volumes accumulate and
become a pain to clean up, and it's not immediately obvious what they
are used for.
- This commit adds a persistent data volume for redis data, so it will
reuse the same volume, with a more descriptive title each time it boots.
This eliminates the annoying anonymous volumes, and also gives us data
persistence across boots for the redis service (which can be easily
cleared by deleting the volume).
2024-12-17 13:14:21 -08:00
Chris Raible
cabee005f4
Consolidated compose.yml files for Dev Container (#21659)
ref
https://linear.app/ghost/issue/ENG-1785/consolidate-dev-container-composeyml-with-the-root-level-composeyml

- We currently have two compose.yml files:
    - `.devcontainer/compose.yml`: used for the Dev Container
    - `compose.yml`: used for local development with docker compose
- The Dev Container compose file does need some additional
configuration, but most of this code is duplicated from the root level
compose.yml file
- This commit removes this duplication by using both compose files in
the Dev Container setup, so it will base the compose configuration on
the root level, and then extend it with the Dev Container specific
configuration
- This way any updates to the root level compose file will also be
available and reflected in the Dev Container setup without having to
make the change twice.
2024-12-17 12:57:02 -08: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
Ronald Langeveld
3d65bfa38d
Added comment regarding Feature flags & E2E tests (#21897)
ref [ENG-1862](https://linear.app/tryghost/issue/ENG-1862/)

- Added information regarding Feature Flag behaviour during E2E tests
2024-12-17 03:44:59 +00: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
Princi Vershwal
485f52df80
Added browser tests for reset password (#21893)
Closes
https://linear.app/ghost/issue/ENG-1856/add-e2e-browser-test-for-password-reset

- Added browser tests for reset password for both cases: 2FA enabled and
disabled.
2024-12-16 18:05:04 +00:00
Daniël van der Winden
59b6e92497
🐛 Fixed post list not displaying correctly with long titles (#21892)
Previously, if you had posts with very long titles, the layout of the
post list would break, causing the analytics button and the metrics to
shift from row to row.

These changes address that, and make the list render cohesively
regardless of the length of a post's title, across resolutions.

fixes
https://linear.app/ghost/issue/DES-610/post-list-breaks-with-really-long-titles
2024-12-16 15:51:32 +01:00
Sodbileg Gansukh
b6f94c5fdb
Cleaned up the customFonts feature flag (#21889)
ref DES-1025
2024-12-16 18:13:15 +08:00
Gary Lai
28a502fe4c
Added missing zh-Hant translations (#21885)
no issue
2024-12-16 09:39:04 +00: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
Ghost CI
bb9bd0e233 v5.105.0 2024-12-13 15:05:49 +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
Àlex Rodríguez Bacardit
904a30082e
🌐 Updated Catalan translations in comments.json (#21827)
- Corrected certain inaccuracies. 
- Added coherence to infinitives for actions (save -> desar)
- Added missing translations.
2024-12-12 16:11:54 +00:00
echobilisim3421
262126e40b
🌐 Added missing Turkish translations to portal.json (#21784)
- Added all missing/blank translations in the portal.json file
2024-12-12 16:00:22 +00:00
Àlex Rodríguez Bacardit
b1275e6776
🌐 Updated Catalan translations in signup-form.json (#21831)
- Corrected typos and style. 
- Added missing translations.
- Added coherent style (tu vs vostè) across files.
2024-12-12 15:21:52 +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