Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New group call experience: Room header call buttons #9311

Merged
merged 10 commits into from Sep 25, 2022

Conversation

robintown
Copy link
Member

@robintown robintown commented Sep 23, 2022

This adds a Labs flag for the 'New group call experience', and as a first step, updates the call buttons in the room header to the latest designs, without fully hooking them up to RoomView just yet.

Part of element-hq/element-web#23107
Depends on element-hq/element-web#23344


Here's what your changelog entry will look like:

✨ Features

  • New group call experience: Room header call buttons (#9311).

@robintown robintown added the T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements label Sep 23, 2022
By not invoking the initializing function on every render
By not calling WidgetStore on every render
Currently has no effect, but in the future this will signal to RoomView to show the call or call lobby.
As documented in element-web, this will tell the app to use Element Call exclusively for calls, disabling Jitsi and legacy 1:1 calls.
So that the UI can know when placeCall completes
Since RoomView doesn't do anything with viewingCall yet, these buttons won't have any effect when starting native group calls, but the logic is at least all there and ready to be hooked up.
Copy link
Contributor

@SimonBrandner SimonBrandner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking great!

I feel like we should really consider merging the labs options as there are a little too many of them atm and it's becoming hard to know what is what

src/hooks/useEventEmitter.ts Show resolved Hide resolved
@@ -76,7 +76,7 @@ const Button: React.FC<IButtonProps> = ({ children, className, onClick }) => {
};

export const useWidgets = (room: Room) => {
const [apps, setApps] = useState<IApp[]>(WidgetStore.instance.getApps(room.roomId));
const [apps, setApps] = useState<IApp[]>(() => WidgetStore.instance.getApps(room.roomId));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this going to ignore the room changing? Why would we want that?

(am I forgetting something about this React feature again? 😅)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

room changing is accounted for by the useEffect(updateApps, [room, updateApps]); line after this. My only reason for this change was optimization, so that getApps doesn't get called on every render.

src/components/views/rooms/RoomHeader.tsx Show resolved Hide resolved
src/components/views/rooms/RoomHeader.tsx Show resolved Hide resolved
src/components/views/rooms/RoomHeader.tsx Outdated Show resolved Hide resolved
src/components/views/rooms/RoomHeader.tsx Show resolved Hide resolved
src/components/views/rooms/RoomHeader.tsx Outdated Show resolved Hide resolved
src/components/views/rooms/RoomHeader.tsx Outdated Show resolved Hide resolved
test/components/views/rooms/RoomHeader-test.tsx Outdated Show resolved Hide resolved
Copy link
Contributor

@SimonBrandner SimonBrandner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

src/components/views/rooms/RoomHeader.tsx Show resolved Hide resolved
@robintown robintown merged commit d077ea1 into matrix-org:develop Sep 25, 2022
odelcroi added a commit to tchapgouv/tchap-web-v4 that referenced this pull request Oct 5, 2022
* Device manager - select all devices ([\#9330](matrix-org/matrix-react-sdk#9330)). Contributed by @kerryarchibald.
* New group call experience: Call tiles ([\#9332](matrix-org/matrix-react-sdk#9332)).
* Add Shift key to FormatQuote keyboard shortcut ([\#9298](matrix-org/matrix-react-sdk#9298)). Contributed by @owi92.
* Device manager - sign out of multiple sessions ([\#9325](matrix-org/matrix-react-sdk#9325)). Contributed by @kerryarchibald.
* Display push toggle for web sessions (MSC3890) ([\#9327](matrix-org/matrix-react-sdk#9327)).
* Add device notifications enabled switch ([\#9324](matrix-org/matrix-react-sdk#9324)).
* Implement push notification toggle in device detail ([\#9308](matrix-org/matrix-react-sdk#9308)).
* New group call experience: Starting and ending calls ([\#9318](matrix-org/matrix-react-sdk#9318)).
* New group call experience: Room header call buttons ([\#9311](matrix-org/matrix-react-sdk#9311)).
* Make device ID copyable in device list ([\#9297](matrix-org/matrix-react-sdk#9297)). Contributed by @duxovni.
* Use display name instead of user ID when rendering power events ([\#9295](matrix-org/matrix-react-sdk#9295)).
* Read receipts for threads ([\#9239](matrix-org/matrix-react-sdk#9239)). Fixes #23191.
* Fix device selection in pre-join screen for Element Call video rooms ([\#9321](matrix-org/matrix-react-sdk#9321)). Fixes #23331.
* Don't render a 1px high room topic if the room topic is empty ([\#9317](matrix-org/matrix-react-sdk#9317)). Contributed by @Arnei.
* Don't show feedback prompts when that UIFeature is disabled ([\#9305](matrix-org/matrix-react-sdk#9305)). Fixes #23327.
* Fix soft crash around unknown room pills ([\#9301](matrix-org/matrix-react-sdk#9301)). Fixes matrix-org/element-web-rageshakes#15465.
* Fix spaces feedback prompt wrongly showing when feedback is disabled ([\#9302](matrix-org/matrix-react-sdk#9302)). Fixes #23314.
* Fix tile soft crash in ReplyInThreadButton ([\#9300](matrix-org/matrix-react-sdk#9300)). Fixes matrix-org/element-web-rageshakes#15493.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants