Conversation
3d933c2 to
9185c55
Compare
9185c55 to
3104c7f
Compare
3104c7f to
906fffd
Compare
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
906fffd to
a2b7efb
Compare
| $directIconUrl = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('spreed', 'icon-phone-dark.svg')); | ||
| $directCallUrl = $this->urlGenerator->linkToRouteAbsolute('spreed.Page.index') . '?callUser=' . $user->getUID() . '#direct-call'; | ||
| $directAction = $this->actionFactory->newLinkAction($directIconUrl, $directTalkAction, $directCallUrl, Application::APP_ID); | ||
| $directAction->setPriority(9); |
There was a problem hiding this comment.
Oh, I understood it should be below 'Chat with user' ๐
Fine by me, but I'd align with designers
There was a problem hiding this comment.
Worth mentioning: Hover cards with a nice layout nextcloud/server#30868
Any chance it's possible to change the order depending on where this menu is used? Calling is definitely more useful as an outside action than viewing profile in the contacts menu but in Talk it feels weird for the order to be "Call, view profile, local time, email, chat". If it's just in this contacts menu then it can be outside, but in Talk it would be nice to group all the "contacting" options together.
If not possible we just do calling as the highest priority and try to do the nice hover cards in the future ๐คท
There was a problem hiding this comment.
I think we should use a camera icon like on start-call?
There was a problem hiding this comment.
Or we use Talk for the call and a speech bubble for chat
There was a problem hiding this comment.
Then it would be confusing?
- Talk icon > open small popup with a call
- speech buble icon > open Talk app
There was a problem hiding this comment.
Other ideas:
- video_camera_front: https://fonts.google.com/icons?selected=Material+Symbols+Outlined:video_camera_front:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=camera&icon.size=24&icon.color=%235f6368%5C
- video_chat: https://fonts.google.com/icons?selected=Material+Symbols+Outlined:video_chat:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=camera&icon.size=24&icon.color=%235f6368%5C
- picture_in_picture: https://fonts.google.com/icons?selected=Material+Symbols+Outlined:picture_in_picture:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=video&icon.size=24&icon.color=%235f6368%5C
There was a problem hiding this comment.
I'd vote for a simple video cam icon. Second preference would be video-chat
DorraJaouad
left a comment
There was a problem hiding this comment.
I reviewed based on smoke tests I did manually to address mainstream issues. After this, I will go into more details layer (minor issues)
| // ignore external links | ||
| if (url.origin !== location.origin) { | ||
| return | ||
| } |
There was a problem hiding this comment.
It will ignore when using different protocols too (https vs http), what about
const url = new URL(href, location.href)
if (url.host !== location.host) {
return
}| store.dispatch('addConversation', conversation) | ||
| const token = conversation.token | ||
|
|
||
| if (!window.OCA.Talk) { |
There was a problem hiding this comment.
What about when you already have an instance:
- Block any second call of the same user
- Block any other call of another user
| } catch (exception) { | ||
| joiningConversation.value = false | ||
|
|
||
| showError(t('spreed', 'Error occurred when joining the conversation')) | ||
|
|
||
| console.error(exception) | ||
|
|
||
| return | ||
| } |
There was a problem hiding this comment.
In case an exception happens, the overlay needs to be unmounted as there is no close button
| function openInNewTab() { | ||
| const url = generateAbsoluteUrl('/call/{token}#direct-call', { token: props.token }) | ||
| window.open(url, '_blank') | ||
| } |
There was a problem hiding this comment.
The overlay needs to be unmounted, currently it just freezes and stays there
| */ | ||
|
|
||
| import type { Conversation } from './types/index.ts' | ||
|
|
There was a problem hiding this comment.
| import './init.js' |
Otherwise nothing is intercepted :)
Also can you please rename it to mainFloatingCall ? We used this prefix in other instances

โ๏ธ Resolves
๐๏ธ UI Checklist
๐ผ๏ธ Screenshots / Screencasts
๐ง Tasks
Feature related:
Integration app:
Contacts app:
Design (cc @nimishavijay):
Technical:
๐ Checklist
๐ ๏ธ API Checklist
๐ง Tasks
Abstract profile actions๐ Checklist
docs/has been updated or is not required