From d0d98f286cb934af814890ddb1a60dbdbafbd1b6 Mon Sep 17 00:00:00 2001 From: Vyacheslav Tumanov <me@slavatumanov.me> Date: Mon, 5 Jun 2023 12:21:00 +0500 Subject: [PATCH] UBER-263: use person after creation (#3304) Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me> --- packages/presentation/src/components/ObjectPopup.svelte | 7 ++++++- .../contact-resources/src/components/CreatePerson.svelte | 4 ++-- plugins/contact-resources/src/components/UsersPopup.svelte | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/presentation/src/components/ObjectPopup.svelte b/packages/presentation/src/components/ObjectPopup.svelte index 80aef9b4e2..2c6a9bb4ce 100644 --- a/packages/presentation/src/components/ObjectPopup.svelte +++ b/packages/presentation/src/components/ObjectPopup.svelte @@ -20,6 +20,7 @@ import { ObjectCreate } from '../types' import { createQuery } from '../utils' import DocPopup from './DocPopup.svelte' + import { createEventDispatcher } from 'svelte' export let _class: Ref<Class<Doc>> export let options: FindOptions<Doc> | undefined = undefined @@ -47,6 +48,7 @@ export let disallowDeselect: Ref<Doc>[] | undefined = undefined const created: Doc[] = [] + const dispatch = createEventDispatcher() let search: string = '' let objects: Doc[] = [] @@ -106,7 +108,10 @@ on:close on:changeContent 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} > <svelte:fragment slot="item" let:item> diff --git a/plugins/contact-resources/src/components/CreatePerson.svelte b/plugins/contact-resources/src/components/CreatePerson.svelte index f4f913ec50..29a7db7bb5 100644 --- a/plugins/contact-resources/src/components/CreatePerson.svelte +++ b/plugins/contact-resources/src/components/CreatePerson.svelte @@ -47,7 +47,7 @@ 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) { await client.addCollection(contact.class.Channel, contact.space.Contacts, id, contact.class.Person, 'channels', { @@ -55,7 +55,7 @@ provider: channel.provider }) } - dispatch('close') + dispatch('close', personId) } let channels: AttachedData<Channel>[] = [] diff --git a/plugins/contact-resources/src/components/UsersPopup.svelte b/plugins/contact-resources/src/components/UsersPopup.svelte index 41042e0734..9159790c57 100644 --- a/plugins/contact-resources/src/components/UsersPopup.svelte +++ b/plugins/contact-resources/src/components/UsersPopup.svelte @@ -19,6 +19,7 @@ import presentation, { getClient, ObjectCreate, ObjectPopup } from '@hcengineering/presentation' import { AnySvelteComponent, Label } from '@hcengineering/ui' import UserInfo from './UserInfo.svelte' + import { createEventDispatcher } from 'svelte' export let _class: Ref<Class<Contact>> export let options: FindOptions<Contact> | undefined = undefined @@ -37,7 +38,7 @@ export let readonly = false const hierarchy = getClient().getHierarchy() - // const dispatch = createEventDispatcher() + const dispatch = createEventDispatcher() $: _create = create !== undefined @@ -68,6 +69,7 @@ on:update on:close on:changeContent + on:created={(doc) => dispatch('close', doc.detail)} {readonly} > <svelte:fragment slot="item" let:item={person}>