{ await onDelete(); }} /> {#if message}
{#if swipeOffsetX > 0}
= SWIPE_THRESHOLD} >
{/if}
{#if !edit && !disabled}
{#if onReaction} (showButtons = false)} onSubmit={(name) => { showButtons = false; onReaction(name); }} > {/if} {#if onReply} {/if} {#if !thread && onThread} {/if} {#if message.user_id === $user?.id || $user?.role === "admin"} {#if onEdit} {/if} {#if onDelete} {/if} {/if}
{/if} {#if message?.is_pinned}
{$i18n.t("Pinned")}
{/if} {#if message?.reply_to_message?.user}
{/if}
{#if showUserProfile} {#if message?.meta?.model_id} {message.meta.model_name { e.currentTarget.src = "/favicon.png"; }} /> {:else if message.user?.role === "webhook"} {:else} {/if} {:else} {#if message.created_at} {/if} {/if}
{#if showUserProfile}
{#if message?.meta?.model_id} {message?.meta?.model_name ?? message?.meta?.model_id} {:else} {message?.user?.name} {/if}
{#if message.created_at}
{#if dayjs(message.created_at / 1000000).isToday()} {dayjs( message.created_at / 1000000, ).format("LT")} {:else} {$i18n.t( formatDate( message.created_at / 1000000, ), { LOCALIZED_TIME: dayjs( message.created_at / 1000000, ).format("LT"), LOCALIZED_DATE: dayjs( message.created_at / 1000000, ).format("L"), }, )} {/if}
{/if}
{/if} {#if message?.data === true}
{:else if (message?.data?.files ?? []).length > 0}
{#each message?.data?.files as file} {@const fileUrl = file.url.startsWith("data") || file.url.startsWith("http") ? file.url : `${REXPRO_API_BASE_URL}/files/${file.url}${file?.content_type ? "/content" : ""}`}
{#if file.type === "image" || (file?.content_type ?? "").startsWith("image/")} {file.name} {:else if file.type === "video" || (file?.content_type ?? "").startsWith("video/")} {:else} {/if}
{/each}
{/if} {#if edit}