1
0
Fork 0
mirror of synced 2024-09-20 11:27:56 +12:00
budibase/packages/builder/src/components/userInterface/ComponentSearch.svelte

60 lines
1.2 KiB
Svelte
Raw Normal View History

<script>
2020-02-03 22:50:30 +13:00
import { searchAllComponents } from "./pagesParsing/searchComponents"
import { store } from "../builderStore"
2020-02-03 22:50:30 +13:00
export let onComponentChosen = () => {}
2020-02-03 22:50:30 +13:00
let phrase = ""
2020-02-03 22:50:30 +13:00
components = $store.components
2020-02-03 22:50:30 +13:00
$: filteredComponents = !phrase ? [] : searchAllComponents(components, phrase)
</script>
<div class="root">
<form on:submit|preventDefault class="uk-search uk-search-large">
2020-02-03 22:50:30 +13:00
<span uk-search-icon />
<input
class="uk-search-input"
type="search"
placeholder="Based on component..."
bind:value={phrase} />
</form>
<div>
{#each filteredComponents as component}
<div class="component" on:click={() => onComponentChosen(component)}>
<div class="title">{component.name}</div>
<div class="description">{component.description}</div>
</div>
{/each}
</div>
</div>
<style>
2020-02-03 22:50:30 +13:00
.component {
padding: 5px;
border-style: solid;
border-width: 0 0 1px 0;
border-color: var(--grey-1);
cursor: pointer;
2020-02-03 22:50:30 +13:00
}
2020-02-03 22:50:30 +13:00
.component:hover {
background-color: var(--primary10);
2020-02-03 22:50:30 +13:00
}
2020-02-03 22:50:30 +13:00
.component > .title {
font-size: 13pt;
color: var(--ink);
2020-02-03 22:50:30 +13:00
}
2020-02-03 22:50:30 +13:00
.component > .description {
font-size: 10pt;
color: var(--blue);
font-style: italic;
2020-02-03 22:50:30 +13:00
}
</style>