Skip to content

Commit 83627f6

Browse files
authored
Merge pull request #75 from element-hq/florianduros/room-list-header-sc
2 parents 2f187f1 + 94fc130 commit 83627f6

File tree

7 files changed

+96
-79
lines changed

7 files changed

+96
-79
lines changed

src/App.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@ import {
66
I18nContext,
77
useViewModel,
88
} from "@element-hq/web-shared-components";
9-
import { InlineSpinner } from "@vector-im/compound-web";
9+
import { TooltipProvider } from "@vector-im/compound-web";
1010
import { Client } from "./Client.tsx";
11+
import { useClientStoreContext } from "./context/ClientStoreContext";
12+
import { useClientStoresContext } from "./context/ClientStoresContext";
13+
import { useSessionStoreContext } from "./context/SessionStoreContext";
1114
import { Encryption } from "./Encryption.tsx";
1215
import { LoadingScreen } from "./LoadingScreen/LoadingScreen.tsx";
1316
import { Login } from "./Login.tsx";
1417
import { OidcCallback } from "./OidcCallback.tsx";
15-
import { I18nTest } from "./components/I18nTest.tsx";
16-
import { useClientStoreContext } from "./context/ClientStoreContext";
17-
import { useClientStoresContext } from "./context/ClientStoresContext";
18-
import { useSessionStoreContext } from "./context/SessionStoreContext";
1918
import { createI18nApi } from "./utils/i18nApi.ts";
2019
import { ClientViewModel } from "./viewmodel/ClientViewModel";
2120
import { ClientState } from "./viewmodel/client-view.types";
@@ -93,7 +92,7 @@ const App: React.FC = () => {
9392
return (
9493
<div className="mx_App">
9594
<I18nContext.Provider value={i18nApi}>
96-
{component}
95+
<TooltipProvider>{component}</TooltipProvider>
9796
</I18nContext.Provider>
9897
</div>
9998
);

src/Client.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
import type React from "react";
2-
import { useEffect } from "react";
32
import "./App.css";
43
import { useViewModel } from "@element-hq/web-shared-components";
5-
import { Composer } from "./Composer.tsx";
6-
import MemberListView from "./MemberList/MemberListView.tsx";
7-
import { RoomHeaderView } from "./RoomHeaderView";
8-
import { RoomListSearch } from "./RoomList";
4+
import { useClientStoreContext } from "./context/ClientStoreContext";
5+
import { RoomListHeader, RoomListSearch } from "./RoomList";
96
import { RoomListFiltersView } from "./RoomListFiltersView";
10-
import { RoomListHeaderView } from "./RoomListHeaderView";
117
import { RoomListView } from "./RoomListView";
128
import { RoomView } from "./RoomView";
139
import { SidePanelView } from "./SidePanelView.tsx";
1410
import { SplashView } from "./SplashView.tsx";
15-
import { Timeline } from "./Timeline.tsx";
16-
import { useClientStoreContext } from "./context/ClientStoreContext";
1711

1812
console.log("running Client.tsx");
1913

@@ -50,7 +44,7 @@ export const Client: React.FC<ClientProps> = ({ onAddAccount }) => {
5044
<RoomListSearch />
5145
{
5246
<>
53-
<RoomListHeaderView />
47+
<RoomListHeader />
5448
<RoomListFiltersView vm={roomListViewModel} />
5549
<RoomListView
5650
vm={roomListViewModel}

src/RoomList/RoomListHeader.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2026 Element Creations Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
5+
* Please see LICENSE files in the repository root for full details.
6+
*/
7+
8+
import {
9+
RoomListHeaderView,
10+
useCreateAutoDisposedViewModel,
11+
} from "@element-hq/web-shared-components";
12+
import { RoomListHeaderViewModel } from "./RoomListHeaderViewModel";
13+
14+
export function RoomListHeader() {
15+
const vm = useCreateAutoDisposedViewModel(
16+
() => new RoomListHeaderViewModel(),
17+
);
18+
19+
return <RoomListHeaderView vm={vm} />;
20+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*
2+
* Copyright 2026 Element Creations Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
5+
* Please see LICENSE files in the repository root for full details.
6+
*/
7+
8+
import {
9+
BaseViewModel,
10+
type RoomListHeaderViewModel as RoomListHeaderViewModelInterface,
11+
type RoomListHeaderViewSnapshot,
12+
} from "@element-hq/web-shared-components";
13+
14+
export class RoomListHeaderViewModel
15+
extends BaseViewModel<RoomListHeaderViewSnapshot, null>
16+
implements RoomListHeaderViewModelInterface
17+
{
18+
constructor() {
19+
super(null, {
20+
title: "Chats",
21+
displayComposeMenu: true,
22+
displaySpaceMenu: false,
23+
canCreateRoom: true,
24+
canCreateVideoRoom: true,
25+
canInviteInSpace: true,
26+
canAccessSpaceSettings: false,
27+
activeSortOption: "recent",
28+
isMessagePreviewEnabled: false,
29+
});
30+
}
31+
32+
createChatRoom(): void {
33+
// TODO: Implement create chat room logic here
34+
}
35+
36+
createRoom(): void {
37+
// TODO: Implement create room logic here
38+
}
39+
40+
createVideoRoom(): void {
41+
// TODO: Implement create video room logic here
42+
}
43+
44+
openSpaceHome(): void {
45+
// TODO: Implement open space home logic here
46+
}
47+
48+
inviteInSpace(): void {
49+
// TODO: Implement invite in space logic here
50+
}
51+
52+
openSpacePreferences(): void {
53+
// TODO: Implement open space preferences logic here
54+
}
55+
56+
openSpaceSettings(): void {
57+
// TODO: Implement open space settings logic here
58+
}
59+
60+
sort(): void {
61+
// TODO: Implement sort logic here
62+
}
63+
64+
toggleMessagePreview(): void {
65+
// TODO: Implement toggle message preview logic here
66+
}
67+
}

src/RoomList/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@
55
* Please see LICENSE files in the repository root for full details.
66
*/
77

8+
export { RoomListHeader } from "./RoomListHeader";
89
export { RoomListSearch } from "./RoomListSearch";

src/RoomListHeaderView.css

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/RoomListHeaderView.tsx

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)