about summary refs log tree commit diff
path: root/MatrixUtils.Web/Pages/Rooms/RoomCreateComponents/RoomCreateMembershipOptions.razor
blob: 5170d2d35c7f1c99f7100306829791044bde864f (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
53
54
55
@using ArcaneLibs.Extensions
@using LibMatrix.Helpers
<tr>
    <td>Invited members:</td>
    <td>
        <details>
            <summary>@roomBuilder.Invites.Count members</summary>
            <LinkButton OnClickAsync="@InviteAllSessions" InlineText="true">Invite all logged in accounts</LinkButton>
            @foreach (var member in roomBuilder.Invites) {
                <UserListItem _homeserver="Homeserver" UserId="@member.Key"></UserListItem>
                <span>: </span>
                <FancyTextBox Value="@member.Value" ValueChanged="@(val => roomBuilder.Invites[member.Key] = val)"/>
            }
        </details>
    </td>
</tr>
<tr>
    <td>Banned members:</td>
    <td>
        <details>
            <summary>@roomBuilder.Bans.Count members</summary>
            @foreach (var member in roomBuilder.Bans) {
                <UserListItem _homeserver="Homeserver" UserId="@member.Key"></UserListItem>
                <span>: </span>
                <FancyTextBox Value="@member.Value" ValueChanged="@(val => roomBuilder.Bans[member.Key] = val)"/>
            }
        </details>
    </td>
</tr>

@code {

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

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

    [Parameter]
    public AuthenticatedHomeserverGeneric Homeserver { get; set; }
    
    private async Task InviteAllSessions() {
        var sessions = await sessionStore.GetAllSessions();
        foreach (var session in sessions) {
            if (roomBuilder.Invites.ContainsKey(session.Value.Auth.UserId) || session.Value.Auth.UserId == Homeserver!.WhoAmI.UserId) continue;
            Console.WriteLine("Inviting " + session.Value.Auth.UserId);
            roomBuilder.Invites.Add(session.Value.Auth.UserId, null);
            Console.WriteLine("--");
        }

        Console.WriteLine("Got all sessions, invited: " + string.Join(", ", roomBuilder.Invites.Keys));
        StateHasChanged();
    }

}