atagen

malice

public
Star0
Watch0
6381c09db9bfd2f6f31341eb87efa1dfcf65d2e0
2
ssh://brewery@pls.lobotomise.me:33/atagen/malice.git

Blame: web/src/lib/ComposerText.svelte

2021154f9e16atagen2026-10-25 02:37 UTC1
<script lang="ts">
2021154f9e16atagen2026-10-25 02:37 UTC2
  import { segmentEmoji, twemojiUrl } from './twemoji';
2021154f9e16atagen2026-10-25 02:37 UTC3
2021154f9e16atagen2026-10-25 02:37 UTC4
  export let text: string;
2021154f9e16atagen2026-10-25 02:37 UTC5
2021154f9e16atagen2026-10-25 02:37 UTC6
  let failed = new Set<string>();
2021154f9e16atagen2026-10-25 02:37 UTC7
  $: segments = segmentEmoji(text);
2021154f9e16atagen2026-10-25 02:37 UTC8
</script>
2021154f9e16atagen2026-10-25 02:37 UTC9
2021154f9e16atagen2026-10-25 02:37 UTC10
{#each segments as segment}{#if segment.emoji && !failed.has(segment.text)}<span class="composer-emoji">{segment.text}<img src={twemojiUrl(segment.text)} alt="" draggable="false" on:error={() => (failed = new Set([...failed, segment.text]))} /></span>{:else}{segment.text}{/if}{/each}
2021154f9e16atagen2026-10-25 02:37 UTC11
2021154f9e16atagen2026-10-25 02:37 UTC12
<style>
2021154f9e16atagen2026-10-25 02:37 UTC13
  .composer-emoji { position: relative; color: transparent; }
2021154f9e16atagen2026-10-25 02:37 UTC14
  .composer-emoji img { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 100%; height: 1.15em; object-fit: contain; }
2021154f9e16atagen2026-10-25 02:37 UTC15
</style>