{#if showMatrixLogin}

Connect to Chat

Enter your Matrix credentials to enable messaging.

{ if (e.key === "Enter") handleMatrixLogin(); }} />
{:else if isInitializing || ($syncState !== "PREPARED" && $syncState !== "SYNCING")}

{#if isInitializing} Connecting to Matrix... {:else if $syncState === "CATCHUP"} Catching up on messages... {:else if $syncState === "RECONNECTING"} Reconnecting... {:else if $syncState === "ERROR"} Connection error, retrying... {:else} Syncing... {/if}

{:else if matrixClient} {#snippet children()}
{#if $selectedRoomId}
{#each $roomSummaries.filter((r) => r.roomId === $selectedRoomId) as room}

{room.name}

{room.memberCount} members{room.isEncrypted ? " · Encrypted" : ""}

{/each}
{#if showMessageSearch}
search
{#if messageSearchQuery && messageSearchResults.length > 0}

{messageSearchResults.length} result{messageSearchResults.length !== 1 ? "s" : ""}

{#each messageSearchResults.slice(0, 20) as result} {/each}
{:else if messageSearchQuery}

No results found

{/if}
{/if}
{#if isDraggingFile}
upload_file

Drop to upload

Release to send file

{/if}
{#if showRoomInfo} {#each $roomSummaries.filter((r) => r.roomId === $selectedRoomId) as currentRoom} {/each} {:else if showMemberList} {/if}
{:else}
chat

Select a room

Choose a conversation to start chatting

{/if}
{/snippet}
{/if} (showCreateRoomModal = false)} /> {#if showStartDMModal} (showStartDMModal = false)} onDMCreated={(roomId) => handleRoomSelect(roomId)} /> {/if}