0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-27 22:49:56 -05:00
Commit graph

2155 commits

Author SHA1 Message Date
Djordje Vlaisavljevic
becfc5013c
Improved spacing and alignment in notifications (#21820)
ref https://linear.app/ghost/issue/AP-625/implement-notification-grouping-for-follows-and-likes

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2024-12-06 13:14:41 +00:00
Djordje Vlaisavljevic
e7a9b2a720
Made similar notifications appear grouped together (#21805)
ref https://linear.app/ghost/issue/AP-625/implement-notification-grouping-for-follows-and-likes

- Added basic frontend grouping for Follow and Like notifications, so the page is easier to scan through. For each loaded batch of notifications we check if they can be grouped (all follows get grouped, all likes for a certain post get grouped) and then merge those grouped pages of notifications.
- Improved UI for notifications, with notification type icons for each group.
- Added a utility for truncating text.
2024-12-05 21:52:03 +00:00
Sanne de Vries
9350ccf1db Removed hover effect on replied-to refs for unpublished comments
REF https://linear.app/ghost/issue/PLG-294/remove-link-from-replied-to-[hiddenremoved]
2024-12-05 18:02:38 +00:00
Kevin Ansfield
7e60172027 Removed link from replied-to ref when deleted/hidden
closes https://linear.app/ghost/issue/PLG-294

- making the `replied to: [removed]` text a link was a bit confusing because clicking it does nothing
- if the replied-to comment doesn't exist (e.g. hidden/deleted and not returned in API response) or has been unpublished we replace the `<a>` with a `<span>` to remove the link behaviour
2024-12-05 18:02:38 +00:00
Kevin Ansfield
0651d7178b Extracted <RepliedToSnippet> component from <CommentHeader>
no issue

- keeps logic inside `<CommentHeader>` single-purpose
- allows for cleaner code when adding logic to remove the link when the replied-to comment is removed
- switched `queryByText` to `getByText` in the test to make debugging easier, the latter will print the current DOM if it fails to find an element

# Conflicts:
#	apps/comments-ui/src/components/content/Comment.tsx
2024-12-05 18:02:38 +00:00
Sanne de Vries
f06de99410
Added highlight animation when scrolling to replied-to comment (#21781)
REF https://linear.app/ghost/issue/PLG-284

When clicking on a replied-to reference, you scroll up to the parent comment. To guide the eye, the parent comment is highlighted with a yellow background.

- added `dispatchAction` to the `ActionHandler` function call arguments, allowing actions to call other actions
- added `commentIdToHighlight` app context state and associated `highlightComment` action to set it
- updated `Comment` (and related sub-components) to match `commentIdToHighlight` when rendering to determine whether to apply highlighting of comment contents
- for the highlight, `<mark>` is used to wrap any paragraphs inside the comment contents and appropriate tailwind highlight animation classes applied
  - uses the inline `<mark>` element so that background highlight only applies to the text bounding boxes rather than the entire wrapping element

---------

Co-authored-by: Ronald Langeveld <hi@ronaldlangeveld.com>
2024-12-05 17:46:16 +00:00
Steve Larson
428eebeaf8
Added custom font support for themes (#21817)
ref [DES-949](https://linear.app/tryghost/issue/DES-949/

177e604501

This adds custom fonts feature allowing users to select heading and body
fonts for their themes from a curated list. This allows publishers to
have more control over their brand, and allows themes to have a wider
range of styles to appeal to different audiences.

Without custom fonts support, themes will continue to work as normal,
but users won't be able to customize their typography. As for the
official themes, all of them will support custom fonts.
2024-12-05 16:39:41 +00:00
Daniel Lockyer
4c13f188ce Removed Collections code from Admin
ref https://linear.app/ghost/issue/ENG-1805/remove-collections-code

- we're removing this feature as it's not finished to the degree we
  would like, so this commit removes all references to it from Admin in
  order to keep things clean
2024-12-04 17:36:40 +01:00
Sodbileg Gansukh
ea0e598bf2
Added custom fonts feature check (#21738)
ref DES-1011

- previously, we were hiding the old font settings from the official themes without checking if they support the custom fonts or not
- now we use the gscan warning info to check this — only when there's support, we hide the settings which means users with the older version will get the old settings back
- also added two new tests for this procedure
2024-12-04 13:42:44 +08:00
Ronald Langeveld
7c1d7080e9
Bumped comments-ui to 0.24.1 (#21797)
ref PLG-293
2024-12-04 02:48:20 +00:00
Ronald Langeveld
55dc9d997f
Added loading state when ordering comments (#21788)
PLG-280

- Added a loading state implementation when changing the ordering of
comments.
- This improves the overall UX particularly with slower connections.
- Due to the nature of how comments and ordering are handled, we
approached it with a simple state that determines whether it's done
loading or not around the API query.

---------

Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
2024-12-04 10:16:58 +08:00
Sanne de Vries
0757f270eb
Updated hidden/removed comment copy on API side (#21796)
REF
https://linear.app/ghost/issue/PLG-295/change-copy-for-replied-to-[hiddenremoved]
- Updated the copy from hidden/removed to removed on API side and in
i18n context.json for consistency
2024-12-03 19:05:42 +00:00
Sanne de Vries
4fa929e1c4
Fixed z-index issue of sorting dropdown and hidden comments (#21793)
REF
https://linear.app/ghost/issue/PLG-292/sorting-dropdown-z-index-issue-with-hidden-comments
- The dropdown would appear behind hidden comments
2024-12-03 17:04:00 +00:00
Sanne de Vries
99d5dea877
Updated copy for replied-to reference of removed comments (#21792)
REF
https://linear.app/ghost/issue/PLG-295/change-copy-for-replied-to-[hiddenremoved]
- No distinguishing needed between hidden and removed comments, which is
the same to the reader. "Removed" is more simple and understandable.
2024-12-03 16:57:50 +00:00
Steve Larson
79fb7ee787
Bumped Portal (#21704)
ref https://linear.app/ghost/issue/ONC-613
2024-12-03 08:41:12 -06:00
Djordje Vlaisavljevic
81ae18bcb6 Added support for WordPress formatting in notes
ref https://linear.app/ghost/issue/AP-622/add-support-for-rich-text-formatting-of-notes

- Until now we only had plain text with line breaks and links inside `note` objects. But WordPress is very flexible and allows users to put almost all of their blocks inside a `note`, like headings, lists and blockquotes. We now support those in Ghost, but with minimal formatting to keep the feed clean and easy to scan through.
2024-12-03 12:41:37 +00:00
Kevin Ansfield
badd6d8f97 Shipped comments-ui@0.24.0
no issue

- bumped minor to delay comments-ui update until next Ghost release
- includes numerous styling fixes, display of replies when editing a comment, and updates to in-reply-to snippets when deleting/hiding comments
2024-12-02 23:37:44 +00:00
Kevin Ansfield
9da9757f1f
Changed in-reply-to snippet to show [hidden/removed] (#21731)
closes https://linear.app/ghost/issue/PLG-263/

When hiding a reply as an Admin, if there were other replies that referenced it then those snippets would still show the hidden content because there was no immediate update in the comments-ui client. This made it look like hidden content would still be visible even though at the API level snippets were entirely removed so no other user would see it.

- added client-side handling so in-reply-to snippets immediately show `[hidden/removed]` which means we don't have to fetch every reply from the API
- updated the API to use `[hidden/removed]` as the snippet when referencing a hidden reply instead of removing all `in_reply_to_` data
  - keeping `in_reply_to_id` and `in_reply_to_snippet` means comments-ui still displays the replied-to reference text (albeit not directly showing the API-supplied string so `[hidden/removed]` can be translated)
  - returns the full `in_reply_to_snippet` text for Admin API requests so that showing a comment that has been loaded from the API can immediately show the contents for any displayed references to the comment
2024-12-02 23:12:01 +00:00
Sanne de Vries
4e806f7de4
Ensured replies remain visible when parent comment is being edited (#21756)
REF https://linear.app/ghost/issue/PLG-274/

- Currently, replies are hidden when the parent comment is being edited. This PR ensures that replies remain visible when the parent comment is being edited.
- To achieve this, the `CommentComponent` now checks if the parent comment is being edited. If so, the comment content is swapped by the EditForm, while the comment's avatar, header, menu, and replies remain visible.
- The Form component now only renders the FormEditor. A FormWrapper component is used to wrap the avatar and comment header.
- This Form component is used in the EditForm without the FormWrapper, as it is already wrapped in the CommentComponent.
- The ReplyForm and the MainForm use the FormWrapper.
- The Avatar component now also accepts a `member` prop, which is used to display the avatar image. This is because it's no longer used inside the Form component.
2024-12-02 22:17:15 +00:00
Djordje Vlaisavljevic
550a52598c
Fixed WordPress article feature image not showing (#21779)
ref https://linear.app/ghost/issue/AP-619/feature-images-from-wordpress-are-[object-object]

- WordPress puts the feature image into an `image` object, rather than putting the URL directly into an `image` string. We now properly render this.
2024-12-02 15:50:27 +00:00
Sanne de Vries
5c3e26351a
Change blockquote border color to accent color (#21780)
REF
https://linear.app/ghost/issue/PLG-291/add-support-for-blockquote-border-in-darkmode
- The border color was invisible in dark mode. Instead of adding a white
border for dark mode, it now uses the accent color. This matches link
and buttoncolors in comments, and makes it stand out more.
2024-12-02 15:45:58 +00:00
Djordje Vlaisavljevic
940914609f
Updated drawer so you can interact with page behind it (#21778)
ref https://linear.app/ghost/issue/AP-613/make-drawer-wider-when-displaying-articles-on-larger-screens

- Added a prop to Modal which allows you to interact with the page
behind the Modal, so the main navigation could still be used while the
Article modal is opened
- Removed the breakpoint we only use in one place, and switched to using
an arbitrary Tailwind breakpoint that matches the one in admin instead
2024-12-02 13:12:05 +00:00
Hannah Wolfe
675b29a418
🔥 Removed UI for AMP (#21762)
closes
https://linear.app/ghost/issue/ENG-1807/further-deprecate-amp-by-removing-the-ui

- AMP has been deprecated for a year, and will be removed in Ghost 6.0
- As the next step towards removing it, we're removing the UI, meaning
new sites can't enable it
- This will hopefully help the transition to dropping it be smoother and
especially prevent newer users from spending a lot of time on AMP in the
run up to it going away
- NOTE: this only removes the UI. All the logic remains, you can still enable AMP via the API/settings table in the DB.
2024-12-02 12:12:52 +00:00
Michael Barrett
04ed106c73
Refactored data loading to be more performant in admin-x-activitypub (#21770)
refs
[AP-614](https://linear.app/ghost/issue/AP-614/investigate-client-loading-issues)

Refactored data loading to be more performant in admin-x-activitypub:
- Utilised tanstack query for suggested profiles instead of rolling our
own custom hook. This allows us to utilise tanstack for caching
- Refactored how data is loaded for the Inbox / Feed view - Queries are
no longer cleared when switching between the 2 layouts
- Refactored how activity data is key'd to make caching more
deterministic as well as allow mutating a specific activity cache (i.e
when adding a note, ensure it only gets added the the feed activities)
- Removed redundant `excludeNonFollowers` parameter - This is no longer
used by the API
2024-11-30 22:41:51 +00:00
Michael Barrett
995edaa966
Refactored minor things in admin-x-activitypub (#21769)
Just a bunch of minor refactorings in admin-x-activitypub:

- Reorganised api methods
- Reorganised api query hooks
- Reorganised api tests
- Removed redundant `getActor` api method
- Colocate `Search` type with component
- Moved `ViewProfileModal` to `modals`
- Refactored profile
- Remove redundant `useFollowersForUser`
- Remove redundant `useBrowseInboxForUser`
- Removed redundant acceptance tests
2024-11-30 17:35:38 +00:00
Michael Barrett
c7d4facd85
Added infinite scroll to profile page collections in admin-x-activitypub (#21768)
no refs

Added infinite scroll to profile page collections in admin-x-activitypub
2024-11-30 15:51:51 +00:00
Michael Barrett
e2bccbc49f
Utilised endpoint for retireving profile posts in admin-x-activitypub (#21767)
no refs

Updated the profile modal in admin-x-activitypub to retrieve profile
posts from the dedicated profile posts endpoint
2024-11-29 23:37:35 +00:00
Djordje Vlaisavljevic
f65f5b1426
Made drawer view for Articles wider for easier reading (#21760)
ref https://linear.app/ghost/issue/AP-613/make-drawer-wider-when-displaying-articles-on-larger-screens

- The drawer view for viewing Articles was only slightly wider than the
one for viewing Posts. Since we've decided to make a bigger separation
between these 2 types of post, we wanted to make the drawer almost full
width (excluding the main navigation sidebar).
- This also removes the backdrop from drawer view so the interaction
would be lighter.
- To achieve this we're adding another CSS breakpoint so it would match
the one used in Admin. We didn’t have one since our DS was mostly used
in isolation in Settings.
2024-11-28 19:08:03 +00:00
Djordje Vlaisavljevic
a8a1095910 Cleaned up stylesheet used to display ActivityPub Articles
close https://linear.app/ghost/issue/AP-574/clean-up-iframe-css

- When we began working on ActivityPub integration, we reused the styles from our default Source theme and added default Ghost card styles. This meant we could quickly have nice-looking posts in the admin, but also meant we have some unnecessary lines of CSS. This is now cleane up, resulting in a ~40% smaller file.
2024-11-28 16:27:10 +00:00
Djordje Vlaisavljevic
772e22c5f8 Updated hover state for 'back' button
ref https://linear.app/ghost/issue/AP-599/make-hover-and-click-states-for-buttons-consistent

- 'Back' button in the drawer was missing the hover state we're using for other icon buttons. Now it's consistent with the rest.
2024-11-28 16:27:10 +00:00
Djordje Vlaisavljevic
40adb28f28 Turned off autocomplete in Search input field
close https://linear.app/ghost/issue/AP-612/autofill-appears-in-searchfield

- Safari autocompletes our Search field because it mentions the word 'username' in the placeholder text, but we don't want that as users don't really want to search for their own usernames.
2024-11-28 16:27:10 +00:00
Daniel Lockyer
f6d774ee93 Removed Lexical multiplayer experiment
fix https://linear.app/ghost/issue/ENG-1804/remove-lexicalmultiplayer-code

- this experiment never went anywhere and we'll probably change our plan
  in the future, so this commit cleans up all the relevant code in this
  repo for the feature, in order to cut down on the code we have
2024-11-28 16:00:10 +01:00
Djordje Vlaisavljevic
355f361b64
Updated font sizes and colors for better hierarchy (#21755)
ref https://linear.app/ghost/issue/AP-609/give-inbox-ui-more-room-to-breathe

- Posts in the inbox view used the same font colors and sizes for
elements of different importance. Now the contrast and hierarchy of
elements is improved which makes it easier to browse the posts.
- Larger border radius on hover better fits the size of posts.
2024-11-28 14:26:36 +00:00
Djordje Vlaisavljevic
894e1ed798
Improved posts design and icon button hover states (#21754)
close https://linear.app/ghost/issue/AP-599/make-hover-and-click-states-for-buttons-consistent, https://linear.app/ghost/issue/AP-616/improve-feed-view-design

- Updated design for posts shown in the feed, reply and drawer views
- Consistent hover and click states for icon buttons
- Fixed inbox view posts overlapping with the sidebar suggestions
2024-11-28 13:47:56 +00:00
Princi Vershwal
6a70ba8895
Moved staff2fa flag to BETA_FEATURES (#21749)
Closes https://linear.app/ghost/issue/ENG-1800/move-staff2fa-to-beta-features-and-disable-developer-experiments

Currently we have this flag in ALPHA_FEATURES. We want to enable 2fa for selected sites but we would want to disable developer experiments for them, so they don't see the UI and enable random things.
2024-11-28 12:13:59 +00:00
Daniël van der Winden
30a0018c15
🐛 Fixed unclear newsletter (un)subscribe modal (#21739)
fixes
https://linear.app/ghost/issue/DES-953/newsletter-unsubscribe-modal-is-unclear-leading-to-repeated

Previously, when clicking 'Unsubscribe' in an email, landing on this
modal it was unclear what had just happened if you didn't read the text
below the title, causing people to click the toggles repeatedly.

We've now added a toast notification to make it clear what has just happened,
and if you click the toggles, the notification also shows.

Ideally, we'd be able to stack these notifications in case you hit
multiple toggles in quick succession, but that's going to be a separate
issue, as—to achieve that—it needs to be rewritten more significantly.

---------

Co-authored-by: Sodbileg Gansukh <sodbileg.gansukh@gmail.com>
2024-11-28 10:42:43 +01:00
Ronald Langeveld
72125f352b
Removed blocking tests (#21747)
ref https://ghost.slack.com/archives/C02G9E68C/p1732783603483239

- Need to create a patch release, however this test is suddenly failing.
- Fails at  const fileChooserPromise = page.waitForEvent('filechooser');
- reason is not clear, however, cannot reproduce.
2024-11-28 09:16:34 +00:00
Djordje Vlaisavljevic
60ff94943b
Improved inbox view UI (#21741)
ref
https://linear.app/ghost/issue/AP-609/give-inbox-ui-more-room-to-breathe

- Vertically centered feature image
- Timestamp next to the site title
- More consistent spacing in hover state
2024-11-27 13:11:56 +00:00
Sanne de Vries
029177fa69
Fixed delete button being clickable multiple times (#21736)
REF
https://linear.app/ghost/issue/PLG-287/fix-double-click-on-delete-button-impacting-comment-count
2024-11-27 12:43:30 +01:00
Sanne de Vries
52d15cf955
Updated comments spinner style for light mode sites (#21734)
REF
https://linear.app/ghost/issue/PLG-272/look-into-potential-spinner-regression
2024-11-27 10:55:40 +01:00
Kevin Ansfield
04f337e085 Fixed comments-ui tests not properly mocking actions on replies
no issue

- `MockedApi.browseComments` only worked on top-level comments, it couldn't find replies when passed `filter:'id:123'` such is used when liking and editing replies
- fixed missing get handler for fetching single comment via Admin API (used after showing a hidden comment)
- added `flattenComments` and `findCommentById` helper functions to facilitate easier finding of a comment or reply within the nested structure
- added tests for liking and hiding replies
2024-11-26 18:34:02 +00:00
Djordje Vlaisavljevic
d32955b21e
Made inbox view easier to scan through (#21729)
ref https://linear.app/ghost/issue/AP-609/give-inbox-ui-more-room-to-breathe

- Added more white space
- Made more lines of text for titles and excerpts visible
- Added estimated reading time
- Updated feature image size and position
2024-11-26 17:35:25 +00:00
Kevin Ansfield
cdea73b873 Refactored comments-ui admin moderation tests
no issue

- expanded e2e test behaviour to route Admin requests through our MockedApi instance so we have the same test experience for normal and admin comments requests
- extracted page route method bodies to enable request methods to be spied on
- updated admin moderation tests to properly use admin requests
2024-11-26 14:30:23 +00:00
Sanne de Vries
6c064b73e4
Fixed spinner being invisible in light mode (#21727)
REF
https://linear.app/ghost/issue/PLG-272/look-into-potential-spinner-regression
2024-11-26 14:00:23 +01:00
Ronald Langeveld
781bfdd60f
Wired up admin api for hidden comments (#21724)
ref PLG-270

- Updated the getCommentByID service to filter out hidden and deleted
replies.
- Ensured all replies are loaded before applying the filter.
- Simplified logic to handle non-paginated routes by directly removing
unwanted replies.
- Wired up new Admin Endpoint that shows hidden replies but not deleted
replies.
- Updated comments-ui client
- Added unit tests for mocking apiClient event listeners.
- added eventlistener playwright tests to ensure it fires on UI clicks.
2024-11-26 16:56:17 +08:00
Sanne de Vries
5b70c7d1d7
Improved vertical indentation alignment (#21718)
REF
https://linear.app/ghost/issue/PLG-275/improve-vertical-indentation-alignment
2024-11-25 14:39:17 +00:00
Sanne de Vries
5e42c3146d
Improved disabled state for "Add comment" button (#21717)
REF
https://linear.app/ghost/issue/PLG-281/change-button-to-being-disabled-without-input
2024-11-25 13:12:49 +00:00
Sanne de Vries
8371b6699f
Added confirmation popup for comment deletion (#21715)
REF
https://linear.app/ghost/issue/PLG-285/add-confirmation-modal-upon-comment-deletion
2024-11-25 12:04:31 +00:00
Sanne de Vries
2d9b593844
Added hover styles to comment context menus (#21714)
REF https://linear.app/ghost/issue/PLG-283/add-hover-state-to-menu-items
2024-11-25 11:41:10 +00:00
Sanne de Vries
1a0a36b64c
Changed click target for comment replied-to ref (#21713)
REF
https://linear.app/ghost/issue/PLG-282/change-click-target-for-replied-to-reference
2024-11-25 11:34:40 +00:00