fix(extension): preserve default space in picker

This commit is contained in:
ved015 2026-08-17 21:09:10 +05:30
parent 434c86e2c3
commit b85c398a7b
2 changed files with 45 additions and 3 deletions

View file

@ -2,6 +2,7 @@
* API service for supermemory browser extension
*/
import { API_ENDPOINTS } from "./constants"
import { normalizeProjects } from "./projects"
import { bearerToken, defaultProject, userData } from "./storage"
import { buildSearchMemoriesBody } from "./search-request"
import {
@ -62,9 +63,10 @@ async function makeAuthenticatedRequest<T>(
*/
export async function fetchProjects(): Promise<Project[]> {
try {
const response =
await makeAuthenticatedRequest<ProjectsResponse>("/v3/projects")
return response.projects
const response = await makeAuthenticatedRequest<ProjectsResponse | null>(
"/v3/projects",
)
return normalizeProjects(response?.projects)
} catch (error) {
console.error("Failed to fetch projects:", error)
throw error

View file

@ -0,0 +1,40 @@
import { CONTAINER_TAGS } from "./constants"
import type { Project } from "./types"
type ApiProject = Omit<Project, "name"> & {
name?: string | null
}
const defaultProject: Project = {
id: "default",
name: "Default Project",
containerTag: CONTAINER_TAGS.DEFAULT_PROJECT,
createdAt: "",
updatedAt: "",
documentCount: 0,
}
export function normalizeProjects(
projects: ApiProject[] | null | undefined,
): Project[] {
const normalizedProjects = (Array.isArray(projects) ? projects : []).map(
(project) => ({
...project,
name:
project.name?.trim() ||
(project.containerTag === CONTAINER_TAGS.DEFAULT_PROJECT
? defaultProject.name
: project.containerTag),
}),
)
if (
normalizedProjects.some(
(project) => project.containerTag === CONTAINER_TAGS.DEFAULT_PROJECT,
)
) {
return normalizedProjects
}
return [defaultProject, ...normalizedProjects]
}