From d8b91f1c5e07a1aa30963977a145ff8ecde10a41 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 17 Jul 2023 03:14:38 +0200 Subject: Improve timeline --- .../TimelineComponents/BaseTimelineItem.razor | 15 ++++++ .../TimelineComponents/TimelineMemberItem.razor | 56 ++++++++++++---------- .../TimelineComponents/TimelineMessageItem.razor | 7 ++- .../TimelineRoomCreateItem.razor | 18 +++++++ .../TimelineComponents/TimelineUnknownItem.razor | 15 ++---- 5 files changed, 73 insertions(+), 38 deletions(-) create mode 100644 MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor create mode 100644 MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor (limited to 'MatrixRoomUtils.Web/Shared/TimelineComponents') diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor new file mode 100644 index 0000000..920a38d --- /dev/null +++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor @@ -0,0 +1,15 @@ +@using MatrixRoomUtils.Core.Responses +

BaseTimelineItem

+ +@code { + + [Parameter] + public StateEventResponse Event { get; set; } + + [Parameter] + public List Events { get; set; } + + [Parameter] + public AuthenticatedHomeServer HomeServer { get; set; } + +} diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor index 519e0b2..44eb06e 100644 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor +++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor @@ -1,39 +1,47 @@ @using MatrixRoomUtils.Core.Responses @using MatrixRoomUtils.Core.StateEventTypes @using MatrixRoomUtils.Core.StateEventTypes.Spec +@inherits BaseTimelineItem -@if (roomMemberData.Membership == "ban") { - @Event.StateKey was banned -} -else if (roomMemberData.Membership == "invite") { - @Event.StateKey was invited -} -else if (roomMemberData.Membership == "join") { - @if (Event.ReplacesState is not null) { - @Event.StateKey changed their display name to @(roomMemberData.Displayname ?? Event.Sender) +@if (roomMemberData is not null) { + @if (roomMemberData.Membership == "ban") { + @Event.StateKey was banned + } + else if (roomMemberData.Membership == "invite") { + @Event.StateKey was invited + } + else if (roomMemberData.Membership == "join") { + @if (Event.ReplacesState is not null) { + @Event.StateKey changed their display name to @(roomMemberData.Displayname ?? Event.Sender) + } + else { + joined + } + } + else if (roomMemberData.Membership == "leave") { + @Event.StateKey left + } + else if (roomMemberData.Membership == "knock") { + @Event.StateKey knocked } else { - joined + @Event.StateKey has an unknown state: +
+        @Event.ToJson()
+    
} } -else if (roomMemberData.Membership == "leave") { - @Event.StateKey left -} -else if (roomMemberData.Membership == "knock") { - @Event.StateKey knocked -} else { - @Event.StateKey has an unknown state: -
-        @Event.ToJson()
-    
+
+ Unknown membership event for @Event.StateKey +
+            @Event.ToJson()
+        
+
} @code { - [Parameter] - public StateEventResponse Event { get; set; } - private RoomMemberEventData? roomMemberData => Event.TypedContent as RoomMemberEventData; -} \ No newline at end of file +} diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor index b1ce146..bf0e083 100644 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor +++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor @@ -1,11 +1,10 @@ @using MatrixRoomUtils.Core.Responses +@inherits BaseTimelineItem +
     @ObjectExtensions.ToJson(Event.RawContent, indent: false)
 
@code { - [Parameter] - public StateEventResponse Event { get; set; } - -} \ No newline at end of file +} diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor new file mode 100644 index 0000000..de204a3 --- /dev/null +++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor @@ -0,0 +1,18 @@ +@using MatrixRoomUtils.Core.Responses +@using MatrixRoomUtils.Core.StateEventTypes.Spec +@inherits BaseTimelineItem + +

+ @Event.Sender created the room with room version @CreationEventContent.RoomVersion + @CreationEventContent.Federate ? "and" : "without" federating with other servers.
+ This room is of type @(CreationEventContent.Type ?? "Untyped room (usually a chat room)") +

+
+    @ObjectExtensions.ToJson(Event.RawContent, indent: false)
+
+ +@code { + + private RoomCreateEventData CreationEventContent => Event.TypedContent as RoomCreateEventData; + +} diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor index d8ea7e2..d0871c3 100644 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor +++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor @@ -1,20 +1,15 @@ -
+@inherits BaseTimelineItem +
- - Unknown event type:
@Event.Type
-
+ Unknown event type:
@Event.Type
-
-           @Event.ToJson()
-        
+
@Event.ToJson()
@code { - [Parameter] - public StateEvent Event { get; set; } -} \ No newline at end of file +} -- cgit 1.5.1