0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-20 22:42:53 -05:00
Commit graph

421 commits

Author SHA1 Message Date
Daniël van der Winden
13bad88baf
Fixed comments UI regression (#20574)
Fixes
https://linear.app/tryghost/issue/DES-433/mobile-regression-in-comments-ui

Comments modal was previously using isMobile helper, which only works on
pageload. Code is now adjusted to use Tailwind media queries to
show/hide example profiles at the right resolutions.
2024-07-10 11:22:14 +02:00
Peter Zimon
cd8a54d7cc
Updated borders in comments CTA box (#20274)
DES-189

Our use of borders makes it very difficult to style a theme that looks
good with all states. Theme developers need a border to separate
comments from the content, but the current comments output includes
borders. It's possible to make it look ok in most of the time, but it's
difficult to work with. This change updates borders from the comments
CTA box with the following rules:

- Logged out without comments: no borders
- Logged out with comments: top border only
- Logged in without comments: no borders
- Logged in with comments: no borders
2024-06-18 13:43:53 +02:00
Ronald Langeveld
e1e31c530a
Moved pagination button back to top in comments (#20379)
no issue

- moving the pagination button back to the top since it's not needed
now.
- Will move it to bottom in future along with additional comments enhancements.
2024-06-13 09:10:30 +07:00
Ronald Langeveld
bea074b23d
Updated default comments from 5 to 20 (#20359)
ref MOM-135 MOM-211 MOM-213

- Bumped up the default comments count from 5 to 20 comments before
pagination kicks in.
- Moved the pagination (`Show X previous comments)` to bottom of the
page (soon to be reworded to `Show x more comments`)
- Updated tests and added a new helper for adding multiple comments easier.
2024-06-11 18:39:59 +07:00
Kevin Ansfield
85b8b61631
Removed admin-auth error logs for unknown message events (#20000)
closes https://linear.app/tryghost/issue/ENG-780

- the `admin-auth` frame was set up to log when any `message` event was handled but couldn't be parsed as JSON. For our own events that's fine but `message` events are also frequently triggered by browser extensions meaning the DevTools console log could become quite noisy for no reason
- removed the logging as it's noisy and not useful outside of development
2024-04-08 16:50:49 +00:00
Kevin Ansfield
dd3bc06761
🐛 Fixed comments block disappearing when performing certain actions (#19846)
closes https://linear.app/tryghost/issue/ENG-739

- `props.innerRef` in `<IFrame>` was inadvertently assumed to always exist, sometimes throwing an error on render when certain popups like the profile settings modal were opened resulting in the app crashing and the whole comments block disappearing
- added a guard to ensure the ref exists before trying to set it
- updated tests so the profile modal route is tested
2024-03-12 17:39:36 +00:00
Kevin Ansfield
92a8a53a95
Added lazy-loading of admin auth in Comments UI (#19799)
closes ENG-711

When an Admin is authenticated in Comments-UI we only add moderation options to the displayed comments so we don't need to pre-emptively load the `admin-auth` iframe and make the `/ghost/api/admin/users/me/` request until some comments are actually visible.

- used `state.comments.length` property to defer rendering of the admin auth frame until comments have been fetched (after box is scrolled into view) and the count is > 0
2024-03-05 15:57:20 +00:00
Kevin Ansfield
44e602b447
Switched to default ordering for comments API requests (#19774)
closes ENG-681

There's no need to provide an `order` param with every request in Comments-UI if the API has default ordering that matches our requirements. The order param makes logs more noisy/harder to read than they need to be so we want to get rid of it.

- modified comments API input serializer to add a default order param to the browse and replies endpoints when none is provided
- removed order param from the requests that Comments-UI makes
2024-02-28 18:42:02 +00:00
Fabien O'Carroll
a291914fc4 Updated Comments UI to use new endpoint
refs https://linear.app/tryghost/issue/ENG-676/

Now we have the case that there is no filter param, the simple string
approach fails. Instead we build up a URLSearchParams object which
makes it easier to handle conditional params & stringify it at the end.
2024-02-28 22:40:56 +07:00
Kevin Ansfield
5b6d8fb7a8
Added lazy-loading to comments (#19769)
closes ENG-678

The comments block is typically shown at the bottom of a post so it doesn't make sense to eagerly fetch comments from the API when we don't know if the comments block will even be viewed. By lazy-loading the data only when the comments block comes into view we can reduce both data usage for visitors and load on the site.

- uses IntersectionObserver API to delay comments app initialisation until the comments block has scrolled into view
- updated all iframe-related components to forward a `ref` so we can use the `<iframe>` element reference inside the `App` component
2024-02-28 12:52:24 +00:00
Fabien O'Carroll
6a4d36878e Removed timestamp from initial load of comments
refs https://linear.app/tryghost/issue/ENG-673

This means that the initial load of comments can be cached for everyone.

We also improve the timestamp which is used when fetching future comments,
instead of using a locally generated timestamp, we use the created_at of
the first comment loaded, this drastically improved the likelyhood that the
timestamp will be the same, meaning that it will hit the cache.
2024-02-28 07:38:22 +07:00
Kevin Ansfield
ef38316976
Added rounding to Comments-UI API fetch timestamp (#19750)
no issue

- allows for comments to be cached for 10s to greatly reduce the load hitting Ghost
2024-02-23 19:53:27 +00:00
renovate[bot]
8d357bd551
Update dependency tailwindcss to v3.4.1 (#19395)
no ref

- includes run of `eslint --fix` to update changed classname ordering in Tailwind

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2024-02-13 14:28:02 +00:00
Simon Backx
b6519e0f1f
Removed usage of unquoted ids in filter strings (#19070)
fixes GRO-34
fixes GRO-33

This is a revision of a previous commit, that broke the browser tests
because changes in the data generator (requiring bookshelf had side
effects).

This adds a new way to run all tests with enforced numeric ObjectIDs.
These numeric ids cause issues if they are used withing NQL filters. So
they surface tiny bugs in our codebase.

You can run tests using this option via:
NUMERIC_IDS=1 yarn test:e2e

Removed some defensive logic that could be explained by this discovered
issue.
2023-11-21 09:45:36 +01:00
Simon Backx
d5492bd63c
Revert "Removed usage of unquoted ids in filter strings" (#19052)
Reverts TryGhost/Ghost#19031

Browser tests are failing with an unknown cause
2023-11-20 13:50:07 +00:00
Simon Backx
320eaac4c4
Removed usage of unquoted ids in filter strings (#19031)
fixes GRO-34
fixes GRO-33

This also adds a new way to run all tests with enforced numeric ObjectIDs.
These numeric ids cause issues if they are used withing NQL filters. So they
surface tiny bugs in our codebase.

You can run tests using this option via:
NUMERIC_IDS=1 yarn test:e2e

Also removed some defensive logic that could be explained by unquoted ids.
2023-11-20 14:00:31 +01:00
Rene AHONBO
c404784573
Added missing semicolons (#18670)
Co-authored-by: Daniel Lockyer <daniellockyer@fastmail.com>
2023-11-15 12:19:50 +01:00
Simon Backx
14927ee24b
Added quotes to NQL filters with ids (#18958)
refs https://github.com/TryGhost/Product/issues/4120

Updated some places where we don't add quotes around ids in NQL filters,
which can be an issue when the id is a number
2023-11-13 12:00:20 +01:00
Djordje Vlaisavljevic
cce3d12f45 Made expertise and comment body text wrap when necessary
refs https://github.com/TryGhost/Product/issues/4045
2023-11-02 20:02:34 +00:00
Djordje Vlaisavljevic
5ccb0887cb Added shorter label for button on narrow screens
refs https://github.com/TryGhost/Product/issues/4045
2023-10-20 14:51:07 +02:00
Daniel Lockyer
6dc1d08590 Re-enabled general eslint rules in TS config
refs https://github.com/TryGhost/DevOps/issues/50

- when creating a TS config in our `eslint-plugin-ghost` dependency, I
  only extended the recommended config, which left out a lot of
  stylistic things we used to enforce in JS
- this fixes that by bumping the dependency to a version which extends
  those shared configs, and fixes all the code that currently goes
  against those rules
2023-09-08 13:47:42 +02:00
Simon Backx
e9703f6a15
Extended translations beta to comments (#17801)
refs https://github.com/TryGhost/Product/issues/3504
2023-08-24 10:33:03 +02:00
Simon Backx
375a6d37c2
Added support for i18n in comments-ui (#17797)
refs https://github.com/TryGhost/Product/issues/3504

- This adds support for translations, but doesn't yet translate every
possible string in the app.
- Only active if beta translations is enabled
2023-08-23 13:57:37 +00:00
Simon Backx
f1b51729fc
Converted Comments-UI App to TypeScript and React hooks (#17760)
refs https://github.com/TryGhost/Product/issues/3504

- App component now uses React hooks intead of React class component
- App is now written in TypeScript
- All JavaScript is now removed from the Comments-UI project
- Removed `PopupNotification` because these were never displayed
- Removed `action` from AppContext (never used)
- Moved options parsing out of `index.ts` into a separate utility file,
similar to the signup-form
- Improved reliability of some editor tests by always waiting for the
editor to be focused (was not always the case) + added an utility method
for this
2023-08-18 13:30:59 +00:00
Simon Backx
850cc7a9a1
Moved old comment tests to Playwright (#17750)
refs https://github.com/TryGhost/Product/issues/3504
2023-08-17 12:47:08 +02:00
Simon Backx
c8daf2e514
🐛 Fixed comments admin menu not visible when not logged in as member (#17749)
refs https://github.com/TryGhost/Product/issues/3504

- When you are logged in as an admin, but not as a member, no buttons
showed (discovered in new e2e tests)
- Added E2E tests for admin actions
2023-08-17 09:20:40 +00:00
Daniel Lockyer
c97cc08455 Updated ESLint config for React+Typescript packages
refs https://github.com/TryGhost/DevOps/issues/50

- `react-app` comes from `eslint-config-react-app`, which is a CRA package
- we're moving away from that so this commit switches the linting over
  to a more recently updated plugin
- once that was removed, we started using a newer version of
  `@typescript-eslint/eslint-plugin`, so there were plenty of
  updates/exemptions to make
2023-07-27 11:40:31 +02:00
Simon Backx
5c843545d8 Added comments-ui editor E2E tests
refs https://github.com/TryGhost/Team/issues/3504
2023-06-28 13:08:35 +02:00
Simon Backx
23fc00ae60 Added E2E tests for comments-ui accent color option
refs https://github.com/TryGhost/Team/issues/3504

This also fixes an issue where the signup button would become transparent when the accent color option was not set
2023-06-27 16:28:53 +02:00
Simon Backx
81970fbe01 Added E2E test for avatarSaturation on comments-ui
refs https://github.com/TryGhost/Team/issues/3504
2023-06-27 16:28:53 +02:00
Simon Backx
331533d724
Migrated Comments-UI to TypeScript (#17129)
refs https://github.com/TryGhost/Team/issues/3504

This migrates comments-ui to TypeScript. Only `App.js` is left to
migrate, but since this isn't using hooks yet, it will need a bigger
rewrite so this will need to happen in a separate PR.
2023-06-27 14:51:37 +02:00
Simon Backx
8d6fb51908 Added Playwright tests to comments-ui
refs https://github.com/TryGhost/Team/issues/3504

Not complete yet, but contains the basic structure and a few tests that work and should run in CI.
2023-06-22 15:06:13 +02:00
Simon Backx
ab86e0d901 Removed Sentry and unused data options from comments-ui
refs https://github.com/TryGhost/Team/issues/3504

- Sentry was never setup and we don't use it
- Styles have been moved to inline JS styles (no separate css file generated)
- App version was never used
- Improved current script tag detection
2023-06-22 15:06:13 +02:00
Simon Backx
098d2ad3d9 Updated comments-ui eslint rules
refs https://github.com/TryGhost/Team/issues/3504

- Use same rules as signup-forms
- Updates files for the new rules
2023-06-22 10:39:39 +02:00
Simon Backx
fbd268272a Fixed linting issues 2023-06-21 17:25:47 +02:00
Simon Backx
13d3d0cde6 Migrated from Webpack to Vite and updated dependencies
refs https://github.com/TryGhost/Team/issues/3504

- Removed Cypress. Tests will get replaced by Playwright
- Removed unused files and HTML files
- Updated scripts to work similar to Portal, Signup-Form
- Updated to pinned dependencies and removed unused dependencies
2023-06-21 15:28:01 +02:00
Daniel Lockyer
fac4ec7876 Fixed minor linting issues
- these classes needed to be reordered to satisfy eslint-plugin-tailwindcss
2023-03-17 12:19:52 +01:00
Sodbileg Gansukh
be7e3f3e62 Fixed invisible top border issue of the form input (#14)
refs https://github.com/TryGhost/Team/issues/2615
2023-03-14 18:11:49 +08:00
James Morris
a41259be27 Fix the word break for long links in comments on mobile
refs https://github.com/TryGhost/Team/issues/2245
2022-11-11 15:31:34 +00:00
Kevin Ansfield
fcf8570393 🐛 Fixed error rendering count with no number (#13)
refs https://github.com/TryGhost/Team/issues/2221

- added guard to `formatNumber` helper used in the `<Count>` component via the `<ContentTitle>` component so a missing count prop is handled gracefully
2022-11-07 22:40:58 +00:00
James Morris
6956b82245 Add comma separators to all numbers in comments
refs https://github.com/TryGhost/Team/issues/2210
2022-11-03 15:47:49 +00:00
Elena Baidakova
290e3d5713 Updated counts api url (#12)
closes TryGhost/Team#2094
- Counts request was changed from `post` to `get` for enable request caching.
2022-11-02 10:02:26 +04:00
Simon Backx
a2daf2e448 🐛 Fixed CMD+C focussing main form
fixes https://github.com/TryGhost/Ghost/issues/15563
2022-10-10 11:43:07 +02:00
James Morris
92dec78902 Improving the border, text and buttons to work in light, dark and other weird colours
- Changed all borders to work better in different background colours
- Same goes for main buttons like pagination for main and reply
- Same goes for any secondary text which should help

no issue
2022-10-06 16:06:40 +01:00
Simon Backx
24af5ad0dd Added experimental Cypress tests
refs https://github.com/TryGhost/Team/issues/1780

This commit adds some Cypress tests as a POC to the project. If we decide to go with Cypress, we can add more tests to cover the rest of the codebase. The main reason to have a E2E framework is that some editor related UI is hard to test with the React tests because it uses JSDOM.
2022-09-09 17:27:32 +02:00
Simon Backx
ddbc2db76d Fixed error when not signed in as admin
no issue

When loading comments UI without being logged in as an admin, it would throw an error every time when unpacking result.users[0].
2022-09-09 12:05:14 +02:00
Simon Backx
500ebf0de2 Prevented relative time updates on comment state changes
no issue

When the state of a comment changes (e.g., after a like) the relative time would update. This is not desirable because it looks glitchy. If the relative time doesn't update every second, then it is better to never update it after the initial render.
2022-09-09 11:52:26 +02:00
Simon Backx
f72e804d08 Removed event bus 2022-09-09 11:48:24 +02:00
Simon Backx
527abdbcd6 Cleaned up ContentBox and PopupBox 2022-09-09 11:46:55 +02:00
Simon Backx
65dd6bd1d6 Cleaned up component props 2022-09-09 11:46:08 +02:00