fix board context management, cleanup
This commit is contained in:
@@ -16,8 +16,6 @@ import TaskViewModel from "./taskViewModel";
|
||||
import { CommonKeys } from "../../View/keystrokes";
|
||||
|
||||
export default class BoardViewModel extends TaskContainingPageViewModel {
|
||||
contextDebugDescription = "board";
|
||||
|
||||
// state
|
||||
name: React.State<string> = new React.State("");
|
||||
color: React.State<Colors> = new React.State<any>(Colors.Standard);
|
||||
@@ -255,7 +253,7 @@ export default class BoardViewModel extends TaskContainingPageViewModel {
|
||||
public readonly taskPageViewModel: TaskPageViewModel,
|
||||
public readonly boardInfo: BoardInfoFileContent,
|
||||
) {
|
||||
super(coreViewModel, chatViewModel, boardsAndTasksModel);
|
||||
super(coreViewModel, chatViewModel, boardsAndTasksModel, "board");
|
||||
|
||||
// load
|
||||
this.loadListRelevantData();
|
||||
|
||||
@@ -14,8 +14,6 @@ import { CommonKeys } from "../../View/keystrokes";
|
||||
export const CALENDAR_EVENT_BOARD_ID = "events";
|
||||
|
||||
export default class CalendarPageViewModel extends TaskContainingPageViewModel {
|
||||
contextDebugDescription = "calendar";
|
||||
|
||||
// data
|
||||
get monthString(): string {
|
||||
return CalendarModel.getMonthString(
|
||||
@@ -190,7 +188,7 @@ export default class CalendarPageViewModel extends TaskContainingPageViewModel {
|
||||
public readonly calendarModel: CalendarModel,
|
||||
public readonly boardsAndTasksModel: BoardsAndTasksModel,
|
||||
) {
|
||||
super(coreViewModel, chatViewModel, boardsAndTasksModel);
|
||||
super(coreViewModel, chatViewModel, boardsAndTasksModel, "calendar");
|
||||
|
||||
this.calendarModel = calendarModel;
|
||||
this.boardsAndTasksModel = boardsAndTasksModel;
|
||||
|
||||
@@ -6,8 +6,6 @@ import SettingsViewModel from "../Global/settingsViewModel";
|
||||
import StorageViewModel from "../Global/storageViewModel";
|
||||
|
||||
export default class HomeViewModel extends Context {
|
||||
contextDebugDescription = "home";
|
||||
|
||||
constructor(
|
||||
public readonly coreViewModel: CoreViewModel,
|
||||
public readonly settingsViewModel: SettingsViewModel,
|
||||
@@ -15,7 +13,7 @@ export default class HomeViewModel extends Context {
|
||||
public readonly storageViewModel: StorageViewModel,
|
||||
public readonly connectionViewModel: ConnectionViewModel,
|
||||
) {
|
||||
super();
|
||||
super("home");
|
||||
|
||||
this.coreViewModel.context = this;
|
||||
|
||||
|
||||
@@ -13,8 +13,6 @@ import { v4 } from "uuid";
|
||||
import { CommonKeys } from "../../View/keystrokes";
|
||||
|
||||
export default class MessagePageViewModel extends Context {
|
||||
contextDebugDescription = "message-page";
|
||||
|
||||
// state
|
||||
chatMessageViewModels: React.MapState<ChatMessageViewModel> =
|
||||
new React.MapState();
|
||||
@@ -130,7 +128,7 @@ export default class MessagePageViewModel extends Context {
|
||||
public readonly coreViewModel: CoreViewModel,
|
||||
public readonly chatViewModel: ChatViewModel,
|
||||
) {
|
||||
super();
|
||||
super("message-page");
|
||||
|
||||
// states
|
||||
this.cannotSendMessage = React.createProxyState(
|
||||
|
||||
@@ -5,8 +5,6 @@ import { Colors } from "../../colors";
|
||||
import CoreViewModel, { Context } from "../Global/coreViewModel";
|
||||
|
||||
export default class SettingsPageViewModel extends Context {
|
||||
contextDebugDescription = "settings";
|
||||
|
||||
// state
|
||||
primaryChannel: React.State<string> = new React.State("");
|
||||
primaryChannelInput: React.State<string> = new React.State("");
|
||||
@@ -115,7 +113,7 @@ export default class SettingsPageViewModel extends Context {
|
||||
public readonly coreViewModel: CoreViewModel,
|
||||
public readonly chatViewModel: ChatViewModel,
|
||||
) {
|
||||
super();
|
||||
super("settings");
|
||||
|
||||
this.loadListRelevantData();
|
||||
|
||||
|
||||
@@ -59,7 +59,8 @@ export default class TaskContainingPageViewModel extends Context {
|
||||
public readonly coreViewModel: CoreViewModel,
|
||||
public readonly chatViewModel: ChatViewModel,
|
||||
public readonly boardsAndTasksModel: BoardsAndTasksModel,
|
||||
contextDebugDescription: string,
|
||||
) {
|
||||
super();
|
||||
super(contextDebugDescription);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,8 +11,6 @@ import { IndexManager } from "../../Model/Utility/utility";
|
||||
import { CommonKeys } from "../../View/keystrokes";
|
||||
|
||||
export default class TaskPageViewModel extends ContextHost<string> {
|
||||
contextDebugDescription = "task-page";
|
||||
|
||||
// data
|
||||
readonly boardIndexManager = new IndexManager<BoardViewModel>(
|
||||
(boardViewModel: BoardViewModel) => boardViewModel.name.value,
|
||||
@@ -145,6 +143,8 @@ export default class TaskPageViewModel extends ContextHost<string> {
|
||||
|
||||
// load
|
||||
loadData = (): void => {
|
||||
console.log("LOADING TASK PAGE DATA");
|
||||
this.closeContext();
|
||||
this.boardViewModels.clear();
|
||||
|
||||
const boardIds: string[] = this.boardsAndTasksModel.listBoardIds();
|
||||
@@ -166,7 +166,7 @@ export default class TaskPageViewModel extends ContextHost<string> {
|
||||
public readonly chatViewModel: ChatViewModel,
|
||||
public readonly boardsAndTasksModel: BoardsAndTasksModel,
|
||||
) {
|
||||
super();
|
||||
super("task-page");
|
||||
|
||||
this.chatViewModel = chatViewModel;
|
||||
|
||||
@@ -174,17 +174,20 @@ export default class TaskPageViewModel extends ContextHost<string> {
|
||||
this.chatViewModel.registerContext(ChatPageTypes.Tasks, this);
|
||||
this.selectedBoardId.subscribeSilent(this.updateContexts);
|
||||
|
||||
this.loadData();
|
||||
|
||||
// handlers
|
||||
boardsAndTasksModel.boardHandlerManager.addHandler(
|
||||
(boardInfoFileContent: BoardInfoFileContent) => {
|
||||
this.showBoardInList(boardInfoFileContent);
|
||||
this.updateBoardIndices();
|
||||
this.updateContexts();
|
||||
},
|
||||
);
|
||||
|
||||
this.chatViewModel.currentContext.subscribeSilent((context) => {
|
||||
if (!this.isOpen) return;
|
||||
if (context != this) return;
|
||||
this.openLastUsedBoard();
|
||||
});
|
||||
|
||||
// keystrokes
|
||||
this.registerKeyStroke(CommonKeys.Options, this.toggleBoardList);
|
||||
}
|
||||
|
||||
@@ -13,8 +13,6 @@ import { v4 } from "uuid";
|
||||
import { CommonKeys } from "../../View/keystrokes";
|
||||
|
||||
export default class TaskViewModel extends Context {
|
||||
contextDebugDescription = "task";
|
||||
|
||||
// util
|
||||
get sortingString(): string {
|
||||
const splitDate: string[] = this.date.value.split("-");
|
||||
@@ -87,7 +85,6 @@ export default class TaskViewModel extends Context {
|
||||
|
||||
// view
|
||||
open = (): void => {
|
||||
console.log(this);
|
||||
this.coreViewModel.context = this;
|
||||
this.containingModel.selectTask(this);
|
||||
};
|
||||
@@ -219,7 +216,7 @@ export default class TaskViewModel extends Context {
|
||||
public readonly containingModel: TaskContainingPageViewModel,
|
||||
public task: TaskFileContent,
|
||||
) {
|
||||
super();
|
||||
super("task");
|
||||
|
||||
// load
|
||||
this.loadAllData();
|
||||
|
||||
Reference in New Issue
Block a user