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
+17 -15
View File
@@ -1438,8 +1438,8 @@
this.boardInfo = boardInfo; this.boardInfo = boardInfo;
this.loadListRelevantData(); this.loadListRelevantData();
this.isSelected = createProxyState( this.isSelected = createProxyState(
[this.taskPageViewModel.selectedBoard], [this.taskPageViewModel.selectedBoardId],
() => this.taskPageViewModel.selectedBoard.value == this () => this.taskPageViewModel.selectedBoardId.value == this.boardInfo.fileId
); );
this.color.subscribeSilent((newColor) => { this.color.subscribeSilent((newColor) => {
this.applyColor(newColor); this.applyColor(newColor);
@@ -1455,7 +1455,7 @@
// state // state
newBoardNameInput = new State(""); newBoardNameInput = new State("");
boardViewModels = new MapState(); boardViewModels = new MapState();
selectedBoard = new State(void 0); selectedBoardId = new State(void 0);
// guards // guards
cannotCreateBoard = createProxyState( cannotCreateBoard = createProxyState(
[this.newBoardNameInput], [this.newBoardNameInput],
@@ -1483,11 +1483,11 @@
this.boardViewModels.set(boardInfo.fileId, boardViewModel); this.boardViewModels.set(boardInfo.fileId, boardViewModel);
}; };
selectBoard = (boardViewModel) => { selectBoard = (boardViewModel) => {
this.selectedBoard.value = boardViewModel; this.selectedBoardId.value = boardViewModel.boardInfo.fileId;
this.chatViewModel.displayedColor.value = boardViewModel.color.value; this.chatViewModel.displayedColor.value = boardViewModel.color.value;
}; };
closeBoard = () => { closeBoard = () => {
this.selectedBoard.value = void 0; this.selectedBoardId.value = void 0;
this.chatViewModel.resetColor(); this.chatViewModel.resetColor();
}; };
// load // load
@@ -1766,6 +1766,7 @@
createBoardButtonAudioLabel: "create board", createBoardButtonAudioLabel: "create board",
/// ///
noBoardSelected: "No board selected", noBoardSelected: "No board selected",
boardNotFound: "Board not found",
/// ///
closeBoard: "close board", closeBoard: "close board",
showBoardSettingsButtonAudioLabel: "show board settigns", showBoardSettingsButtonAudioLabel: "show board settigns",
@@ -2085,16 +2086,17 @@
function TaskPage(taskPageViewModel) { function TaskPage(taskPageViewModel) {
taskPageViewModel.loadData(); taskPageViewModel.loadData();
const paneContent = createProxyState( const paneContent = createProxyState(
[taskPageViewModel.selectedBoard], [taskPageViewModel.selectedBoardId],
() => { () => {
const selectedBoard = taskPageViewModel.selectedBoard.value; const selectedBoardId = taskPageViewModel.selectedBoardId.value;
if (selectedBoard == void 0) { if (selectedBoardId == void 0) {
return [ return /* @__PURE__ */ createElement("div", { class: "pane align-center justify-center" }, /* @__PURE__ */ createElement("span", { class: "secondary" }, translations.chatPage.task.noBoardSelected));
/* @__PURE__ */ createElement("div", { class: "pane align-center justify-center" }, /* @__PURE__ */ createElement("span", { class: "secondary" }, translations.chatPage.task.noBoardSelected))
];
} else {
return BoardPage(selectedBoard);
} }
const selectedBoard = taskPageViewModel.boardViewModels.value.get(selectedBoardId);
if (selectedBoard == void 0) {
return /* @__PURE__ */ createElement("div", { class: "pane align-center justify-center" }, /* @__PURE__ */ createElement("span", { class: "secondary" }, translations.chatPage.task.boardNotFound));
}
return BoardPage(selectedBoard);
} }
); );
const listPaneWrapper = /* @__PURE__ */ createElement("div", { class: "pane-wrapper side" }, /* @__PURE__ */ createElement("div", { class: "pane" }, /* @__PURE__ */ createElement("div", { class: "toolbar" }, /* @__PURE__ */ createElement("div", { class: "flex-row width-input" }, /* @__PURE__ */ createElement( const listPaneWrapper = /* @__PURE__ */ createElement("div", { class: "pane-wrapper side" }, /* @__PURE__ */ createElement("div", { class: "pane" }, /* @__PURE__ */ createElement("div", { class: "toolbar" }, /* @__PURE__ */ createElement("div", { class: "flex-row width-input" }, /* @__PURE__ */ createElement(
@@ -2125,8 +2127,8 @@
} }
)))); ))));
const mainPageWrapper = /* @__PURE__ */ createElement("div", { class: "pane-wrapper", "children:set": paneContent }); const mainPageWrapper = /* @__PURE__ */ createElement("div", { class: "pane-wrapper", "children:set": paneContent });
bulkSubscribe([taskPageViewModel.selectedBoard], () => { bulkSubscribe([taskPageViewModel.selectedBoardId], () => {
const selectedBoard = taskPageViewModel.selectedBoard.value; const selectedBoard = taskPageViewModel.selectedBoardId.value;
if (selectedBoard == void 0) { if (selectedBoard == void 0) {
listPaneWrapper.scrollIntoView(); listPaneWrapper.scrollIntoView();
} else { } else {
+21 -10
View File
@@ -9,20 +9,31 @@ export function TaskPage(taskPageViewModel: TaskPageViewModel) {
taskPageViewModel.loadData(); taskPageViewModel.loadData();
const paneContent = React.createProxyState( const paneContent = React.createProxyState(
[taskPageViewModel.selectedBoard], [taskPageViewModel.selectedBoardId],
() => { () => {
const selectedBoard = taskPageViewModel.selectedBoard.value; const selectedBoardId = taskPageViewModel.selectedBoardId.value;
if (selectedBoard == undefined) { if (selectedBoardId == undefined) {
return [ return (
<div class="pane align-center justify-center"> <div class="pane align-center justify-center">
<span class="secondary"> <span class="secondary">
{translations.chatPage.task.noBoardSelected} {translations.chatPage.task.noBoardSelected}
</span> </span>
</div>, </div>
]; );
} else {
return BoardPage(selectedBoard);
} }
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> <div class="pane-wrapper" children:set={paneContent}></div>
); );
React.bulkSubscribe([taskPageViewModel.selectedBoard], () => { React.bulkSubscribe([taskPageViewModel.selectedBoardId], () => {
const selectedBoard = taskPageViewModel.selectedBoard.value; const selectedBoard = taskPageViewModel.selectedBoardId.value;
if (selectedBoard == undefined) { if (selectedBoard == undefined) {
listPaneWrapper.scrollIntoView(); listPaneWrapper.scrollIntoView();
} else { } else {
+1
View File
@@ -134,6 +134,7 @@ const englishTranslations = {
/// ///
noBoardSelected: "No board selected", noBoardSelected: "No board selected",
boardNotFound: "Board not found",
/// ///
+3 -2
View File
@@ -69,8 +69,9 @@ export default class BoardViewModel {
this.loadListRelevantData(); this.loadListRelevantData();
this.isSelected = React.createProxyState( this.isSelected = React.createProxyState(
[this.taskPageViewModel.selectedBoard], [this.taskPageViewModel.selectedBoardId],
() => this.taskPageViewModel.selectedBoard.value == this () =>
this.taskPageViewModel.selectedBoardId.value == this.boardInfo.fileId
); );
this.color.subscribeSilent((newColor) => { this.color.subscribeSilent((newColor) => {
+4 -4
View File
@@ -22,8 +22,8 @@ export default class TaskPageViewModel {
boardViewModels: React.MapState<BoardViewModel> = new React.MapState(); boardViewModels: React.MapState<BoardViewModel> = new React.MapState();
selectedBoard: React.State<BoardViewModel | undefined> = new React.State< selectedBoardId: React.State<string | undefined> = new React.State<
BoardViewModel | undefined string | undefined
>(undefined); >(undefined);
// guards // guards
@@ -64,12 +64,12 @@ export default class TaskPageViewModel {
}; };
selectBoard = (boardViewModel: BoardViewModel): void => { selectBoard = (boardViewModel: BoardViewModel): void => {
this.selectedBoard.value = boardViewModel; this.selectedBoardId.value = boardViewModel.boardInfo.fileId;
this.chatViewModel.displayedColor.value = boardViewModel.color.value; this.chatViewModel.displayedColor.value = boardViewModel.color.value;
}; };
closeBoard = (): void => { closeBoard = (): void => {
this.selectedBoard.value = undefined; this.selectedBoardId.value = undefined;
this.chatViewModel.resetColor(); this.chatViewModel.resetColor();
}; };