Files
CT/src/index.tsx
T

117 lines
4.0 KiB
TypeScript
Raw Normal View History

2026-09-22 21:57:22 +02:00
import * as React from "./react";
2024-07-20 18:10:42 +02:00
import "./colors.css";
2024-07-23 00:09:39 +02:00
import "./coloredTile.css";
2026-04-18 11:55:01 +00:00
import "./base.css";
import HomeViewModel from "./ViewModel/Pages/homeViewModel";
import StorageViewModel from "./ViewModel/Global/storageViewModel";
import SettingsViewModel from "./ViewModel/Global/settingsViewModel";
2026-09-29 21:15:11 +02:00
import OnboardingViewModel from "./ViewModel/Global/onboardingViewModel";
2024-07-27 19:13:59 +02:00
import FileTransferViewModel from "./ViewModel/Global/fileTransferViewModel";
2026-04-18 11:55:01 +00:00
import CoreViewModel from "./ViewModel/Global/coreViewModel";
2026-09-28 15:21:50 +02:00
import ContactListViewModel from "./ViewModel/Global/contactViewModel";
2026-04-18 11:55:01 +00:00
import ConnectionViewModel from "./ViewModel/Global/connectionViewModel";
import ChatListViewModel from "./ViewModel/Chat/chatListViewModel";
2024-07-19 23:45:07 +02:00
import { HomePage } from "./View/homePage";
2026-04-18 11:55:01 +00:00
import { ChatPageWrapper } from "./View/chatPageWrapper";
2024-07-21 17:55:53 +02:00
import { StorageModal } from "./View/Modals/storageModal";
2026-04-08 20:39:12 +00:00
import { SettingsModal } from "./View/Modals/settingsModal";
2026-09-29 21:15:11 +02:00
import { OnboardingModalWrapper } from "./View/Modals/onboardingModal";
2026-04-18 11:55:01 +00:00
import { DataTransferModalWrapper } from "./View/Modals/dataTransferModal";
import { ConnectionModal } from "./View/Modals/connectionModal";
import StorageModel from "./Model/Global/storageModel";
import SettingsModel from "./Model/Global/settingsModel";
import FileTransferModel from "./Model/Global/fileTransferModel";
2026-09-28 15:21:50 +02:00
import ContactListModel from "./Model/Global/contactListModel";
2026-04-18 11:55:01 +00:00
import ConnectionModel from "./Model/Global/connectionModel";
import ChatListModel from "./Model/Chat/chatListModel";
2024-07-19 19:23:48 +02:00
2024-07-19 23:45:07 +02:00
// models
2024-07-19 21:12:16 +02:00
const storageModel = new StorageModel();
const settingsModel = new SettingsModel(storageModel);
const contactListModel = new ContactListModel(storageModel, settingsModel);
2024-07-20 20:42:43 +02:00
const connectionModel = new ConnectionModel(storageModel);
const chatListModel = new ChatListModel(
2026-04-01 08:29:39 +00:00
storageModel,
settingsModel,
connectionModel,
contactListModel,
2024-07-20 20:42:43 +02:00
);
2024-07-27 17:03:52 +02:00
const fileTransferModel = new FileTransferModel(storageModel, connectionModel);
// viewModels
const coreViewModel = new CoreViewModel(
storageModel,
settingsModel,
2026-04-01 08:29:39 +00:00
connectionModel,
chatListModel,
fileTransferModel,
2024-07-25 16:02:49 +02:00
);
const storageViewModel = new StorageViewModel(coreViewModel);
const settingsViewModel = new SettingsViewModel(coreViewModel, settingsModel);
2026-09-28 15:21:50 +02:00
const contactListViewModel = new ContactListViewModel(
contactListModel,
settingsViewModel,
);
const connectionViewModel = new ConnectionViewModel(coreViewModel);
2024-07-20 21:04:41 +02:00
const chatListViewModel = new ChatListViewModel(
coreViewModel,
2026-04-01 08:29:39 +00:00
settingsViewModel,
connectionViewModel,
2026-09-27 03:01:43 +02:00
contactListViewModel,
2024-07-20 21:04:41 +02:00
);
const fileTransferViewModel = new FileTransferViewModel(coreViewModel);
2026-09-29 21:15:11 +02:00
const onboardingViewModel = new OnboardingViewModel(
connectionViewModel,
fileTransferViewModel,
settingsViewModel,
);
2026-04-12 19:20:37 +00:00
const homeViewModel = new HomeViewModel(
coreViewModel,
settingsViewModel,
fileTransferViewModel,
storageViewModel,
connectionViewModel,
);
2024-07-19 23:45:07 +02:00
// view
2024-07-20 23:20:57 +02:00
chatListViewModel.selectedChat.subscribe(() => {
2026-04-01 08:29:39 +00:00
document.body.toggleAttribute(
"showing-chat",
chatListViewModel.selectedChat.value != undefined,
);
2024-07-20 23:20:57 +02:00
});
2024-07-21 02:49:04 +02:00
document.body.append(
2026-04-01 08:29:39 +00:00
<div id="background-wrapper">
2026-09-30 18:57:09 +02:00
<div>
<div id="sky"></div>
<div id="grass-1"></div>
<div id="grass-2"></div>
</div>
2026-04-01 08:29:39 +00:00
</div>,
2024-07-21 02:49:04 +02:00
);
2024-07-20 02:18:15 +02:00
document
2026-04-01 08:29:39 +00:00
.querySelector("main")!
.append(
2026-09-30 18:57:09 +02:00
HomePage(
coreViewModel,
storageViewModel,
settingsViewModel,
connectionViewModel,
fileTransferViewModel,
chatListViewModel,
),
ChatPageWrapper(coreViewModel, chatListViewModel),
OnboardingModalWrapper(coreViewModel, onboardingViewModel),
ConnectionModal(coreViewModel, connectionViewModel),
DataTransferModalWrapper(
coreViewModel,
connectionViewModel,
fileTransferViewModel,
),
StorageModal(coreViewModel, storageViewModel),
SettingsModal(coreViewModel, settingsViewModel),
2026-04-01 19:00:16 +00:00
);