Files
CT/src/index.tsx
T
2024-07-20 23:20:57 +02:00

54 lines
1.6 KiB
TypeScript

import "./base.css";
import "./colors.css";
import * as React from "bloatless-react";
import ChatListModel from "./Model/chatListModel";
import ChatListViewModel from "./ViewModel/chatListViewModel";
import { ChatPageWrapper } from "./View/chatPageWrapper";
import { ConnectionModal } from "./View/Modals/connectionModal";
import ConnectionModel from "./Model/connectionModel";
import ConnectionViewModel from "./ViewModel/connectionViewModel";
import { HomePage } from "./View/homePage";
import SettingsModel from "./Model/settingsModel";
import SettingsViewModel from "./ViewModel/settingsViewModel";
import StorageModel from "./Model/storageModel";
// models
const storageModel = new StorageModel();
const settingsModel = new SettingsModel(storageModel);
const connectionModel = new ConnectionModel(storageModel);
const chatListModel = new ChatListModel(
storageModel,
settingsModel,
connectionModel
);
storageModel.print();
// viewModels
const settingsViewModel = new SettingsViewModel(settingsModel);
const connectionViewModel = new ConnectionViewModel(connectionModel);
const chatListViewModel = new ChatListViewModel(
chatListModel,
storageModel,
settingsViewModel
);
// view
chatListViewModel.selectedChat.subscribe(() => {
document.body.toggleAttribute(
"showing-chat",
chatListViewModel.selectedChat.value != undefined
);
});
document.body.append(<div id="background"></div>);
document
.querySelector("main")!
.append(
HomePage(settingsViewModel, connectionViewModel, chatListViewModel),
ChatPageWrapper(chatListViewModel),
ConnectionModal(connectionViewModel)
);