add dag&drop for calendar
This commit is contained in:
@@ -3,7 +3,7 @@ import * as React from "bloatless-react";
|
||||
import { Chat, MessageObject, MessageObjectWithIndex } from "../../Model/chatModel";
|
||||
|
||||
import { DayView } from "./dayView";
|
||||
import { MiniatureDayView } from "./miniatureDayView";
|
||||
import { MonthGridCell } from "./monthGridCell";
|
||||
import { dayInCalendar } from "../../Model/model";
|
||||
import { translation } from "../../translations";
|
||||
|
||||
@@ -76,7 +76,7 @@ export function CalendarView(
|
||||
// add day views
|
||||
while (currentDate.getUTCMonth() == newSelectedDate.getUTCMonth()) {
|
||||
monthGridCells.value.push(
|
||||
MiniatureDayView(chat, messageObjects, currentDate)
|
||||
MonthGridCell(chat, messageObjects, currentDate)
|
||||
);
|
||||
currentDate.setDate(currentDate.getDate() + 1);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import { Chat, MessageObject, MessageObjectWithIndex } from "../../Model/chatMod
|
||||
import { dayInCalendar } from "../../Model/model";
|
||||
import { getRawObjectIndex } from "../../utility";
|
||||
|
||||
export function MiniatureDayView(
|
||||
export function MonthGridCell(
|
||||
chat: Chat,
|
||||
messageObjects:
|
||||
| React.ListState<MessageObjectWithIndex>
|
||||
@@ -56,9 +56,29 @@ export function MiniatureDayView(
|
||||
return view;
|
||||
};
|
||||
|
||||
function dragOver(event: DragEvent) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
function drop(event: DragEvent) {
|
||||
event.preventDefault();
|
||||
var id = event.dataTransfer?.getData("text");
|
||||
if (!id) return;
|
||||
|
||||
const messageObject = chat.objects.value.get(id);
|
||||
if (!messageObject) return;
|
||||
|
||||
const newContent = chat.createObjectContent();
|
||||
newContent.date = dateString;
|
||||
chat.updateObjectContent(messageObject, newContent);
|
||||
chat.addObjectAndSend(messageObject);
|
||||
}
|
||||
|
||||
return (
|
||||
<button
|
||||
on:click={select}
|
||||
on:dragover={dragOver}
|
||||
on:drop={drop}
|
||||
toggle:selected={isSelected}
|
||||
toggle:today={isToday}
|
||||
class="day-miniature tile flex-column align-start"
|
||||
Reference in New Issue
Block a user