|
|
|
@ -15,7 +15,6 @@ import { |
|
|
|
database, |
|
|
|
tables, |
|
|
|
} from "stores/backend" |
|
|
|
|
|
|
|
import { fetchComponentLibDefinitions } from "../loadComponentLibraries" |
|
|
|
import api from "../api" |
|
|
|
import { FrontendTypes } from "constants" |
|
|
|
@ -25,6 +24,7 @@ import { |
|
|
|
findComponentParent, |
|
|
|
findClosestMatchingComponent, |
|
|
|
findAllMatchingComponents, |
|
|
|
findComponent, |
|
|
|
} from "../storeUtils" |
|
|
|
import { uuid } from "../uuid" |
|
|
|
import { removeBindings } from "../dataBinding" |
|
|
|
@ -464,6 +464,24 @@ export const getFrontendStore = () => { |
|
|
|
if (!asset) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// Fetch full definition
|
|
|
|
component = findComponent(asset.props, component._id) |
|
|
|
|
|
|
|
// Ensure we aren't deleting the screen slot
|
|
|
|
if (component._component?.endsWith("/screenslot")) { |
|
|
|
throw "You can't delete the screen slot" |
|
|
|
} |
|
|
|
|
|
|
|
// Ensure we aren't deleting something that contains the screen slot
|
|
|
|
const screenslot = findComponentType( |
|
|
|
component, |
|
|
|
"@budibase/standard-components/screenslot" |
|
|
|
) |
|
|
|
if (screenslot != null) { |
|
|
|
throw "You can't delete a component that contains the screen slot" |
|
|
|
} |
|
|
|
|
|
|
|
const parent = findComponentParent(asset.props, component._id) |
|
|
|
if (parent) { |
|
|
|
parent._children = parent._children.filter( |
|
|
|
|