UBER-263: use person after creation (#3304)

Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
This commit is contained in:
Vyacheslav Tumanov 2023-06-05 12:21:00 +05:00 committed by GitHub
parent 55864db82a
commit d0d98f286c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 4 deletions

View File

@ -20,6 +20,7 @@
import { ObjectCreate } from '../types' import { ObjectCreate } from '../types'
import { createQuery } from '../utils' import { createQuery } from '../utils'
import DocPopup from './DocPopup.svelte' import DocPopup from './DocPopup.svelte'
import { createEventDispatcher } from 'svelte'
export let _class: Ref<Class<Doc>> export let _class: Ref<Class<Doc>>
export let options: FindOptions<Doc> | undefined = undefined export let options: FindOptions<Doc> | undefined = undefined
@ -47,6 +48,7 @@
export let disallowDeselect: Ref<Doc>[] | undefined = undefined export let disallowDeselect: Ref<Doc>[] | undefined = undefined
const created: Doc[] = [] const created: Doc[] = []
const dispatch = createEventDispatcher()
let search: string = '' let search: string = ''
let objects: Doc[] = [] let objects: Doc[] = []
@ -106,7 +108,10 @@
on:close on:close
on:changeContent on:changeContent
on:search={(e) => (search = e.detail)} on:search={(e) => (search = e.detail)}
on:created={(doc) => created.push(doc.detail)} on:created={(doc) => {
created.push(doc.detail)
if (!multiSelect) dispatch('created', doc.detail)
}}
{created} {created}
> >
<svelte:fragment slot="item" let:item> <svelte:fragment slot="item" let:item>

View File

@ -47,7 +47,7 @@
person.avatar = await avatarEditor.createAvatar() person.avatar = await avatarEditor.createAvatar()
await client.createDoc(contact.class.Person, contact.space.Contacts, person, id) const personId = await client.createDoc(contact.class.Person, contact.space.Contacts, person, id)
for (const channel of channels) { for (const channel of channels) {
await client.addCollection(contact.class.Channel, contact.space.Contacts, id, contact.class.Person, 'channels', { await client.addCollection(contact.class.Channel, contact.space.Contacts, id, contact.class.Person, 'channels', {
@ -55,7 +55,7 @@
provider: channel.provider provider: channel.provider
}) })
} }
dispatch('close') dispatch('close', personId)
} }
let channels: AttachedData<Channel>[] = [] let channels: AttachedData<Channel>[] = []

View File

@ -19,6 +19,7 @@
import presentation, { getClient, ObjectCreate, ObjectPopup } from '@hcengineering/presentation' import presentation, { getClient, ObjectCreate, ObjectPopup } from '@hcengineering/presentation'
import { AnySvelteComponent, Label } from '@hcengineering/ui' import { AnySvelteComponent, Label } from '@hcengineering/ui'
import UserInfo from './UserInfo.svelte' import UserInfo from './UserInfo.svelte'
import { createEventDispatcher } from 'svelte'
export let _class: Ref<Class<Contact>> export let _class: Ref<Class<Contact>>
export let options: FindOptions<Contact> | undefined = undefined export let options: FindOptions<Contact> | undefined = undefined
@ -37,7 +38,7 @@
export let readonly = false export let readonly = false
const hierarchy = getClient().getHierarchy() const hierarchy = getClient().getHierarchy()
// const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()
$: _create = $: _create =
create !== undefined create !== undefined
@ -68,6 +69,7 @@
on:update on:update
on:close on:close
on:changeContent on:changeContent
on:created={(doc) => dispatch('close', doc.detail)}
{readonly} {readonly}
> >
<svelte:fragment slot="item" let:item={person}> <svelte:fragment slot="item" let:item={person}>