allow selection of files to transfer

This commit is contained in:
marlon-erler
2024-07-27 19:40:16 +02:00
parent a3d6e448ed
commit f8ed893f79
3 changed files with 45 additions and 8 deletions
+25 -4
View File
@@ -10,6 +10,12 @@ import { translations } from "../translations";
export function FileTransferModal(
fileTransferViewModel: FileTransferViewModel
) {
const OptionConverter: React.StateItemConverter<FileTransferOption> = (
fileOption: FileTransferOption
) => {
return FileOption(fileOption, fileTransferViewModel);
};
return (
<div
class="modal"
@@ -29,7 +35,7 @@ export function FileTransferModal(
class="flex-column gap content-margin-bottom"
children:append={[
fileTransferViewModel.generalFileOptions,
FileOption,
OptionConverter,
]}
></div>
@@ -38,7 +44,7 @@ export function FileTransferModal(
class="flex-column gap"
children:append={[
fileTransferViewModel.chatFileOptions,
FileOption,
OptionConverter,
]}
></div>
</main>
@@ -62,9 +68,24 @@ export function FileTransferModal(
);
}
function FileOption(fileOption: FileTransferOption) {
function FileOption(
fileOption: FileTransferOption,
fileTransferViewModel: FileTransferViewModel
) {
const isSelected = new React.State(false);
isSelected.subscribeSilent((isSelected) => {
if (isSelected == true) {
fileTransferViewModel.selectedPaths.add(fileOption.path);
} else {
fileTransferViewModel.selectedPaths.remove(fileOption.path);
}
});
function toggle() {
isSelected.value = !isSelected.value;
}
return (
<button class="tile">
<button class="tile" toggle:selected={isSelected} on:click={toggle}>
<div>
<b class="ellipsis">{fileOption.label}</b>
<span class="secondary ellipsis">
@@ -19,6 +19,7 @@ export default class FileTransferViewModel {
generalFileOptions: React.ListState<FileTransferOption> =
new React.ListState();
chatFileOptions: React.ListState<FileTransferOption> = new React.ListState();
selectedPaths: React.ListState<string[]> = new React.ListState();
// methods
getOptions = (): void => {