fix(conversations): remove Delete conversation from quick actions conversation menu
☑️ Resolves
- There is a "Delete conversation" in the conversation list quick actions menu
- Unlike leaving, it is a very destructive operation
- IMO, it shouldn't be available in a conversation menu
- Even with the confirmation dialog, a user may just quickly click "Confirm" without reading
- There is a similar dialog on leaving which is not so dangerous
- To reduce the risk of accidental deletion, I'd propose removing it from the close menu
- A user can still remove conversation from the settings, where it is more obviously a destructive operation
Alternative - having double confirmation.
🖌️ UI Checklist
🖼️ Screenshots / Screencasts
| 🏚️ Before | 🏡 After |
|---|---|
🏁 Checklist
- [ ] 🌏 Tested with different browsers / clients:
- [ ] Chromium (Chrome / Edge / Opera / Brave)
- [ ] Firefox
- [ ] Safari
- [ ] Talk Desktop
- [x] Not risky to browser differences / client
- [ ] 🖌️ Design was reviewed, approved or inspired by the design team
- [ ] ⛑️ Tests are included or not possible
- [ ] 📗 User documentation in https://github.com/nextcloud/documentation/tree/master/user_manual/talk has been updated or is not required
Alternative - having double confirmation.
We had some thoughts about that in another call. It e.g. would make sense to ask for further confirmation if the conversation is:
- Having many chats (ours had 25k)
- Having many shares (ours had 1.3k)
- Is Old but still Current (first message from 2019, latest from 2025)
Instead of removing it, we could open the "Danger zone" area when click on Delete?
Instead of removing it, we could open the "Danger zone" area when click on Delete?
Works for me, also makes it different from the "leave conversation" confirmation.
Something like this should work then:
Conversation.vue:
emit('show-conversation-settings', { token: this.item.token, sectionId: 'dangerzone' })
ConversationSettingsDialog.vue:
handleShowSettings({ token, sectionId }) {
...
if (sectionId) {
this.$nextTick(() => {
document.getElementById(`settings-section_${sectionId}`).scrollIntoView()
})
}
}
Something like this should work then
It should move the focus first, otherwise the user is moved back on keyboard navigation
document.getElementById(
settings-section_${sectionId})
It is not a public API, can be broken on minor update
can be broken on minor update
I just meant the approach. We can scroll to the Talk-defined header we know will exist in this place: DangerZone -> <h4>Delete conversation</h4>
Something for 21.1?