Files
CT/src/View/Components/boardEntry.tsx
T

33 lines
913 B
TypeScript
Raw Normal View History

2024-07-23 00:05:48 +02:00
import * as React from "bloatless-react";
2024-07-23 00:57:40 +02:00
import BoardViewModel from "../../ViewModel/Pages/boardViewModel";
import { allowDrop } from "../utility";
2024-07-23 00:05:48 +02:00
2024-07-23 00:57:40 +02:00
export function BoardEntry(boardViewModel: BoardViewModel) {
2024-07-23 00:05:48 +02:00
const view = (
2024-07-23 00:09:39 +02:00
<button
2024-07-23 00:57:40 +02:00
set:color={boardViewModel.color}
2024-07-23 00:09:39 +02:00
class="tile colored-tile"
2024-07-23 02:40:11 +02:00
toggle:selected={boardViewModel.isSelected}
on:click={boardViewModel.select}
on:dragover={allowDrop}
on:drop={boardViewModel.handleDropBetweenBoards}
2024-07-23 00:09:39 +02:00
>
2024-07-23 00:57:40 +02:00
<span class="shadow" subscribe:innerText={boardViewModel.name}></span>
<b subscribe:innerText={boardViewModel.name}></b>
2024-07-23 00:05:48 +02:00
</button>
);
2024-07-23 14:27:38 +02:00
boardViewModel.index.subscribe((newIndex) => {
view.style.order = newIndex;
});
2024-07-23 00:05:48 +02:00
return view;
}
export const BoardViewModelToEntry: React.StateItemConverter<BoardViewModel> = (
boardViewModel: BoardViewModel
) => {
2024-07-23 00:57:40 +02:00
return BoardEntry(boardViewModel);
2024-07-23 00:05:48 +02:00
};