Files
CT/src/index.tsx
T

60 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-07-20 14:54:52 +02:00
import "./base.css";
2024-07-20 18:10:42 +02:00
import "./colors.css";
2024-07-20 14:54:52 +02:00
import * as React from "bloatless-react";
2024-07-20 20:42:43 +02:00
import ChatListModel from "./Model/chatListModel";
2024-07-20 05:10:50 +02:00
import ChatListViewModel from "./ViewModel/chatListViewModel";
2024-07-20 14:16:26 +02:00
import { ChatPageWrapper } from "./View/chatPageWrapper";
2024-07-20 02:30:45 +02:00
import { ConnectionModal } from "./View/Modals/connectionModal";
2024-07-20 20:42:43 +02:00
import ConnectionModel from "./Model/connectionModel";
2024-07-20 02:18:15 +02:00
import ConnectionViewModel from "./ViewModel/connectionViewModel";
2024-07-19 23:45:07 +02:00
import { HomePage } from "./View/homePage";
2024-07-20 20:42:43 +02:00
import SettingsModel from "./Model/settingsModel";
import SettingsViewModel from "./ViewModel/settingsViewModel";
2024-07-19 19:23:48 +02:00
import StorageModel from "./Model/storageModel";
2024-07-19 23:45:07 +02:00
// models
2024-07-19 21:12:16 +02:00
const storageModel = new StorageModel();
2024-07-20 20:42:43 +02:00
const settingsModel = new SettingsModel(storageModel);
const connectionModel = new ConnectionModel(storageModel);
const chatListModel = new ChatListModel(
storageModel,
settingsModel,
connectionModel
);
2024-07-20 05:10:50 +02:00
storageModel.print();
2024-07-19 23:45:07 +02:00
// viewModels
2024-07-20 20:42:43 +02:00
const settingsViewModel = new SettingsViewModel(settingsModel);
const connectionViewModel = new ConnectionViewModel(connectionModel);
2024-07-20 21:04:41 +02:00
const chatListViewModel = new ChatListViewModel(
chatListModel,
storageModel,
settingsViewModel
);
2024-07-19 23:45:07 +02:00
// view
2024-07-20 23:20:57 +02:00
chatListViewModel.selectedChat.subscribe(() => {
document.body.toggleAttribute(
"showing-chat",
chatListViewModel.selectedChat.value != undefined
);
});
2024-07-21 02:49:04 +02:00
document.body.append(
<div id="background-wrapper">
<div id="sky"></div>
<div id="grass-1"></div>
<div id="grass-2"></div>
</div>
);
2024-07-20 02:18:15 +02:00
document
.querySelector("main")!
2024-07-20 02:30:45 +02:00
.append(
2024-07-20 05:10:50 +02:00
HomePage(settingsViewModel, connectionViewModel, chatListViewModel),
2024-07-20 14:16:26 +02:00
ChatPageWrapper(chatListViewModel),
2024-07-20 02:30:45 +02:00
ConnectionModal(connectionViewModel)
);