|
|
|
@ -1,5 +1,5 @@ |
|
|
|
<script> |
|
|
|
import { Button, Heading } from "@budibase/bbui" |
|
|
|
import { Button, Heading, Body } from "@budibase/bbui" |
|
|
|
import AppCard from "./AppCard.svelte" |
|
|
|
import Spinner from "components/common/Spinner.svelte" |
|
|
|
import api from "builderStore/api" |
|
|
|
@ -14,18 +14,22 @@ |
|
|
|
let templatesPromise = fetchTemplates() |
|
|
|
</script> |
|
|
|
|
|
|
|
{#await templatesPromise} |
|
|
|
<div class="spinner-container"> |
|
|
|
<Spinner /> |
|
|
|
</div> |
|
|
|
{:then templates} |
|
|
|
<div class="root"> |
|
|
|
<Heading small black>Budibase Templates</Heading> |
|
|
|
<div class="root"> |
|
|
|
<Heading medium black>Start With a Template</Heading> |
|
|
|
{#await templatesPromise} |
|
|
|
<div class="spinner-container"> |
|
|
|
<Spinner size="30" /> |
|
|
|
</div> |
|
|
|
{:then templates} |
|
|
|
<div class="templates"> |
|
|
|
{#each templates as template} |
|
|
|
<div class="templates-card"> |
|
|
|
<h3 class="template-title">{template.name}</h3> |
|
|
|
<Heading extraSmall black>{template.description}</Heading> |
|
|
|
<Heading black medium>{template.name}</Heading> |
|
|
|
<Body medium grey>{template.category}</Body> |
|
|
|
<Body small black>{template.description}</Body> |
|
|
|
<div> |
|
|
|
<img src={template.image} width="300" /> |
|
|
|
</div> |
|
|
|
<div class="card-footer"> |
|
|
|
<Button secondary on:click={() => onSelect(template)}> |
|
|
|
Create {template.name} |
|
|
|
@ -34,10 +38,10 @@ |
|
|
|
</div> |
|
|
|
{/each} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{:catch err} |
|
|
|
<h1 style="color:red">{err}</h1> |
|
|
|
{/await} |
|
|
|
{:catch err} |
|
|
|
<h1 style="color:red">{err}</h1> |
|
|
|
{/await} |
|
|
|
</div> |
|
|
|
|
|
|
|
<style> |
|
|
|
.templates { |
|
|
|
@ -50,12 +54,14 @@ |
|
|
|
.templates-card { |
|
|
|
background-color: var(--white); |
|
|
|
padding: var(--spacing-xl); |
|
|
|
max-width: 300px; |
|
|
|
max-height: 150px; |
|
|
|
border-radius: var(--border-radius-m); |
|
|
|
border: var(--border-dark); |
|
|
|
} |
|
|
|
|
|
|
|
.card-footer { |
|
|
|
margin-top: var(--spacing-m); |
|
|
|
} |
|
|
|
|
|
|
|
h3 { |
|
|
|
font-size: var(--font-size-l); |
|
|
|
font-weight: 600; |
|
|
|
|