budibase/packages/builder/src/App.svelte

81 lines
1.7 KiB
Svelte
Raw Normal View History

2019-07-13 11:35:57 +02:00
<script>
2020-02-03 10:50:30 +01:00
import NoPackage from "./NoPackage.svelte"
import PackageRoot from "./PackageRoot.svelte"
import Settings from "./Settings.svelte"
import { store, initialise } from "builderStore"
2020-02-03 10:50:30 +01:00
import { onMount } from "svelte"
import IconButton from "components/common/IconButton.svelte"
import Spinner from "components/common/Spinner.svelte"
import AppNotification, {
showAppNotification,
} from "components/common/AppNotification.svelte"
2020-02-03 10:50:30 +01:00
let init = initialise()
2020-03-30 22:14:41 +02: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 11:35:57 +02:00
</script>
<main>
2020-03-30 22:14:41 +02:00
<AppNotification />
2020-02-03 10:50:30 +01:00
{#await init}
2020-02-24 16:00:48 +01:00
<div class="spinner-container">
<Spinner />
</div>
2020-02-03 10:50:30 +01:00
{:then result}
2019-07-13 11:35:57 +02:00
2020-02-03 10:50:30 +01:00
{#if $store.hasAppPackage}
<PackageRoot />
{:else}
<NoPackage />
{/if}
2019-09-30 06:20:21 +02:00
2020-02-03 10:50:30 +01:00
{:catch err}
<h1 style="color:red">{err}</h1>
{/await}
2019-09-23 01:56:39 +02:00
2020-02-03 10:50:30 +01:00
<!--
2020-03-12 15:23:29 +01:00
<div class="settings">
<IconButton icon="settings"
on:click={store.showSettings}/>
</div>
2019-09-23 01:56:39 +02:00
2019-09-30 06:20:21 +02:00
2020-03-12 15:23:29 +01: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 11:35:57 +02:00
</main>
<style>
2020-02-03 10:50:30 +01:00
main {
height: 100%;
width: 100%;
font-family: "Roboto", Helvetica, Arial, sans-serif;
}
.settings {
position: absolute;
bottom: 25px;
right: 25px;
}
2020-02-24 16:00:48 +01:00
.spinner-container {
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
2020-02-03 10:50:30 +01:00
</style>