diff --git a/packages/builder/src/App.svelte b/packages/builder/src/App.svelte index 69bddc225c..870d057ace 100644 --- a/packages/builder/src/App.svelte +++ b/packages/builder/src/App.svelte @@ -6,12 +6,26 @@ import { onMount } from "svelte" import IconButton from "./common/IconButton.svelte" import Spinner from "./common/Spinner.svelte" + import AppNotification, { showAppNotification } from "./common/AppNotification.svelte" let init = initialise() + + 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) + })
- + {#await init}
diff --git a/packages/builder/src/builderStore/store/index.js b/packages/builder/src/builderStore/store/index.js index d7be2fe92a..41230bcaf4 100644 --- a/packages/builder/src/builderStore/store/index.js +++ b/packages/builder/src/builderStore/store/index.js @@ -44,7 +44,7 @@ export const getStore = () => { currentNode: null, libraries: null, showSettings: false, - useAnalytics: true, + useAnalytics: true } const store = writable(initial) diff --git a/packages/builder/src/common/AppNotification.svelte b/packages/builder/src/common/AppNotification.svelte new file mode 100644 index 0000000000..59e6730857 --- /dev/null +++ b/packages/builder/src/common/AppNotification.svelte @@ -0,0 +1,76 @@ + + + diff --git a/packages/builder/src/database/ModelDataTable/ModelDataTable.svelte b/packages/builder/src/database/ModelDataTable/ModelDataTable.svelte index 9a9a81b86f..6ac539282c 100644 --- a/packages/builder/src/database/ModelDataTable/ModelDataTable.svelte +++ b/packages/builder/src/database/ModelDataTable/ModelDataTable.svelte @@ -11,6 +11,7 @@ map, remove, keys, + takeRight } from "lodash/fp" import Select from "../../common/Select.svelte" import { getIndexSchema } from "../../common/core" @@ -78,8 +79,8 @@ function drillIntoRecord(record) { backendUiStore.update(state => { + state.breadcrumbs = [...state.breadcrumbs, record.type, record.id] state.selectedRecord = record - state.breadcrumbs = [state.selectedDatabase.name, record.id] state.selectedView = childViewsForRecord($store.hierarchy)[0] return state }) @@ -94,7 +95,7 @@
-

{last($backendUiStore.breadcrumbs)}

+

{takeRight(2, $backendUiStore.breadcrumbs).join(" / ")}