mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-09-07 08:26:15 +00:00
feat(zoom): wire Zoom into Nova add-document dropdown +
settings
This commit is contained in:
parent
aedcbeb321
commit
688c942546
5 changed files with 49 additions and 6 deletions
|
|
@ -4,7 +4,7 @@ import { $fetch } from "@lib/api"
|
|||
import { hasActivePlan } from "@lib/queries"
|
||||
import type { ConnectionResponseSchema } from "@repo/validation/api"
|
||||
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"
|
||||
import { GoogleDrive, Notion, OneDrive } from "@ui/assets/icons"
|
||||
import { GoogleDrive, Notion, OneDrive, Zoom } from "@ui/assets/icons"
|
||||
import { useCustomer } from "autumn-js/react"
|
||||
import {
|
||||
Check,
|
||||
|
|
@ -48,7 +48,7 @@ const GDRIVE_SCOPE_LABELS: Record<GDriveSyncScope, string> = {
|
|||
|
||||
type Connection = z.infer<typeof ConnectionResponseSchema>
|
||||
|
||||
type ConnectorProvider = "google-drive" | "notion" | "onedrive"
|
||||
type ConnectorProvider = "google-drive" | "notion" | "onedrive" | "zoom"
|
||||
|
||||
const CONNECTORS: Record<
|
||||
ConnectorProvider,
|
||||
|
|
@ -77,6 +77,12 @@ const CONNECTORS: Record<
|
|||
documentLabel: "documents",
|
||||
icon: OneDrive,
|
||||
},
|
||||
zoom: {
|
||||
title: "Zoom",
|
||||
description: "Sync meeting notes, transcripts, and AI summaries",
|
||||
documentLabel: "meetings",
|
||||
icon: Zoom,
|
||||
},
|
||||
} as const
|
||||
|
||||
/** Extract typed metadata from a connection, with runtime validation. */
|
||||
|
|
@ -753,6 +759,23 @@ export function ConnectContent({ selectedProject }: ConnectContentProps) {
|
|||
</span>
|
||||
</div>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem
|
||||
onClick={() => {
|
||||
setConnectingProvider("zoom")
|
||||
addConnectionMutation.mutate({ provider: "zoom" })
|
||||
}}
|
||||
className="flex items-start gap-2.5 px-3 py-2.5 rounded-md cursor-pointer text-white opacity-60 hover:opacity-100 hover:bg-[#293952]/40 focus:bg-[#293952]/40 focus:opacity-100"
|
||||
>
|
||||
<Zoom className="size-5 mt-0.5 shrink-0" />
|
||||
<div className="flex flex-col gap-0.5 min-w-0">
|
||||
<span className="text-[14px] font-medium text-[#FAFAFA] leading-tight">
|
||||
Zoom
|
||||
</span>
|
||||
<span className="text-[11px] text-[#737373] leading-tight">
|
||||
Meetings & transcripts
|
||||
</span>
|
||||
</div>
|
||||
</DropdownMenuItem>
|
||||
</div>
|
||||
</div>
|
||||
</DropdownMenuContent>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { dmSans125ClassName } from "@/lib/fonts"
|
|||
import { cn } from "@lib/utils"
|
||||
import { $fetch } from "@lib/api"
|
||||
import { hasActivePlan } from "@lib/queries"
|
||||
import { GoogleDrive, Notion, OneDrive } from "@ui/assets/icons"
|
||||
import { GoogleDrive, Notion, OneDrive, Zoom } from "@ui/assets/icons"
|
||||
import { useCustomer } from "autumn-js/react"
|
||||
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"
|
||||
import {
|
||||
|
|
@ -68,6 +68,12 @@ const CONNECTORS = {
|
|||
icon: OneDrive,
|
||||
documentLabel: "documents",
|
||||
},
|
||||
zoom: {
|
||||
title: "Zoom",
|
||||
description: "Sync meeting notes, transcripts, and AI summaries",
|
||||
icon: Zoom,
|
||||
documentLabel: "meetings",
|
||||
},
|
||||
} as const
|
||||
|
||||
type ConnectorProvider = keyof typeof CONNECTORS
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ export const PROVIDER_DISPLAY_NAMES: Record<string, string> = {
|
|||
github: "GitHub",
|
||||
"web-crawler": "Web Crawler",
|
||||
s3: "S3",
|
||||
zoom: "Zoom",
|
||||
}
|
||||
|
||||
/** Provider type union matching the backend import endpoint */
|
||||
|
|
@ -53,3 +54,4 @@ export type ImportProvider =
|
|||
| "github"
|
||||
| "web-crawler"
|
||||
| "s3"
|
||||
| "zoom"
|
||||
|
|
|
|||
|
|
@ -84,13 +84,13 @@ export const apiSchema = createSchema({
|
|||
redirectUrl: z.string().optional(),
|
||||
}),
|
||||
output: z.object({
|
||||
authLink: z.string(),
|
||||
expiresIn: z.string(),
|
||||
authLink: z.string().optional(),
|
||||
expiresIn: z.string().optional(),
|
||||
id: z.string(),
|
||||
redirectsTo: z.string().optional(),
|
||||
}),
|
||||
params: z.object({
|
||||
provider: z.enum(["google-drive", "notion", "onedrive"]),
|
||||
provider: z.enum(["google-drive", "notion", "onedrive", "zoom"]),
|
||||
}),
|
||||
},
|
||||
|
||||
|
|
@ -158,6 +158,7 @@ export const apiSchema = createSchema({
|
|||
"github",
|
||||
"web-crawler",
|
||||
"s3",
|
||||
"zoom",
|
||||
]),
|
||||
}),
|
||||
},
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue