about summary refs log tree commit diff
path: root/MatrixUtils.Web/Pages/Rooms/RoomCreateComponents/RoomCreateInitialStateOptions.razor
blob: 272bd8b77a8c1b276bd031f9f6fc9c3990cd6168 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
@using System.Text.Json
@using LibMatrix
@using LibMatrix.Helpers
<tr>
    <td style="vertical-align: top;">Initial room state:</td>
    <td>
        @foreach (var (displayName, events) in new Dictionary<string, List<StateEvent>>() {
                          { "Important room state (before final access rules)", roomBuilder.ImportantState },
                          { "Additional room state (after final access rules)", roomBuilder.InitialState },
                      }) {
            <details>

                @code
                {
                    // private static readonly string[] ImplementedStates = { "m.room.avatar", "m.room.history_visibility", "m.room.guest_access", "m.room.server_acl" };
                }

                @* <summary>@displayName: @events.Count(x => !ImplementedStates.Contains(x.Type)) events</summary> *@
                <summary>@displayName: @events.Count events</summary>
                <table>
                    @* @foreach (var initialState in events.Where(x => !ImplementedStates.Contains(x.Type))) { *@
                    @foreach (var initialState in events) {
                        <tr>
                            <td style="vertical-align: top;">
                                @(initialState.Type):
                                @if (!string.IsNullOrEmpty(initialState.StateKey)) {
                                    <br/>
                                    <span>(@initialState.StateKey)</span>
                                }

                            </td>
                            <td>
                                <pre>@JsonSerializer.Serialize(initialState.RawContent, new JsonSerializerOptions { WriteIndented = true })</pre>
                            </td>
                        </tr>
                    }
                </table>
            </details>
        }
    </td>
</tr>

@code {
    [Parameter]
    public required RoomBuilder roomBuilder { get; set; }

    [Parameter]
    public required Action PageStateHasChanged { get; set; }

    [Parameter]
    public AuthenticatedHomeserverGeneric Homeserver { get; set; }
}