diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index a01b38242..da731a990 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -117,28 +117,6 @@ jobs:
run: yarn build
working-directory: 'packages/viewer-sandbox'
- ui-components-chromatic:
- env:
- CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
- name: UI components chromatic
- runs-on: blacksmith
- continue-on-error: ${{ inputs.CONTINUE_ON_ERROR }}
- steps:
- - uses: actions/checkout@v4.2.2
- with:
- fetch-depth: 0
- - uses: useblacksmith/setup-node@v5
- with:
- node-version: 22
- cache: yarn
- - name: Install dependencies
- run: YARN_ENABLE_HARDENED_MODE=0 PUPPETEER_SKIP_DOWNLOAD=true PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 yarn --immutable
- - name: Build public packages
- run: yarn build:public
- - name: Run chromatic
- run: yarn chromatic
- working-directory: 'packages/ui-components'
-
test-shared:
name: Shared
runs-on: blacksmith
diff --git a/packages/frontend-2/components/viewer/layout/SidePanel.vue b/packages/frontend-2/components/viewer/layout/SidePanel.vue
index 94c24e526..cc77c1c73 100644
--- a/packages/frontend-2/components/viewer/layout/SidePanel.vue
+++ b/packages/frontend-2/components/viewer/layout/SidePanel.vue
@@ -3,11 +3,13 @@
-
- {{ title }}
-
-
-
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
@@ -58,6 +79,7 @@
diff --git a/packages/frontend-2/components/viewer/saved-views/panel/Groups.vue b/packages/frontend-2/components/viewer/saved-views/panel/Groups.vue
index 9f9d09038..05f056e93 100644
--- a/packages/frontend-2/components/viewer/saved-views/panel/Groups.vue
+++ b/packages/frontend-2/components/viewer/saved-views/panel/Groups.vue
@@ -14,6 +14,7 @@
:views-type="viewsType"
:group="group"
:project="project"
+ :search="search"
:is-selected="isGroupSelected(group)"
:rename-mode="isGroupInRenameMode(group)"
@update:is-selected="(value) => (selectedGroupId = value ? group.id : null)"
@@ -92,6 +93,7 @@ const paginableGroupsQuery = graphql(`
const props = defineProps<{
viewsType: ViewsType
+ search?: string
}>()
const selectedGroupId = defineModel
('selectedGroupId', {
@@ -106,7 +108,6 @@ const {
} = useInjectedViewerState()
const eventBus = useEventBus()
-const search = ref('')
const viewBeingEdited = ref()
const viewBeingMoved = ref()
const viewBeingDeleted = ref()
@@ -126,7 +127,7 @@ const {
savedViewGroupsInput: {
resourceIdString: resourceIdString.value,
cursor: null as null | string,
- search: search.value?.trim() || null,
+ search: props.search?.trim() || null,
...viewsTypeToFilters(props.viewsType)
}
})),
@@ -148,7 +149,7 @@ const {
const hasGroups = computed(
() => (result.value?.project.savedViewGroups.items.length || 0) > 0
)
-const isSearch = computed(() => search.value?.trim().length > 0)
+const isSearch = computed(() => (props.search || '').trim().length > 0)
const emptyStateType = computed(() => (isSearch.value ? 'search' : 'base'))
const project = computed(() => result.value?.project)
@@ -206,8 +207,10 @@ watch(
groups,
(newGroups) => {
if (newGroups.length && !selectedGroupId.value) {
- // open default group, if any
- selectedGroupId.value = newGroups.find((g) => g.isUngroupedViewsGroup)?.id || null
+ selectedGroupId.value =
+ (props.search
+ ? newGroups[0].id
+ : newGroups.find((g) => !g.isUngroupedViewsGroup)?.id) || null
}
},
{ immediate: true }
diff --git a/packages/frontend-2/components/viewer/saved-views/panel/view/EditDialog.vue b/packages/frontend-2/components/viewer/saved-views/panel/view/EditDialog.vue
index 0d30f2e71..872bcff84 100644
--- a/packages/frontend-2/components/viewer/saved-views/panel/view/EditDialog.vue
+++ b/packages/frontend-2/components/viewer/saved-views/panel/view/EditDialog.vue
@@ -52,6 +52,7 @@ import {
import { isRequired, isStringOfLength } from '~/lib/common/helpers/validation'
import { useUpdateSavedView } from '~/lib/viewer/composables/savedViews/management'
import { useInjectedViewerState } from '~/lib/viewer/composables/setup'
+import { isUndefined } from 'lodash-es'
graphql(`
fragment ViewerSavedViewsPanelViewEditDialog_SavedView on SavedView {
@@ -128,22 +129,30 @@ const onSubmit = handleSubmit(async (values) => {
const name =
values.name.trim() && values.name.trim() !== props.view.name
? values.name.trim()
- : null
+ : undefined
const description =
values.description?.trim() !== (props.view.description || undefined)
? values.description?.trim() || null
- : null
+ : undefined
const visibility =
- values.visibility !== props.view.visibility ? values.visibility : null
- const groupId = values.group.id !== props.view.group.id ? values.group.id : null
+ values.visibility !== props.view.visibility ? values.visibility : undefined
+ const groupId = values.group.id !== props.view.group.id ? values.group.id : undefined
+
+ const coreInput = {
+ ...(isUndefined(name) ? {} : { name }),
+ ...(isUndefined(description) ? {} : { description }),
+ ...(isUndefined(visibility) ? {} : { visibility }),
+ ...(isUndefined(groupId) ? {} : { groupId })
+ }
+ if (!Object.keys(coreInput).length) {
+ open.value = false
+ return
+ }
const res = await updateView({
view: props.view,
input: {
- name,
- description,
- visibility,
- groupId,
+ ...coreInput,
id: props.view.id,
projectId: props.view.projectId
}
diff --git a/packages/frontend-2/components/viewer/saved-views/panel/views/EmptyState.vue b/packages/frontend-2/components/viewer/saved-views/panel/views/EmptyState.vue
index a8127aafd..6d9bd73d2 100644
--- a/packages/frontend-2/components/viewer/saved-views/panel/views/EmptyState.vue
+++ b/packages/frontend-2/components/viewer/saved-views/panel/views/EmptyState.vue
@@ -1,7 +1,7 @@
-
{{ message }}
+
{{ message }}