Display errors
This commit is contained in:
parent
6d98424323
commit
4d732dd142
|
@ -1,6 +1,10 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { screenComponentErrorList } from "@/stores/builder"
|
import {
|
||||||
import { ActionButton, Popover } from "@budibase/bbui"
|
componentStore,
|
||||||
|
screenComponentErrorList,
|
||||||
|
screenComponents,
|
||||||
|
} from "@/stores/builder"
|
||||||
|
import { ActionButton, Icon, Popover } from "@budibase/bbui"
|
||||||
|
|
||||||
let button: any
|
let button: any
|
||||||
let popover: any
|
let popover: any
|
||||||
|
@ -11,4 +15,35 @@
|
||||||
>Errors ({$screenComponentErrorList.length})</ActionButton
|
>Errors ({$screenComponentErrorList.length})</ActionButton
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<Popover bind:this={popover} anchor={button} align={"right"}>TODO</Popover>
|
<Popover bind:this={popover} open anchor={button} align={"right"}>
|
||||||
|
<div class="errors">
|
||||||
|
{#each $screenComponentErrorList as error}
|
||||||
|
<div class="error">
|
||||||
|
<Icon
|
||||||
|
name="Alert"
|
||||||
|
color="var(--spectrum-global-color-static-red-600)"
|
||||||
|
/>
|
||||||
|
<div>
|
||||||
|
{$screenComponents[error.componentId]._instanceName}:
|
||||||
|
{error.message}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</Popover>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.errors {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.error {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: row;
|
||||||
|
padding: var(--spacing-l);
|
||||||
|
gap: var(--spacing-s);
|
||||||
|
}
|
||||||
|
.error:not(:last-child) {
|
||||||
|
border-bottom: 1px solid var(--spectrum-global-color-gray-300);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -450,7 +450,7 @@ export class ComponentStore extends BudiStore<ComponentState> {
|
||||||
}
|
}
|
||||||
|
|
||||||
const componentName = getSequentialName(
|
const componentName = getSequentialName(
|
||||||
get(screenComponents),
|
Object.values(get(screenComponents)),
|
||||||
`New ${definition.friendlyName || definition.name}`,
|
`New ${definition.friendlyName || definition.name}`,
|
||||||
{
|
{
|
||||||
getName: c => c._instanceName,
|
getName: c => c._instanceName,
|
||||||
|
|
|
@ -286,10 +286,16 @@ export const screenComponentErrorList = derived(
|
||||||
|
|
||||||
export const screenComponents = derived(
|
export const screenComponents = derived(
|
||||||
[selectedScreen],
|
[selectedScreen],
|
||||||
([$selectedScreen]) => {
|
([$selectedScreen]): Record<string, Component> => {
|
||||||
if (!$selectedScreen) {
|
if (!$selectedScreen) {
|
||||||
return []
|
return {}
|
||||||
}
|
}
|
||||||
return findAllComponents($selectedScreen.props) as Component[]
|
|
||||||
|
return findAllComponents($selectedScreen.props).reduce<
|
||||||
|
Record<string, Component>
|
||||||
|
>((obj, component) => {
|
||||||
|
obj[component._id] = component
|
||||||
|
return obj
|
||||||
|
}, {})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue