diff --git a/composables/image-upload.ts b/composables/image-upload.ts
index a1388b7b5..da395fd99 100644
--- a/composables/image-upload.ts
+++ b/composables/image-upload.ts
@@ -31,7 +31,8 @@ export const useImageUpload = async (file: File, ctx: ImageUploadContext) => {
const response = (await useBaseFetch(url, {
method: 'POST',
body: file,
- })) as ImageUploadResponse // TODO: zod or object validation
+ apiVersion: 3,
+ })) as ImageUploadResponse
// Type check to see if response has a url property and an id property
if (!response?.id || typeof response.id !== 'string') {
diff --git a/pages/collection/[id].vue b/pages/collection/[id].vue
index 3b674e800..befb3f75a 100644
--- a/pages/collection/[id].vue
+++ b/pages/collection/[id].vue
@@ -159,9 +159,9 @@
- {{ $formatNumber(projects.length || 0) }}
+ {{ $formatNumber(projects?.length || 0) }}
- projects
+ projects
@@ -259,7 +259,7 @@
{
- const obj = {}
-
- for (const project of projects.value) {
- obj[project.project_type] = true
- }
-
- delete obj.project
-
- return Object.keys(obj)
+ const projectSet = new Set(
+ projects.value?.map((project) => project?.project_type).filter((x) => x !== undefined) || []
+ )
+ projectSet.delete('project')
+ return Array.from(projectSet)
})
const icon = ref(null)
@@ -483,19 +479,16 @@ async function saveChanges() {
apiVersion: 3,
})
} else if (icon.value) {
- await useBaseFetch(
- `collection/${collection.value.id}/icon?ext=${
- icon.value.type.split('/')[icon.value.type.split('/').length - 1]
- }`,
- {
- method: 'PATCH',
- body: icon.value,
- apiVersion: 3,
- }
- )
+ const ext = icon.value?.type?.split('/').pop()
+ if (!ext) throw new Error('Invalid file type')
+ await useBaseFetch(`collection/${collection.value.id}/icon?ext=${ext}`, {
+ method: 'PATCH',
+ body: icon.value,
+ apiVersion: 3,
+ })
}
- const projectsToRemove = removeProjects.value.map((p) => p.id)
+ const projectsToRemove = removeProjects.value?.map((p) => p.id) ?? []
const newProjects = projects.value
.filter((p) => !projectsToRemove.includes(p.id))
.map((p) => p.id)
diff --git a/pages/search/[searchProjectType].vue b/pages/search/[searchProjectType].vue
index 9da784bde..ec64fed3a 100644
--- a/pages/search/[searchProjectType].vue
+++ b/pages/search/[searchProjectType].vue
@@ -442,7 +442,7 @@ const {
const params = [`limit=${maxResults.value}`, `index=${sortType.value.name}`]
if (query.value.length > 0) {
- params.push(`query=${encodeURIComponent(query.value.replace(/ /g, '+'))}`)
+ params.push(`query=${encodeURIComponent(query.value)}`)
}
if (