Svelte Create Drawers (CRUD) - Flowbite Svelte Blocks
Get started with a collection of drawer components to create new data models in your application by including form elements.
Default drawer #
Use this free example of a drawer component to show a list of input field items to create a data entry inside your dashboard application.
- Svelte
<script lang="ts">
import { Section } from 'flowbite-svelte-blocks';
import { Drawer, Button, CloseButton, Label, Input, Textarea, Select } from 'flowbite-svelte';
import { sineIn } from 'svelte/easing';
let hidden = true;
let transitionParams = {
x: -320,
duration: 200,
easing: sineIn
};
let selected;
let categories = [
{ value: '', name: 'Select category' },
{ value: 'TV', name: 'TV/Monitors' },
{ value: 'PC', name: 'PC' },
{ value: 'GA', name: 'Gaming/Console' },
{ value: 'PH', name: 'Phones' }
];
const handleCancel = () => {
hidden = true;
};
</script>
<Section name="crudcreatedrawer">
<div class="text-center pt-8">
<Button on:click={() => (hidden = false)}>Create product</Button>
</div>
<Drawer transitionType="fly" {transitionParams} bind:hidden id="sidebar4">
<div class="flex items-center">
<h5 id="drawer-label" class="inline-flex items-center mb-6 text-base font-semibold text-gray-500 uppercase dark:text-gray-400">New Product</h5>
<CloseButton on:click={() => (hidden = true)} class="mb-4 dark:text-white" />
</div>
<form action="#" class="mb-6">
<div class="mb-6">
<Label for="name" class="block mb-2">Name</Label>
<Input id="name" name="name" required placeholder="Type product name" />
</div>
<div class="mb-6">
<Label for="bland" class="block mb-2">Bland</Label>
<Input id="bland" name="bland" required placeholder="Product brand" />
</div>
<div class="mb-6">
<Label for="price" class="block mb-2">Price</Label>
<Input id="price" name="price" required placeholder="$2999" />
</div>
<div class="mb-6">
<Label
>Category
<Select class="mt-2" items={categories} bind:value={selected} />
</Label>
</div>
<div class="mb-6">
<Label for="brand" class="mb-2">Description</Label>
<Textarea id="message" placeholder="Enter event description here" rows="4" name="message" />
</div>
<div class="bottom-0 left-0 flex justify-center w-full pb-4 space-x-4 md:px-4 md:absolute">
<Button type="submit" class="w-full">Add product</Button>
<Button class="w-full" color="light" on:click={handleCancel}>
<svg aria-hidden="true" class="w-5 h-5 -ml-1 sm:mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" /></svg>
Cancel
</Button>
</div>
</form>
</Drawer>
</Section>