1
0
Fork 0
mirror of synced 2024-07-06 06:50:49 +12:00
budibase/packages/builder/src/App.svelte

79 lines
1.7 KiB
Svelte
Raw Normal View History

2019-07-13 21:35:57 +12:00
<script>
2020-02-03 22:50:30 +13:00
import NoPackage from "./NoPackage.svelte"
import PackageRoot from "./PackageRoot.svelte"
import Settings from "./Settings.svelte"
import { store, initialise } from "./builderStore"
import { onMount } from "svelte"
import IconButton from "./common/IconButton.svelte"
2020-02-25 04:00:48 +13:00
import Spinner from "./common/Spinner.svelte"
2020-03-31 09:14:41 +13:00
import AppNotification, { showAppNotification } from "./common/AppNotification.svelte"
2020-02-03 22:50:30 +13:00
let init = initialise()
2020-03-31 09:14:41 +13:00
function showErrorBanner() {
showAppNotification({
status: "danger",
message:
"Whoops! Looks like we're having trouble. Please refresh the page.",
})
}
onMount(() => {
window.addEventListener("error", showErrorBanner)
window.addEventListener("unhandledrejection", showErrorBanner)
})
2019-07-13 21:35:57 +12:00
</script>
<main>
2020-03-31 09:14:41 +13:00
<AppNotification />
2020-02-03 22:50:30 +13:00
{#await init}
2020-02-25 04:00:48 +13:00
<div class="spinner-container">
<Spinner />
</div>
2020-02-03 22:50:30 +13:00
{:then result}
2019-07-13 21:35:57 +12:00
2020-02-03 22:50:30 +13:00
{#if $store.hasAppPackage}
<PackageRoot />
{:else}
<NoPackage />
{/if}
2019-09-30 17:20:21 +13:00
2020-02-03 22:50:30 +13:00
{:catch err}
<h1 style="color:red">{err}</h1>
{/await}
2019-09-23 11:56:39 +12:00
2020-02-03 22:50:30 +13:00
<!--
2020-03-13 03:23:29 +13:00
<div class="settings">
<IconButton icon="settings"
on:click={store.showSettings}/>
</div>
2019-09-23 11:56:39 +12:00
2019-09-30 17:20:21 +13:00
2020-03-13 03:23:29 +13:00
{#if $store.useAnalytics}
<iframe src="https://marblekirby.github.io/bb-analytics.html" width="0" height="0" style="visibility:hidden;display:none"/>
{/if}
-->
2019-07-13 21:35:57 +12:00
</main>
<style>
2020-02-03 22:50:30 +13:00
main {
height: 100%;
width: 100%;
font-family: "Roboto", Helvetica, Arial, sans-serif;
}
.settings {
position: absolute;
bottom: 25px;
right: 25px;
}
2020-02-25 04:00:48 +13:00
.spinner-container {
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
2020-02-03 22:50:30 +13:00
</style>