consider board ids for selection
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -134,6 +134,7 @@ const englishTranslations = {
|
||||
///
|
||||
|
||||
noBoardSelected: "No board selected",
|
||||
boardNotFound: "Board not found",
|
||||
|
||||
///
|
||||
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user