mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-09 08:03:50 +00:00
49 lines
1.5 KiB
Svelte
49 lines
1.5 KiB
Svelte
<script lang="ts">
|
|
import { goto } from '$app/navigation'
|
|
import { faBarsStaggered, faPlus } from '@fortawesome/free-solid-svg-icons'
|
|
|
|
import { Button, ButtonPopup, ButtonPopupItem } from '$lib/components/common'
|
|
import Drawer from '$lib/components/common/drawer/Drawer.svelte'
|
|
import DrawerContent from '$lib/components/common/drawer/DrawerContent.svelte'
|
|
import SimpleEditor from '$lib/components/SimpleEditor.svelte'
|
|
import { Icon } from 'svelte-awesome'
|
|
import { importStore } from '../apps/store'
|
|
import { LayoutDashboard } from 'lucide-svelte'
|
|
|
|
let drawer: Drawer | undefined = undefined
|
|
let pendingJson: string
|
|
|
|
async function importJson() {
|
|
$importStore = JSON.parse(pendingJson)
|
|
await goto('/apps/add')
|
|
drawer?.closeDrawer?.()
|
|
}
|
|
</script>
|
|
|
|
<!-- Buttons -->
|
|
<div class="flex flex-row gap-2">
|
|
<ButtonPopup
|
|
size="sm"
|
|
spacingSize="xl"
|
|
startIcon={{ icon: faPlus }}
|
|
href="/apps/add?nodraft=true"
|
|
>
|
|
<svelte:fragment slot="main"
|
|
>New App (alpha) <LayoutDashboard class="ml-1.5" size={18} />
|
|
</svelte:fragment>
|
|
<ButtonPopupItem on:click={() => drawer?.toggleDrawer?.()}>
|
|
Import from raw JSON
|
|
</ButtonPopupItem>
|
|
</ButtonPopup>
|
|
</div>
|
|
|
|
<!-- Raw JSON -->
|
|
<Drawer bind:this={drawer} size="800px">
|
|
<DrawerContent title="Import app from JSON" on:close={() => drawer?.toggleDrawer?.()}>
|
|
<SimpleEditor bind:code={pendingJson} lang="json" class="h-full" fixedOverflowWidgets={false} />
|
|
<svelte:fragment slot="actions">
|
|
<Button size="sm" on:click={importJson}>Import</Button>
|
|
</svelte:fragment>
|
|
</DrawerContent>
|
|
</Drawer>
|