Calendar item context flyout implementation

This commit is contained in:
Burak Kaan Köse
2026-04-08 23:46:55 +02:00
parent 3dc4ac03ec
commit d6049bbd88
14 changed files with 602 additions and 12 deletions
@@ -0,0 +1,10 @@
namespace Wino.Core.Domain.Enums;
public enum CalendarContextMenuActionType
{
Open,
JoinOnline,
Delete,
ShowAs,
Respond
}
@@ -0,0 +1,10 @@
using System.Collections.Generic;
using Wino.Core.Domain.Entities.Calendar;
using Wino.Core.Domain.Models.Calendar;
namespace Wino.Core.Domain.Interfaces;
public interface ICalendarContextMenuItemService
{
IReadOnlyList<CalendarContextMenuItem> GetContextMenuItems(CalendarItem calendarItem);
}
@@ -0,0 +1,9 @@
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Calendar;
public sealed record CalendarContextMenuAction(
CalendarContextMenuActionType ActionType,
CalendarEventTargetType? TargetType = null,
CalendarItemShowAs? ShowAs = null,
CalendarItemStatus? ResponseStatus = null);
@@ -0,0 +1,14 @@
using System.Collections.Generic;
namespace Wino.Core.Domain.Models.Calendar;
public sealed record CalendarContextMenuItem(
CalendarContextMenuAction Action,
bool IsPrimary = false,
bool IsEnabled = true,
IReadOnlyList<CalendarContextMenuItem> ChildItems = null)
{
public IReadOnlyList<CalendarContextMenuItem> Children { get; init; } = ChildItems ?? [];
public bool HasChildren => Children.Count > 0;
}
@@ -192,6 +192,7 @@
"CalendarEventDetails_Organizer": "Organizer",
"CalendarEventDetails_People": "People",
"CalendarEventDetails_ReadOnlyEvent": "Read-only event",
"CalendarContextMenu_Respond": "Respond",
"CalendarEventDetails_Reminder": "Reminder",
"CalendarReminder_StartedHoursAgo": "Started {0} hours ago",
"CalendarReminder_StartedMinutesAgo": "Started {0} minutes ago",
@@ -207,7 +208,9 @@
"CalendarShowAs_Busy": "Busy",
"CalendarShowAs_OutOfOffice": "Out of Office",
"CalendarShowAs_WorkingElsewhere": "Working Elsewhere",
"CalendarContextMenu_AllEventsInSeries": "All events in the series",
"CalendarItem_DetailsPopup_JoinOnline": "Join online",
"CalendarContextMenu_ThisEventOnly": "This event only",
"CalendarItem_DetailsPopup_ViewEventButton": "View event",
"CalendarItem_DetailsPopup_ViewSeriesButton": "View series",
"CalendarDragDropMoveNotAllowedMessage": "Only events you own and can edit can be moved.",