Spaces:
Paused
Paused
| <script lang="ts"> | |
| import { getContext } from 'svelte'; | |
| import Selector from './Knowledge/Selector.svelte'; | |
| import FileItem from '$lib/components/common/FileItem.svelte'; | |
| export let selectedKnowledge = []; | |
| export let collections = []; | |
| const i18n = getContext('i18n'); | |
| </script> | |
| <div> | |
| <div class="flex w-full justify-between mb-1"> | |
| <div class=" self-center text-sm font-semibold">{$i18n.t('Knowledge')}</div> | |
| </div> | |
| <div class=" text-xs dark:text-gray-500"> | |
| {$i18n.t('To attach knowledge base here, add them to the "Knowledge" workspace first.')} | |
| </div> | |
| <div class="flex flex-col"> | |
| {#if selectedKnowledge?.length > 0} | |
| <div class=" flex flex-wrap items-center gap-2 mt-2"> | |
| {#each selectedKnowledge as file, fileIdx} | |
| <FileItem | |
| {file} | |
| name={file.name} | |
| type={file?.legacy | |
| ? `Legacy${file.type ? ` ${file.type}` : ''}` | |
| : (file?.type ?? 'Collection')} | |
| dismissible | |
| on:dismiss={(e) => { | |
| selectedKnowledge = selectedKnowledge.filter((_, idx) => idx !== fileIdx); | |
| }} | |
| /> | |
| {/each} | |
| </div> | |
| {/if} | |
| <div class="flex flex-wrap text-sm font-medium gap-1.5 mt-2"> | |
| <Selector | |
| on:select={(e) => { | |
| const item = e.detail; | |
| if (!selectedKnowledge.find((k) => k.id === item.id)) { | |
| selectedKnowledge = [ | |
| ...selectedKnowledge, | |
| { | |
| ...item | |
| } | |
| ]; | |
| } | |
| }} | |
| > | |
| <button | |
| class=" px-3.5 py-1.5 font-medium hover:bg-black/5 dark:hover:bg-white/5 outline outline-1 outline-gray-100 dark:outline-gray-850 rounded-3xl" | |
| type="button">{$i18n.t('Select Knowledge')}</button | |
| > | |
| </Selector> | |
| </div> | |
| <!-- {knowledge} --> | |
| </div> | |
| </div> | |