{#if showModal && isClickable} (showModal = false)}> {#if isImage(file.mime)} {#if file.type === "hash"} input from user {:else} input from user {/if} {:else if isPlainText(file.mime)}

{file.name}

{#if file.mime === "application/vnd.chatui.clipboard"}

If you prefer to inject clipboard content directly in the chat, you can disable this feature in the settings page.

{/if} {#if file.type === "hash"} {#await fetch(urlNotTrailing + "/output/" + file.value).then((res) => res.text())}
{:then result}
{result}
{/await} {:else}
{atob(file.value)}
{/if}
{/if}
{/if}
isClickable && (showModal = true)} onkeydown={(e) => { if (!isClickable) { return; } if (e.key === "Enter" || e.key === " ") { showModal = true; } }} class:clickable={isClickable} role="button" tabindex="0" >
{#if isImage(file.mime)}
{file.name}
{:else if isAudio(file.mime)} {:else if isVideo(file.mime)}
{:else if isPlainText(file.mime)}
{truncateMiddle(file.name, 28)}
{#if file.mime === "application/vnd.chatui.clipboard"}
Clipboard source
{:else}
{file.mime}
{/if}
{:else if file.mime === "octet-stream"}
{truncateMiddle(file.name, 28)}
File type could not be determined
{:else}
{truncateMiddle(file.name, 28)}
{file.mime}
{/if} {#if canClose} {/if}