Files
CT/src/View/chatPage.tsx
T

85 lines
2.4 KiB
TypeScript
Raw Normal View History

2024-07-20 14:16:26 +02:00
import "./homePage.css";
import * as React from "bloatless-react";
2024-07-22 20:02:13 +02:00
import ChatViewModel, { ChatPageType } from "../ViewModel/Chat/chatViewModel";
2024-07-20 16:28:00 +02:00
import { CalendarPage } from "./ChatPages/calendarPage";
2024-07-20 16:28:00 +02:00
import { ChatViewToggleButton } from "./Components/chatViewToggleButton";
2024-07-20 17:19:10 +02:00
import { MessagePage } from "./ChatPages/messagePage";
import { SettingsPage } from "./ChatPages/settingsPage";
2024-07-22 13:17:21 +02:00
import { TaskPage } from "./ChatPages/taskPage";
2024-07-20 14:16:26 +02:00
import { translations } from "./translations";
export function ChatPage(chatViewModel: ChatViewModel) {
2024-07-23 21:52:16 +02:00
const mainContent = React.createProxyState(
[chatViewModel.selectedPage],
() => {
chatViewModel.closeSubPages();
2024-07-20 17:19:10 +02:00
2024-07-23 21:52:16 +02:00
switch (chatViewModel.selectedPage.value) {
case ChatPageType.Settings: {
return SettingsPage(chatViewModel.settingsPageViewModel);
}
case ChatPageType.Tasks: {
return TaskPage(chatViewModel.taskPageViewModel);
}
case ChatPageType.Calendar: {
return CalendarPage(chatViewModel.calendarViewModel)
}
2024-07-23 21:52:16 +02:00
default: {
return MessagePage(chatViewModel.messagePageViewModel);
}
2024-07-22 21:07:44 +02:00
}
2024-07-20 17:19:10 +02:00
}
2024-07-23 21:52:16 +02:00
);
2024-07-20 17:19:10 +02:00
2024-07-20 14:16:26 +02:00
return (
2024-07-22 13:17:21 +02:00
<article
id="chat-page"
2024-07-23 02:50:22 +02:00
set:color={chatViewModel.displayedColor}
2024-07-22 13:17:21 +02:00
class="subtle-background"
>
2024-07-20 15:18:11 +02:00
<div>
<div id="ribbon">
2024-07-20 19:26:13 +02:00
<button
class="ghost"
aria-label={translations.chatPage.closeChatAudioLabe}
on:click={chatViewModel.close}
>
<span class="icon">close</span>
</button>
2024-07-20 16:28:00 +02:00
<span>
{ChatViewToggleButton(
translations.chatPage.pages.calendar,
"calendar_month",
ChatPageType.Calendar,
chatViewModel
)}
{ChatViewToggleButton(
2024-07-22 13:17:21 +02:00
translations.chatPage.pages.tasks,
"task_alt",
ChatPageType.Tasks,
2024-07-20 16:28:00 +02:00
chatViewModel
)}
{ChatViewToggleButton(
translations.chatPage.pages.messages,
"forum",
ChatPageType.Messages,
chatViewModel
)}
{ChatViewToggleButton(
translations.chatPage.pages.settings,
"settings",
ChatPageType.Settings,
chatViewModel
)}
</span>
</div>
2024-07-20 17:19:10 +02:00
<div id="main" children:set={mainContent}></div>
2024-07-20 15:18:11 +02:00
</div>
2024-07-20 14:16:26 +02:00
</article>
);
}