{#if showChatRoom}
{ windowWidth = Math.max(400, e.detail.width); windowHeight = Math.max(500, e.detail.height); }} ondragmove={handleDragMove} >
Pdr Aim {#if currentUser} - {currentUser.nickname}{:else} - {totalUsers} membre{totalUsers > 1 ? 's' : ''}{/if} {#if sseError && !isMinimized} ⚠️ Erreur de connexion {/if}
{#if !isMobile} {:else} {/if}
{#if !isMinimized}
{#if sseError}
{sseError} {#if sseRetryAfter}
Nouvelle tentative dans {Math.ceil(sseRetryAfter)}s... {/if}
{/if}
{#if rateLimitWarning}
{rateLimitWarning} {#if cooldownEndTime} Vous pourrez envoyer un autre message dans {cooldownProgress.toFixed(1)}s {/if}
{/if}
handleScroll(e)} > {#if isInitialLoading}
{:else if isLoadingMore}
{/if} {#if showRegistrationPrompt}

👋 pour lire le reste du chat !

{/if} {#each visibleMessages as message (message.id)}
{#if message.type === 'emote'} {message.user.nickname} {message.content} {:else} {message.user.nickname}: {message.content} {/if}
{/each}
e.key === 'Enter' && handleSubmit()} placeholder={cooldownEndTime ? `Patientez ${cooldownProgress.toFixed(1)}s...` : "Écrivez un message..."} disabled={!currentUser || Boolean(cooldownEndTime)} />
{#if cooldownEndTime}
{/if}

{totalUsers} membre{totalUsers > 1 ? 's' : ''}

{#each onlineUsers as user}
{getStatusIcon(user.status)}
{/each}
{/if}
{/if} {#if showAuth} {/if}