Skip to content

Commit 59d262d

Browse files
authored
Automatically select enum after creation (#9915)
1 parent 18b6c1c commit 59d262d

2 files changed

Lines changed: 19 additions & 18 deletions

File tree

packages/presentation/src/components/DocPopup.svelte

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,11 @@
7979
findObjectPresenter(_class)
8080
}
8181
82-
const checkSelected = (item?: Doc): void => {
83-
if (item === undefined) {
84-
return
85-
}
86-
if (selectedElements.has(item._id)) {
87-
selectedElements.delete(item._id)
82+
const checkSelected = (_id: Ref<Doc>): void => {
83+
if (selectedElements.has(_id)) {
84+
selectedElements.delete(_id)
8885
} else {
89-
selectedElements.add(item._id)
86+
selectedElements.add(_id)
9087
}
9188
9289
selectedObjects = Array.from(selectedElements)
@@ -97,12 +94,16 @@
9794
let selection = 0
9895
let list: ListView
9996
100-
async function handleSelection (evt: Event | undefined, objects: Doc[], selection: number): Promise<void> {
97+
function handleSelection (evt: Event | undefined, objects: Doc[], selection: number): void {
10198
const item = objects[selection]
10299
if (item === undefined) {
103100
return
104101
}
105102
103+
select(item)
104+
}
105+
106+
function select (item: Doc): void {
106107
if (!multiSelect) {
107108
if (allowDeselect) {
108109
selected = item._id === selected ? undefined : item._id
@@ -111,7 +112,7 @@
111112
}
112113
dispatch(closeAfterSelect ? 'close' : 'update', selected !== undefined ? item : undefined)
113114
} else {
114-
checkSelected(item)
115+
checkSelected(item._id)
115116
}
116117
}
117118
@@ -129,7 +130,7 @@
129130
if (key.code === 'Enter') {
130131
key.preventDefault()
131132
key.stopPropagation()
132-
void handleSelection(key, objects, selection)
133+
handleSelection(key, objects, selection)
133134
}
134135
}
135136
const manager = createFocusManager()
@@ -142,11 +143,10 @@
142143
showPopup(c.component, c.props ?? {}, 'top', async (res) => {
143144
if (res != null) {
144145
// We expect reference to new object.
145-
const newPerson = await getClient().findOne(_class, { _id: res })
146-
if (newPerson !== undefined) {
147-
search = c.update?.(newPerson) ?? ''
148-
dispatch('created', newPerson)
149-
dispatch('search', search)
146+
const newObject = await getClient().findOne(_class, { _id: res })
147+
if (newObject !== undefined) {
148+
dispatch('created', newObject)
149+
select(newObject)
150150
}
151151
}
152152
})
@@ -248,7 +248,7 @@
248248
class="menu-item withList w-full flex-row-center"
249249
disabled={readonly || isDeselectDisabled || loading}
250250
on:click={() => {
251-
void handleSelection(undefined, objects, item)
251+
handleSelection(undefined, objects, item)
252252
}}
253253
>
254254
{#if type === 'text'}

plugins/setting-resources/src/components/EditEnum.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,18 @@
5252
5353
async function save (): Promise<void> {
5454
if (value === undefined) {
55-
await client.createDoc(core.class.Enum, core.space.Model, {
55+
const _id = await client.createDoc(core.class.Enum, core.space.Model, {
5656
name,
5757
enumValues: values
5858
})
59+
dispatch('close', _id)
5960
} else {
6061
await client.update(value, {
6162
name,
6263
enumValues: values
6364
})
65+
dispatch('close', value._id)
6466
}
65-
dispatch('close')
6667
}
6768
6869
function add (): void {

0 commit comments

Comments
 (0)