nextcloud / nextcloud/spreed

Smart Picker “Any link” intercepts Enter for webhook bot slash commands

Open
#19,007 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug feature: chat 💬 feature: frontend 🖌️ papercut upstream
Dominant language
JavaScript
Stars
2.2k
Forks
586
Avg merge
18h 27m
Merged PRs (30d)
333

Description

[!TIP]

How to use GitHub
  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add.
  • Subscribe to receive notifications on status changes and new comments.

Steps to reproduce

  1. Open a conversation in the Nextcloud Talk web interface.
  2. Type a slash command intended for a webhook/external bot, for example /new.
  3. Observe that the Smart Picker opens and keeps Any link selected, even though the entered text is a bot command rather than a link-picker action.
  4. Press Enter to send the command.
Expected behaviour

Enter sends /new as a normal chat message so that the bot can process it. More generally, when the text after / does not match a Smart Picker action, the picker should not consume Enter.

Actual behaviour

The highlighted Any link item consumes Enter instead of the message being sent. The user must press Escape to dismiss the Smart Picker and then press Enter again.

This makes slash commands exposed by webhook or external bots unnecessarily awkward to use and is particularly surprising because the command text itself remains in the composer.

This appears to be a current recurrence of #9142. That issue was closed when legacy commands were deprecated in favour of webhook bots, but slash-style commands are also commonly implemented by webhook/external bots, so the UI conflict remains.

Possible UX options:

  • stop selecting Any link once the typed text no longer matches a picker entry;
  • let Enter submit the message when there is no matching picker result;
  • require explicit keyboard navigation/click before Any link captures Enter.

Talk app

Talk app version: 23.0.9

Custom Signaling server configured: not relevant to chat composer behaviour

Custom TURN server configured: not relevant

Custom STUN server configured: not relevant

Browser

Client: Nextcloud Talk web interface

Microphone available: not relevant

Camera available: not relevant

Browser log: No JavaScript error is shown; this is keyboard/focus handling in the composer.

Server configuration

Nextcloud Version: 33.0.6

No server-side error is produced.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in the Nextcloud Talk web interface with an unmatched slash command such as /new, then trace the Smart Picker and composer keyboard handling. Done means Enter sends unmatched slash commands directly, while matching Smart Picker actions continue to work as expected.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend, web-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.