diff --git a/components/common/ProjectModelGroup.vue b/components/common/ProjectModelGroup.vue index 024fea4..6c4d342 100644 --- a/components/common/ProjectModelGroup.vue +++ b/components/common/ProjectModelGroup.vue @@ -18,18 +18,24 @@ -
+
@@ -130,6 +136,13 @@ const projectAccount = computed(() => accountStore.accountWithFallback(props.project.accountId, props.project.serverUrl) ) +const isPersonalProject = computed(() => !projectDetails.value?.workspace) +const projectNavigatorTippy = computed(() => + isPersonalProject.value + ? 'Move personal project into a workspace' + : 'Open project in browser' +) + const clientId = projectAccount.value.accountInfo.id const { result: projectDetailsResult, refetch: refetchProjectDetails } = useQuery( diff --git a/components/wizard/PersonalProjectsWarning.vue b/components/wizard/PersonalProjectsWarning.vue new file mode 100644 index 0000000..d9a5257 --- /dev/null +++ b/components/wizard/PersonalProjectsWarning.vue @@ -0,0 +1,99 @@ + + + diff --git a/components/wizard/ProjectSelector.vue b/components/wizard/ProjectSelector.vue index aaccc37..d3d1c23 100644 --- a/components/wizard/ProjectSelector.vue +++ b/components/wizard/ProjectSelector.vue @@ -6,6 +6,7 @@ class="flex items-center space-x-2 bg-foundation -mx-3 -mt-2 px-3 py-2 shadow-sm border-b" >
+
- -
+
+ + +
@@ -255,15 +256,30 @@ const activeWorkspace = computed(() => { return previouslySelectedWorkspace } } - // fallback to activeWorkspace query result - return activeWorkspaceResult.value?.activeUser + + const activeWorkspace = activeWorkspaceResult.value?.activeUser ?.activeWorkspace as WorkspaceListWorkspaceItemFragment + + // fallback to activeWorkspace query result + if (activeWorkspace) { + return activeWorkspace + } + + // if activeWorkspace is null will mean that it is personal projects - this fallback wont be the case soon + return { + id: 'personalProject', + name: 'Personal Projects' + } as WorkspaceListWorkspaceItemFragment }) const selectedWorkspace = ref( activeWorkspace.value ) +const isPersonalProjectsAsWorkspace = computed( + () => selectedWorkspace.value?.id === 'personalProject' +) + watch( workspaces, (newItems) => { @@ -332,12 +348,11 @@ const { limit: 10, // stupid hack, increased it since we do manual filter to be able to see more project, see below TODO note, once we have `personalOnly` filter, decrease back to 10 filter: { search: (searchText.value || '').trim() || null, - workspaceId: - selectedWorkspace.value?.id === 'personalProject' - ? null - : selectedWorkspace.value?.id, + workspaceId: isPersonalProjectsAsWorkspace.value + ? null + : selectedWorkspace.value?.id, includeImplicitAccess: true, - personalOnly: selectedWorkspace.value?.id === 'personalProject' + personalOnly: isPersonalProjectsAsWorkspace.value } }), () => ({ @@ -349,7 +364,7 @@ const { ) const projects = computed(() => - selectedWorkspace.value?.id === 'personalProject' // TODO: we need to replace this logic with `personalOnly` filter when it is implemented into app.speckle.systems + isPersonalProjectsAsWorkspace.value // TODO: we need to replace this logic with `personalOnly` filter when it is implemented into app.speckle.systems ? projectsResult.value?.activeUser?.projects.items.filter( (i) => i.workspaceId === null ) diff --git a/components/wizard/WorkspaceSelector.vue b/components/wizard/WorkspaceSelector.vue deleted file mode 100644 index 63659fe..0000000 --- a/components/wizard/WorkspaceSelector.vue +++ /dev/null @@ -1,90 +0,0 @@ - - -