about summary refs log tree commit diff
path: root/MatrixRoomUtils.Web/Shared/TimelineComponents
diff options
context:
space:
mode:
Diffstat (limited to 'MatrixRoomUtils.Web/Shared/TimelineComponents')
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor33
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineCanonicalAliasItem.razor27
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineHistoryVisibilityItem.razor27
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor53
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor34
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor18
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomNameItem.razor27
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomTopicItem.razor37
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor16
9 files changed, 0 insertions, 272 deletions
diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor
deleted file mode 100644

index 8d608e3..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor +++ /dev/null
@@ -1,33 +0,0 @@ -@using LibMatrix -@using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Homeservers -@using LibMatrix.Responses -<h3>BaseTimelineItem</h3> - -@code { - - [Parameter] - public StateEventResponse Event { get; set; } - - [Parameter] - public List<StateEventResponse> Events { get; set; } - - [Parameter] - public AuthenticatedHomeserverGeneric Homeserver { get; set; } - - public List<StateEventResponse> EventsBefore => Events.TakeWhile(e => e.EventId != Event.EventId).ToList(); - - public List<StateEventResponse> MatchingEventsBefore => EventsBefore.Where(x => x.Type == Event.Type && x.StateKey == Event.StateKey).ToList(); - - public StateEventResponse? PreviousState => MatchingEventsBefore.LastOrDefault(); - - public RoomMemberEventContent? CurrentSenderMemberEventContent => EventsBefore.LastOrDefault(x => x.Type == "m.room.member" && x.StateKey == Event.Sender)? - .TypedContent as RoomMemberEventContent; - - public UserProfileResponse CurrentSenderProfile => new() { DisplayName = CurrentSenderMemberEventContent?.DisplayName, AvatarUrl = CurrentSenderMemberEventContent?.AvatarUrl }; - - public bool HasPreviousMessage => EventsBefore.Last() is { Type: "m.room.message" } response && response.Sender == Event.Sender; - - - -} \ No newline at end of file diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineCanonicalAliasItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineCanonicalAliasItem.razor deleted file mode 100644
index 1213432..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineCanonicalAliasItem.razor +++ /dev/null
@@ -1,27 +0,0 @@ -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Responses -@inherits BaseTimelineItem - -@if (currentEventContent is not null) { - @if (previousEventContent is null) { - <i><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> set the room alias to "@currentEventContent.Alias"</i> - } - else { - <i><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> changed the room name from "@previousEventContent.Alias" to "@currentEventContent.Alias"</i> - } -} -else { - <details> - <summary>Unknown event @Event.Type (@Event.StateKey)</summary> - <pre> - @Event.ToJson() - </pre> - </details> -} - -@code { - private RoomCanonicalAliasEventContent? previousEventContent => PreviousState?.TypedContent as RoomCanonicalAliasEventContent; - - private RoomCanonicalAliasEventContent? currentEventContent => Event.TypedContent as RoomCanonicalAliasEventContent; -} \ No newline at end of file diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineHistoryVisibilityItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineHistoryVisibilityItem.razor deleted file mode 100644
index 172a38c..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineHistoryVisibilityItem.razor +++ /dev/null
@@ -1,27 +0,0 @@ -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Responses -@inherits BaseTimelineItem - -@if (currentEventContent is not null) { - @if (previousEventContent is null) { - <i><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> set the history visibility to "@currentEventContent.HistoryVisibility"</i> - } - else { - <i><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> changed the history visibility from "@previousEventContent.HistoryVisibility" to "@currentEventContent.HistoryVisibility"</i> - } -} -else { - <details> - <summary>Unknown event @Event.Type (@Event.StateKey)</summary> - <pre> - @Event.ToJson() - </pre> - </details> -} - -@code { - private RoomHistoryVisibilityEventContent? previousEventContent => PreviousState?.TypedContent as RoomHistoryVisibilityEventContent; - - private RoomHistoryVisibilityEventContent? currentEventContent => Event.TypedContent as RoomHistoryVisibilityEventContent; -} \ No newline at end of file diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor deleted file mode 100644
index 3b18b95..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor +++ /dev/null
@@ -1,53 +0,0 @@ -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Responses -@inherits BaseTimelineItem - -@if (roomMemberData is not null) { - @switch (roomMemberData.Membership) { - case "ban": - <i>@Event.StateKey was banned</i> - break; - case "invite": - <i>@Event.StateKey was invited</i> - break; - case "join" when Event.ReplacesState is not null: - <i>@Event.StateKey changed their display name to @(roomMemberData.DisplayName ?? Event.Sender)</i> - break; - case "join": - @if (prevRoomMemberData is null) { - <i><InlineUserItem User="@(new UserProfileResponse() { DisplayName = roomMemberData.DisplayName, AvatarUrl = roomMemberData.AvatarUrl })" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> joined</i> - } - else { - <i><InlineUserItem User="@(new UserProfileResponse() { DisplayName = prevRoomMemberData.DisplayName, AvatarUrl = prevRoomMemberData.AvatarUrl })" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> changed their profile to <InlineUserItem User="@(new UserProfileResponse() { DisplayName = roomMemberData.DisplayName, AvatarUrl = roomMemberData.AvatarUrl })" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem></i> - } - break; - case "leave": - <i>@Event.StateKey left</i> - break; - case "knock": - <i>@Event.StateKey knocked</i> - break; - default: - <i>@Event.StateKey has an unknown state:</i> - <pre> - @Event.ToJson() - </pre> - break; - } -} -else { - <details> - <summary>Unknown membership event for @Event.StateKey</summary> - <pre> - @Event.ToJson() - </pre> - </details> -} - -@code { - - private RoomMemberEventContent? roomMemberData => Event.TypedContent as RoomMemberEventContent; - private RoomMemberEventContent? prevRoomMemberData => PreviousState?.TypedContent as RoomMemberEventContent; - -} diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor deleted file mode 100644
index 81956b0..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor +++ /dev/null
@@ -1,34 +0,0 @@ -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec -@inherits BaseTimelineItem - -<span> - @if (!HasPreviousMessage) { - <span><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem>:</span><br/> - } - @switch (currentEventContent.MessageType) { - case "m.text": { - @foreach (var line in currentEventContent.Body.Split('\n')) { - <span>@line</span><br/> - } - break; - } - case "m.image": { - <i>@currentEventContent.Body</i><br/> - <img src="@Homeserver.ResolveMediaUri(currentEventContent.Url)"> - break; - } - default: { - <pre> - @Event.RawContent?.ToJson(indent: false) - </pre> - break; - } - } -</span> - -@code { - private RoomMessageEventContent? previousEventContent => PreviousState?.TypedContent as RoomMessageEventContent; - - private RoomMessageEventContent? currentEventContent => Event.TypedContent as RoomMessageEventContent; -} \ No newline at end of file diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor deleted file mode 100644
index f3e6c7e..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor +++ /dev/null
@@ -1,18 +0,0 @@ -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec.State -@inherits BaseTimelineItem - -<i> - @Event.Sender created the room with room version @CreationEventContent.RoomVersion - @(CreationEventContent.Federate ?? true ? "and" : "without") federating with other servers.<br/> - This room is of type @(CreationEventContent.Type ?? "Untyped room (usually a chat room)") -</i> -<pre> - @Event.RawContent?.ToJson(indent: false) -</pre> - -@code { - - private RoomCreateEventContent CreationEventContent => Event.TypedContent as RoomCreateEventContent; - -} diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomNameItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomNameItem.razor deleted file mode 100644
index eeec3de..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomNameItem.razor +++ /dev/null
@@ -1,27 +0,0 @@ -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Responses -@inherits BaseTimelineItem - -@if (currentEventContent is not null) { - @if (previousEventContent is null) { - <i><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> set the room name to "@currentEventContent.Name"</i> - } - else { - <i><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> changed the room name from "@previousEventContent.Name" to "@currentEventContent.Name"</i> - } -} -else { - <details> - <summary>Unknown event @Event.Type (@Event.StateKey)</summary> - <pre> - @Event.ToJson() - </pre> - </details> -} - -@code { - private RoomNameEventContent? previousEventContent => PreviousState?.TypedContent as RoomNameEventContent; - - private RoomNameEventContent? currentEventContent => Event.TypedContent as RoomNameEventContent; -} \ No newline at end of file diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomTopicItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomTopicItem.razor deleted file mode 100644
index 7ef17a8..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomTopicItem.razor +++ /dev/null
@@ -1,37 +0,0 @@ -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Responses -@inherits BaseTimelineItem - -@if (currentEventContent is not null) { - @if (previousEventContent is null) { - <i><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> set the room topic to</i><br/> - <pre> - @currentEventContent.Topic - </pre> - } - else { - <i><InlineUserItem User="@CurrentSenderProfile" Homeserver="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> changed the room topic from</i><br/> - <pre> - @previousEventContent.Topic - </pre><br/> - <i>to</i><br/> - <pre> - @currentEventContent.Topic - </pre> - } -} -else { - <details> - <summary>Unknown event @Event.Type (@Event.StateKey)</summary> - <pre> - @Event.ToJson() - </pre> - </details> -} - -@code { - private RoomTopicEventContent? previousEventContent => PreviousState?.TypedContent as RoomTopicEventContent; - - private RoomTopicEventContent? currentEventContent => Event.TypedContent as RoomTopicEventContent; -} \ No newline at end of file diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor deleted file mode 100644
index 4f05b30..0000000 --- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor +++ /dev/null
@@ -1,16 +0,0 @@ -@using ArcaneLibs.Extensions -@inherits BaseTimelineItem - -<div> - <details style="display: inline;"> - <summary> - <i style="color: red;">Unknown event type: <pre style="display: inline;">@Event.Type</pre></i> - </summary> - <pre>@Event.ToJson(ignoreNull: true)</pre> - </details> -</div> - -@code { - - -}