1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <script lang="ts">
- import Bolt from '$lib/components/icons/Bolt.svelte';
- import { onMount, getContext, createEventDispatcher } from 'svelte';
- const i18n = getContext('i18n');
- const dispatch = createEventDispatcher();
- export let suggestionPrompts = [];
- export let className = '';
- let prompts = [];
- $: prompts = (suggestionPrompts ?? [])
- .reduce((acc, current) => [...acc, ...[current]], [])
- .sort(() => Math.random() - 0.5);
- </script>
- {#if prompts.length > 0}
- <div class="mb-1 flex gap-1 text-sm font-medium items-center text-gray-400 dark:text-gray-600">
- <Bolt />
- {$i18n.t('Suggested')}
- </div>
- {/if}
- <div class=" h-40 max-h-full overflow-auto scrollbar-none {className}">
- {#each prompts as prompt, promptIdx}
- <button
- class="flex flex-col flex-1 shrink-0 w-full justify-between px-3 py-2 rounded-xl bg-transparent hover:bg-black/5 dark:hover:bg-white/5 transition group"
- on:click={() => {
- dispatch('select', prompt.content);
- }}
- >
- <div class="flex flex-col text-left">
- {#if prompt.title && prompt.title[0] !== ''}
- <div
- class=" font-medium dark:text-gray-300 dark:group-hover:text-gray-200 transition line-clamp-1"
- >
- {prompt.title[0]}
- </div>
- <div class="text-xs text-gray-500 font-normal line-clamp-1">{prompt.title[1]}</div>
- {:else}
- <div
- class=" font-medium dark:text-gray-300 dark:group-hover:text-gray-200 transition line-clamp-1"
- >
- {prompt.content}
- </div>
- <div class="text-xs text-gray-500 font-normal line-clamp-1">Prompt</div>
- {/if}
- </div>
- </button>
- {/each}
- </div>
|