|
@@ -1,24 +1,24 @@
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
import { createEventDispatcher, getContext } from 'svelte';
|
|
import { createEventDispatcher, getContext } from 'svelte';
|
|
|
|
+ import { tags } from '$lib/stores';
|
|
const dispatch = createEventDispatcher();
|
|
const dispatch = createEventDispatcher();
|
|
|
|
|
|
const i18n = getContext('i18n');
|
|
const i18n = getContext('i18n');
|
|
|
|
|
|
let showTagInput = false;
|
|
let showTagInput = false;
|
|
let tagName = '';
|
|
let tagName = '';
|
|
|
|
+
|
|
|
|
+ const addTagHandler = async () => {
|
|
|
|
+ dispatch('add', tagName);
|
|
|
|
+ tagName = '';
|
|
|
|
+ showTagInput = false;
|
|
|
|
+ };
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<div class="flex space-x-1 pl-1.5">
|
|
<div class="flex space-x-1 pl-1.5">
|
|
{#if showTagInput}
|
|
{#if showTagInput}
|
|
<div class="flex items-center">
|
|
<div class="flex items-center">
|
|
- <button
|
|
|
|
- type="button"
|
|
|
|
- on:click={() => {
|
|
|
|
- dispatch('add', tagName);
|
|
|
|
- tagName = '';
|
|
|
|
- showTagInput = false;
|
|
|
|
- }}
|
|
|
|
- >
|
|
|
|
|
|
+ <button type="button" on:click={addTagHandler}>
|
|
<svg
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 16 16"
|
|
viewBox="0 0 16 16"
|
|
@@ -36,10 +36,19 @@
|
|
bind:value={tagName}
|
|
bind:value={tagName}
|
|
class=" pl-2 cursor-pointer self-center text-xs h-fit bg-transparent outline-none line-clamp-1 w-[8rem]"
|
|
class=" pl-2 cursor-pointer self-center text-xs h-fit bg-transparent outline-none line-clamp-1 w-[8rem]"
|
|
placeholder={$i18n.t('Add a tag')}
|
|
placeholder={$i18n.t('Add a tag')}
|
|
|
|
+ list="tagOptions"
|
|
|
|
+ on:keydown={(event) => {
|
|
|
|
+ if (event.key === 'Enter') {
|
|
|
|
+ addTagHandler();
|
|
|
|
+ }
|
|
|
|
+ }}
|
|
/>
|
|
/>
|
|
|
|
+ <datalist id="tagOptions">
|
|
|
|
+ {#each $tags as tag}
|
|
|
|
+ <option value={tag.name} />
|
|
|
|
+ {/each}
|
|
|
|
+ </datalist>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
- <!-- TODO: Tag Suggestions -->
|
|
|
|
{/if}
|
|
{/if}
|
|
|
|
|
|
<button
|
|
<button
|