diff --git a/packages/backend-core/src/cloud/accounts.js b/packages/backend-core/src/cloud/accounts.js index b2e8817ad6..5730bc67a5 100644 --- a/packages/backend-core/src/cloud/accounts.js +++ b/packages/backend-core/src/cloud/accounts.js @@ -22,3 +22,18 @@ exports.getAccount = async email => { return json[0] } + +exports.getStatus = async () => { + const response = await api.get(`/api/status`, { + headers: { + [Headers.API_KEY]: env.ACCOUNT_PORTAL_API_KEY, + }, + }) + const json = await response.json() + + if (response.status !== 200) { + throw new Error(`Error getting status`) + } + + return json +} diff --git a/packages/bbui/src/Banner/Banner.svelte b/packages/bbui/src/Banner/Banner.svelte index f28ee09d9c..f41fb5f803 100644 --- a/packages/bbui/src/Banner/Banner.svelte +++ b/packages/bbui/src/Banner/Banner.svelte @@ -57,3 +57,10 @@ {/if} + + diff --git a/packages/bbui/src/Banner/BannerDisplay.svelte b/packages/bbui/src/Banner/BannerDisplay.svelte new file mode 100644 index 0000000000..aad742b1bd --- /dev/null +++ b/packages/bbui/src/Banner/BannerDisplay.svelte @@ -0,0 +1,31 @@ + + + + + + + diff --git a/packages/bbui/src/Stores/banner.js b/packages/bbui/src/Stores/banner.js new file mode 100644 index 0000000000..81a9ee2204 --- /dev/null +++ b/packages/bbui/src/Stores/banner.js @@ -0,0 +1,37 @@ +import { writable } from "svelte/store" + +export function createBannerStore() { + const DEFAULT_CONFIG = {} + + const banner = writable(DEFAULT_CONFIG) + + const show = async ( + // eslint-disable-next-line + config = { message, type, extraButtonText, extraButtonAction, onChange } + ) => { + banner.update(store => { + return { + ...store, + ...config, + } + }) + } + + const showStatus = async () => { + const config = { + message: "Some systems are experiencing issues", + type: "negative", + extraButtonText: "View Status", + extraButtonAction: () => window.open("https://status.budibase.com/"), + } + + await show(config) + } + + return { + subscribe: banner.subscribe, + showStatus, + } +} + +export const banner = createBannerStore() diff --git a/packages/bbui/src/index.js b/packages/bbui/src/index.js index d3bc11cf9d..2b16f32b84 100644 --- a/packages/bbui/src/index.js +++ b/packages/bbui/src/index.js @@ -60,6 +60,7 @@ export { default as StatusLight } from "./StatusLight/StatusLight.svelte" export { default as ColorPicker } from "./ColorPicker/ColorPicker.svelte" export { default as InlineAlert } from "./InlineAlert/InlineAlert.svelte" export { default as Banner } from "./Banner/Banner.svelte" +export { default as BannerDisplay } from "./Banner/BannerDisplay.svelte" export { default as MarkdownEditor } from "./Markdown/MarkdownEditor.svelte" export { default as MarkdownViewer } from "./Markdown/MarkdownViewer.svelte" export { default as RichTextField } from "./Form/RichTextField.svelte" @@ -84,6 +85,7 @@ export { default as clickOutside } from "./Actions/click_outside" // Stores export { notifications, createNotificationStore } from "./Stores/notifications" +export { banner } from "./Stores/banner" // Helpers export * as Helpers from "./helpers" diff --git a/packages/builder/src/App.svelte b/packages/builder/src/App.svelte index 60051ea043..0fb0fe59d5 100644 --- a/packages/builder/src/App.svelte +++ b/packages/builder/src/App.svelte @@ -1,13 +1,16 @@ +