diff --git a/apps/web/components/select-spaces-modal.tsx b/apps/web/components/select-spaces-modal.tsx index 7198d435d..8f8e85be6 100644 --- a/apps/web/components/select-spaces-modal.tsx +++ b/apps/web/components/select-spaces-modal.tsx @@ -21,7 +21,9 @@ import { Loader, Pencil, Check, + ExternalLink, } from "lucide-react" +import { Tooltip, TooltipContent, TooltipTrigger } from "@ui/components/tooltip" import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query" import { toast } from "sonner" import { DEFAULT_PROJECT_ID } from "@lib/constants" @@ -90,6 +92,14 @@ type Category = { count: number } +const CONSOLE_PLAYGROUND_URL = "https://console.supermemory.ai/playground" + +function openContainerTagInPlayground(containerTag: string) { + const url = new URL(CONSOLE_PLAYGROUND_URL) + url.searchParams.set("containerTag", containerTag) + window.open(url.toString(), "_blank", "noopener,noreferrer") +} + export function SelectSpacesModal({ isOpen, onClose, @@ -590,6 +600,7 @@ export function SelectSpacesModal({ const isOwnSpace = isOwnConversationSpace(project, user?.id) const canEdit = !isDefault && !plugin && !isOwnSpace const canBulkDelete = enableDelete && !isDefault + const canOpenPlayground = enableDelete const isEditing = editingProject?.containerTag === project.containerTag const isBulkDeleteSelected = bulkDeleteTags.has(project.containerTag) const trimmedEditName = editingProject?.name.trim() ?? "" @@ -755,6 +766,27 @@ export function SelectSpacesModal({ )} + {canOpenPlayground && !isEditing && !isBulkDeleteMode && ( + + + + + + Open in Playground + + + )} {enableDelete && !isDefault && !isEditing && @@ -771,7 +803,7 @@ export function SelectSpacesModal({ }) }} aria-label="Delete space" - className="shrink-0 opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded-full hover:bg-red-500/15 cursor-pointer focus:outline-none" + className="-ml-2 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded-full hover:bg-red-500/15 cursor-pointer focus:outline-none" >