Select nodes after creation

This commit is contained in:
Andrew Kingston 2024-09-25 12:08:35 +01:00
parent 3fc3edfe59
commit bf91266ac0
No known key found for this signature in database
1 changed files with 15 additions and 2 deletions

View File

@ -12,7 +12,7 @@
import RoleNode from "./RoleNode.svelte" import RoleNode from "./RoleNode.svelte"
import RoleEdge from "./RoleEdge.svelte" import RoleEdge from "./RoleEdge.svelte"
import { autoLayout } from "./layout" import { autoLayout } from "./layout"
import { setContext } from "svelte" import { setContext, tick } from "svelte"
import Controls from "./Controls.svelte" import Controls from "./Controls.svelte"
import { GridResolution, MaxAutoZoom } from "./constants" import { GridResolution, MaxAutoZoom } from "./constants"
import { roles } from "stores/builder" import { roles } from "stores/builder"
@ -115,10 +115,21 @@
edges.set(newLayout.edges) edges.set(newLayout.edges)
} }
// Manually selects a node
const selectNode = roleId => {
nodes.update($nodes => {
return $nodes.map(node => ({
...node,
selected: node.id === roleId,
}))
})
}
// Creates a new role // Creates a new role
const createRole = async () => { const createRole = async () => {
const roleId = Helpers.uuid()
await roles.save({ await roles.save({
name: Helpers.uuid(), name: roleId,
uiMetadata: { uiMetadata: {
displayName: getSequentialName($roles, "New role ", { displayName: getSequentialName($roles, "New role ", {
getName: x => x.uiMetadata.displayName, getName: x => x.uiMetadata.displayName,
@ -129,6 +140,8 @@
permissionId: "write", permissionId: "write",
inherits: Roles.BASIC, inherits: Roles.BASIC,
}) })
await tick()
selectNode(roleId)
} }
// Updates a role with new metadata // Updates a role with new metadata