consider board ids for selection

This commit is contained in:
marlon-erler
2024-07-23 13:51:27 +02:00
parent a06e4498b9
commit 52b9eef54c
5 changed files with 46 additions and 31 deletions
+21 -10
View File
@@ -9,20 +9,31 @@ export function TaskPage(taskPageViewModel: TaskPageViewModel) {
taskPageViewModel.loadData();
const paneContent = React.createProxyState(
[taskPageViewModel.selectedBoard],
[taskPageViewModel.selectedBoardId],
() => {
const selectedBoard = taskPageViewModel.selectedBoard.value;
if (selectedBoard == undefined) {
return [
const selectedBoardId = taskPageViewModel.selectedBoardId.value;
if (selectedBoardId == undefined) {
return (
<div class="pane align-center justify-center">
<span class="secondary">
{translations.chatPage.task.noBoardSelected}
</span>
</div>,
];
} else {
return BoardPage(selectedBoard);
</div>
);
}
const selectedBoard =
taskPageViewModel.boardViewModels.value.get(selectedBoardId);
if (selectedBoard == undefined) {
return (
<div class="pane align-center justify-center">
<span class="secondary">
{translations.chatPage.task.boardNotFound}
</span>
</div>
);
}
return BoardPage(selectedBoard);
}
);
@@ -66,8 +77,8 @@ export function TaskPage(taskPageViewModel: TaskPageViewModel) {
<div class="pane-wrapper" children:set={paneContent}></div>
);
React.bulkSubscribe([taskPageViewModel.selectedBoard], () => {
const selectedBoard = taskPageViewModel.selectedBoard.value;
React.bulkSubscribe([taskPageViewModel.selectedBoardId], () => {
const selectedBoard = taskPageViewModel.selectedBoardId.value;
if (selectedBoard == undefined) {
listPaneWrapper.scrollIntoView();
} else {
+1
View File
@@ -134,6 +134,7 @@ const englishTranslations = {
///
noBoardSelected: "No board selected",
boardNotFound: "Board not found",
///
+3 -2
View File
@@ -69,8 +69,9 @@ export default class BoardViewModel {
this.loadListRelevantData();
this.isSelected = React.createProxyState(
[this.taskPageViewModel.selectedBoard],
() => this.taskPageViewModel.selectedBoard.value == this
[this.taskPageViewModel.selectedBoardId],
() =>
this.taskPageViewModel.selectedBoardId.value == this.boardInfo.fileId
);
this.color.subscribeSilent((newColor) => {
+4 -4
View File
@@ -22,8 +22,8 @@ export default class TaskPageViewModel {
boardViewModels: React.MapState<BoardViewModel> = new React.MapState();
selectedBoard: React.State<BoardViewModel | undefined> = new React.State<
BoardViewModel | undefined
selectedBoardId: React.State<string | undefined> = new React.State<
string | undefined
>(undefined);
// guards
@@ -64,12 +64,12 @@ export default class TaskPageViewModel {
};
selectBoard = (boardViewModel: BoardViewModel): void => {
this.selectedBoard.value = boardViewModel;
this.selectedBoardId.value = boardViewModel.boardInfo.fileId;
this.chatViewModel.displayedColor.value = boardViewModel.color.value;
};
closeBoard = (): void => {
this.selectedBoard.value = undefined;
this.selectedBoardId.value = undefined;
this.chatViewModel.resetColor();
};