diff --git a/plugins/card-resources/src/components/navigator/CreateSpace.svelte b/plugins/card-resources/src/components/navigator/CreateSpace.svelte index 6689d26d0d..3bd7999984 100644 --- a/plugins/card-resources/src/components/navigator/CreateSpace.svelte +++ b/plugins/card-resources/src/components/navigator/CreateSpace.svelte @@ -30,7 +30,11 @@ const hierarchy = client.getHierarchy() let name: string = space?.name ?? '' - let types: Ref[] = space?.types !== undefined ? hierarchy.clone(space.types) : [] + const topLevelTypes = client.getModel().findAllSync(card.class.MasterTag, { + extends: card.class.Card + }) + let types: Ref[] = + space?.types !== undefined ? hierarchy.clone(space.types) : topLevelTypes.map((it) => it._id) let isPrivate: boolean = space?.private ?? false let members: AccountUuid[] = space?.members !== undefined ? hierarchy.clone(space.members) : [getCurrentAccount().uuid] diff --git a/plugins/card-resources/src/components/navigator/NewCardHeader.svelte b/plugins/card-resources/src/components/navigator/NewCardHeader.svelte index fc8b44af5a..853220efab 100644 --- a/plugins/card-resources/src/components/navigator/NewCardHeader.svelte +++ b/plugins/card-resources/src/components/navigator/NewCardHeader.svelte @@ -33,6 +33,7 @@ IconAdd, IconDropdown, Loading, + location, navigate, SelectPopupValueType, showPopup @@ -64,9 +65,9 @@ { limit: 1, projection: { _id: 1 } } ) + $: _class = $location.path[4] as Ref + async function createCard (): Promise { - const loc = getCurrentLocation() - const _class = loc.path[4] as Ref if (_class === undefined || currentSpace === undefined) return const lastOne = await client.findOne(card.class.Card, {}, { sort: { rank: SortingOrder.Descending } }) const title = await translate(card.string.Card, {}) @@ -84,6 +85,7 @@ const _id = await client.createDoc(_class, currentSpace, filledData) Analytics.handleEvent(CardEvents.CardCreated) + const loc = getCurrentLocation() loc.path[3] = _id loc.path.length = 4 @@ -125,6 +127,7 @@ mainButtonId={'new-document'} dropdownIcon={IconDropdown} {dropdownItems} + disabled={currentSpace === undefined || _class === undefined} on:dropdown-selected={(ev) => { void dropdownItemSelected(ev.detail) }} @@ -150,6 +153,7 @@ width={'100%'} kind={'primary'} gap={'large'} + disabled={currentSpace === undefined || _class === undefined} on:click={createCard} /> {/if}