Commit Graph

1069 Commits

Author SHA1 Message Date
Joffrey JAFFEUX
6a50b3d4b4
FIX: removes blank spacing in message actions (#30697)
This is a regression of https://github.com/discourse/discourse/pull/28277
2025-01-10 17:34:22 +01:00
Joffrey JAFFEUX
b96a9b9896
FIX: simplify body scroll lock on iOS (#30696)
This will have the following advantages:
- removes a very annoying bug which was making text selection super hard on iOS
- removes the flashing of header when transitioning from disable to enable body scroll lock
2025-01-10 17:13:48 +01:00
Kelv
8719235cfd
DEV: update deprecated icon name archive to box-archive in chat plugin (#30687) 2025-01-10 12:59:56 +08:00
Kris
d9c992bfdd
UX: follow-up sidebar variable fixes for c398933 (#30676) 2025-01-09 15:53:29 -05:00
Joffrey JAFFEUX
40f7941f2b
FIX: emoji-picker minor improvements (#30645)
- uses emojiSearch to ensure we have the same result than autocomplete when filtering emojis (for example search aliases were not working correctly because of this)
- reset the visible sections when clearing filter to ensure we are not attempting to display all the emojis at once which would be slow
- prevents flashing of the full emoji list before showing filtered results
- correctly reset recent favorites and only show them when used
2025-01-08 22:10:50 +01:00
Joffrey JAFFEUX
21c8376679
DEV: removes non needed special case (#30638)
Now that we correctly await for the modal to close, we dont need to special case and disable focusTrigger, the flow will now be:

- click an element of the menu
- wait for modal to close
- focus trigger
- trigger action, which will eventually open a modal and attempt to focus the first item
2025-01-08 11:59:16 +01:00
Joffrey JAFFEUX
6740a340ca
DEV: unifies emoji picker (#28277)
The chat emoji picker is renamed emoji-picker, and the old emoji-picker is removed.

This commit doesn't attempt to fully rework a new emoji-picker but instead tries to migrate everything to one picker (the chat one) and add small changes.

Other notable changes:
- all the favorite emojis code has been mixed into one service which is able to store one state per context, favorites emojis will be stored for all topics, and for each chat channel. Meaning that if you always use a specific emoji in a channel, it will only show as favorite emoji in this channel.
- a lot of static code has been removed which should improve initial load perf of discourse. Initially this code was around to improve the performance of the emoji picker rendering.
- the emojis are now stored, once the full list has been loaded, if you close and reopen the picker it won't have to load them again.

List of components:

- `<EmojiPicker />` will render a button which will open a dropdown
- `<EmojiPickerContent />` represents the content of the dropdown alone, it's useful when you want to render a picker from an action which is not the default picker button
- `<EmojiPickerDetached />` just a simple wrapper over `<EmojiPickerContent />` to make it easier to use it with `this.menu.show(...)`

---------

Co-authored-by: Renato Atilio <renatoat@gmail.com>
2025-01-08 11:41:36 +01:00
Gary Pendergast
b6c1e881be
FIX: Ensure popups from the chat composer dropdown gain focus (#30613)
When inserting anything from the chat composer dropdown, any popups opened weren't properly focussed.

This was due to the default behaviour of the dropdown menu closing, which tries to return the focus to the original triggering element. This would normally be the correct behaviour, but here we want the menu to close in the background, handing focus off to the popup, instead.
2025-01-07 17:34:01 +11:00
David Battersby
67d568f709
FIX: stuck notification for mentions within threads (#30546)
For mentions within threads, the mentioned user can experience a stuck notification. This is due to thread memberships only being created for users who interact with a thread. Without the membership we cannot track if the message containing the mention was read by the user.

The solution to this explored in this PR is:

- auto add memberships for mentioned users (only direct mentions for performance reasons).
- update channel/thread unread queries to check notification read status AND thread membership last read message id when counting mentions.

Previously the mention count would remain until the user notification (containing the mention) was read. However this only happens if the user clicks the notification or clicks dismiss all notifications. When a user navigated to the thread without clicking the notification, the green/urgent badge on chat would remain even after a hard page refresh.
2025-01-06 17:26:37 +04:00
Renato Atilio
eb58623b11
UX: replace partially written emoji when using picker on chat (#30517)
After searching for an emoji through the autocomplete, when a user uses the emoji picker (to see the full list of emojis) and selects one, the content in the chat composer would contain both the partially written emoji and the full :selected_emoji: code.

The actual fix is just re-using the emojiSelected method from TextManipulation.
2025-01-02 12:29:18 -03:00
Joffrey JAFFEUX
4e5fc4654c
DEV: fixes safari bug with content including linebreaks (#30451) 2024-12-23 18:39:28 +01:00
Jordan Vidrine
d69b7da3ca
fix (#30450) 2024-12-23 09:42:55 -06:00
Jarek Radosz
c3548aec5e
DEV: Don't use 0-delay for test-env discourseLater (#30442)
`discourseLater` automatically uses delay of 10ms in test environment
2024-12-23 16:31:46 +01:00
Jarek Radosz
d0e38977e3
UX: Remove chat hover effect from github status badge (#30447) 2024-12-23 16:31:29 +01:00
Joffrey JAFFEUX
c601b4112e
DEV: no services are used in this component (#30439) 2024-12-23 12:47:53 +01:00
Jarek Radosz
3c95aceeb0
DEV: Unify on-resize modifier situation (#30415)
1. Move chat's on-resize to core
2. Remove ember-on-resize-modifier
2024-12-23 09:11:17 +01:00
Jarek Radosz
0336235c74
DEV: Use object spread instead of Object.assign (#30407) 2024-12-23 08:44:29 +01:00
Jarek Radosz
d18bf67868
DEV: Remove unnecessary optional chaining operators (#30400) 2024-12-20 16:48:13 +01:00
Joffrey JAFFEUX
41df705188
DEV: replaces topic-notifications-options by DMenu (#30298)
This commit introduces <NotificationsTracking /> which is a wrapper component around <DMenu /> which replaces the select-kit component <TopicNotificationsButton />.

Each tracking case has its dedicated component:

- topic -> `<TopicNotificationsTracking />`
- group -> `<GroupNotificationsTracking />`
- tag -> `<TagNotificationsTracking />`
- category -> `<CategoryNotificationsTracking />`
- chat thread -> `<ThreadNotificationsTracking />`
2024-12-16 19:59:18 +01:00
Jordan Vidrine
b191d63c1b
DEV: removes sidebar-extensions css (#30266)
This PR cleans up some unnecessary CSS which are not used anymore. Support of sidebar in chat has a long history due to the various steps leading to the sidebar as we know it today.
2024-12-13 15:36:30 +01:00
Krzysztof Kotlarek
8bd55c35fb
UX: Hide admin header for edit/new webhook (#30194)
In this PR, we added functionality to hide the admin header for edit/new actions - https://github.com/discourse/discourse/pull/30175

To make it work properly, we have to rename `show` to `edit` which is also a more accurate name.
2024-12-12 10:49:17 +11:00
Sérgio Saquetim
1505978586
DEV: Upgrade dependencies to Ember 5.12 (#30131) 2024-12-11 11:09:25 -03:00
David Battersby
f0ea57e30e
FIX: chat channel sort order consistency in sidebar (#30180)
This change creates a shallow copy of the public message channels so we don't change the original array while sorting.

Without this change the publicMessageChannels getter cache gets invalidated and cached again with the sorted channels array instead, which causes a bug where the sidebar channel list sorting order is updated by activity when user interacts with the chat drawer.
2024-12-09 15:36:41 +04:00
Joffrey JAFFEUX
b0be89cb17
FIX: lower thread panel min-width (#30158)
It's been set to this value as a workaround for long thread titles, but we now have standalone thread titles in the thread body which makes this not needed. People had troubles understanding why they couldn't resize more the thread panel.
2024-12-06 19:18:45 +01:00
David Taylor
55980a2a84
DEV: Add workaround for chrome crash (#30157)
Some users are seeing consistent "Error 5" crashes in chrome when saving/deleting bookmarks on chat messages.

When crash logging is enabled, the message is:

`[33466:259:1206/122312.195048:ERROR:ax_object.cc(3400)] Check failed: !NeedsToUpdateCachedValues(). Stale values: "Group" axid#7543 <svg#discourse-emojis> needsToUpdateCachedValues/disallowed isIgnored inUserAgentShadowRoot:<use> isInert needsToUpdateChildren hasDirtyDescendants`

This seems to be influenced by a few factors, including the re-render of the bookmarks button, the adjacent 'reactions' button, and also the opening/closing of the modal.

Adding this `activeElement.blur` seems to avoid the issue in my manual testing. Hopefully, this can be dropped after future chrome releases.

Internal topic: t/143485
2024-12-06 16:05:09 +00:00
David Battersby
4f4498994c
UX: fix channel name style for unread threads (#30152)
Follow up to #30127.

Normally when viewing a channel with tracked threads, we dismiss the blue dot next to the channel name even though the thread has not been read yet.

This change applies the same criteria to determine if we should bold the channel name.
2024-12-06 17:38:13 +04:00
David Battersby
4e8a1487ca
UX: make channel name bold for unread threads (#30127)
Channels with unread threads should have a font weight of bold to match unread channels.
2024-12-05 14:17:31 +04:00
David Battersby
b3c94839ed
FIX: improve chat channel sorting for DMs (#30124)
This change sorts unread channels in descending order based on last message date, so channels with the latest activity will always appear at the top. It also adds some improvements for sorting channels with unread threads, now when multiple channels have unread threads, they will be sorted by last thread reply date to ensure more active channels rise to the top.

For DM channels, the order is now:

- Urgent (green badge) - unread messages, mentions and unread watched threads (most recent activity at top)
- Unread (blue badge) - unread tracked threads (most recent thread reply at top)
- Everything else (most recent message at top)
2024-12-05 13:33:55 +04:00
Kelv
1ca90c3070
DEV: update more deprecated font awesome icon names (#30123)
* update more deprecated font awesome icon names

* add migration to remove deprecated default for badges.icon
2024-12-05 15:20:02 +08:00
Régis Hanol
f75c43713b
FEATURE: bump DM limits from 20 to 50 (#30102)
So people who are having a **lot** of 1-1/group conversations in #chat can have even more 😅

Internal ref - t/143226/8
2024-12-04 16:34:28 +01:00
Régis Hanol
1ce12ae718
DEV: Deleted the "ChatComposerPresenceManager"... (#30098)
...since it was mostly duplicating the work the "ComposerPresenceManager" was doing.

So now the #chat composer uses the same "presence manager" as the composer, benefiting from the "hide presence" checks, with the only difference that the "keep alive" timeout is 5s for chat and 10s for topics/posts.
2024-12-04 12:21:55 +01:00
Kris
c67d3131aa
UX: adjust mobile chat text title alignment (#30065) 2024-12-03 14:11:33 -05:00
Joffrey JAFFEUX
89a6cac968
FIX: attempt to simplify chat navbar spacing (#30054)
The main bug this commit is fixing is lack of spacing on the title "channels" when visiting the chat homepage on mobile.
2024-12-03 09:33:10 +01:00
Joffrey JAFFEUX
35be2a9879
FIX: word break long continuous thread titles (#30007) 2024-11-30 01:07:39 +01:00
Joffrey JAFFEUX
c42248670d
FIX: increase chat thread title limit (#30006)
This will ensure AI generated titles don't appear as out of range in the UI and also allow users to set longer titles. The limit in DB was already 100 so it's just a simple frontend change.
2024-11-30 00:42:20 +01:00
Joffrey JAFFEUX
877b03c7ae
FIX: do not show as clickable the thread header (#30005)
When the current user can't modify the thread title we shouldn't show it as a clickable area.
2024-11-30 00:32:58 +01:00
Joffrey JAFFEUX
b546c31b7f
UI: simplify chat thread title (#29998)
We were using a complex logic to make it change size based on scroll position but this was imperfect and not visually pleasing. Also the title had been made a button which was causing the ellipsis to not work correctly, and I would prefer to not mix page knowledge (thread) with title component so I made this click logic directly in the chat-thread component.

---------

Co-authored-by: Jordan Vidrine <jordan@jordanvidrine.com>
2024-11-29 22:39:18 +01:00
David Battersby
3cde55b76f
FIX: show urgent badge for mentions in DM threads (#29821)
When thread tracking level is Normal in a DM channel, we should still show notification badges to the mentioned user.
2024-11-29 12:52:55 +04:00
Joffrey JAFFEUX
5a3afa0505
UI: hides channel with visible panel on narrow screen (#29541)
This commit will hide the channel when the side panel is present and the width of the viewport is less than 1000px. This is especially useful when you want to focus reading a thread on a small screen.

This change only impacts desktops.
2024-11-28 11:58:36 +01:00
Joffrey JAFFEUX
b4406861ae
FIX: simplify desktop notifications behavior (#29957)
Historically the behavior of this file has been complexified to attempt to answer this use case:

A user has two tabs open, tab 1 is on a topic, tab 2 is on a chat channel. If your active tab is tab 1 and someones sends you a mention in chat. We will show a desktop notification, but in which tab the channel should open if you click it? The changes made years ago said: in tab 2.

I think this is complexifying too much this codepath and is also confusing. You might wonder why this discourse notification you clicked opened in some of your 50 tabs in the background when you had a discourse tab active currently in front of you.

Moreover, a recent change has made the notification to only happen on desktop, but all the subscription stuff was happening regardless of mobile or desktop.
2024-11-27 17:33:31 +01:00
chapoi
cdf8eb8055
UX: update minwidth to chat sidepanel + better title word-break fn (#29954) 2024-11-27 06:04:04 +01:00
chapoi
3a11e70b3d
UX: chat drawer hover effect width calc fix (#29910) 2024-11-26 03:25:12 +01:00
Joffrey JAFFEUX
0c68b14534
FIX: correctly link to settings in full page (#29913)
There's already a test for this behavior and the CI is currently broken because of it.
2024-11-25 08:21:41 +01:00
Joffrey JAFFEUX
66409fa8b4
UX: improved collapsed drawer state/interactions (#29850)
- Clicking the channel title of a collapsed drawer will only open the drawer, and not open settings
- Remove the back button when the drawer is collapsed
- Uses same icon for toggling on chat that composer
- add max-width to minimised drawer + add hover effect
---------

Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com>
2024-11-25 03:39:03 +01:00
Régis Hanol
d71016522e
FIX: hide chat button in user card (#29887)
when the user isn't able to receive DMs (either because they've disabled it or because they're suspended for example).

Internal ref - t/142198
2024-11-22 09:05:58 +01:00
Gary Pendergast
f1bf63f89c
FIX: Tweak the unread channel shortcut key behaviour (#29874) 2024-11-21 11:41:02 +11:00
Gary Pendergast
f06a5635b3
FIX: Improve the reliability of the unread channel keyboard shortcuts (#29814)
Additionally, a bunch of related flaky tests were unflakified.
2024-11-21 08:24:26 +11:00
David Taylor
6f7c581a80
DEV: Bump @discourse/lint-configs and autofix (#29847)
In particular, this applies:

- new `discourse/no-implicit-this` template-lint rule
- `init`/`willDestroy` ordering enforcement
- `lines-between-class-members`
2024-11-20 14:15:04 +00:00
David Taylor
5563e9dc03
DEV: Revert ember-template-lint CI command change (#29845)
Partial revert of a10dcffb73, pending https://github.com/ember-template-lint/ember-template-lint/pull/3095

Also corrects a linting failure which snuck in while CI was broken
2024-11-20 11:10:16 +00:00
David Taylor
32665cf9dd
DEV: Consolidate i18n import paths (#29804)
Enables our new eslint rules which enforce consistent i18n imports. For more info, see 0d58b40cd7
2024-11-19 20:45:18 +00:00