diff --git a/apps/client/src/components/icons/google-sheets-icon.tsx b/apps/client/src/components/icons/google-sheets-icon.tsx new file mode 100644 index 0000000..a2ea777 --- /dev/null +++ b/apps/client/src/components/icons/google-sheets-icon.tsx @@ -0,0 +1,23 @@ +import { rem } from '@mantine/core'; + +interface Props { + size?: number | string; +} + +export function GoogleSheetsIcon({ size }: Props) { + return ( + + + + + + + ); +} diff --git a/apps/client/src/components/icons/index.ts b/apps/client/src/components/icons/index.ts index 089bf20..0f5fd1a 100644 --- a/apps/client/src/components/icons/index.ts +++ b/apps/client/src/components/icons/index.ts @@ -4,6 +4,7 @@ export { TypeformIcon } from "./typeform-icon.tsx"; export { VimeoIcon } from "./vimeo-icon.tsx"; export { MiroIcon } from "./miro-icon.tsx"; export { GoogleDriveIcon } from "./google-drive-icon.tsx"; +export { GoogleSheetsIcon } from "./google-sheets-icon.tsx"; export { FramerIcon } from "./framer-icon.tsx"; export { LoomIcon } from "./loom-icon.tsx"; export { YoutubeIcon } from "./youtube-icon.tsx"; diff --git a/apps/client/src/features/editor/components/embed/providers.ts b/apps/client/src/features/editor/components/embed/providers.ts index fe465f9..abbbf1c 100644 --- a/apps/client/src/features/editor/components/embed/providers.ts +++ b/apps/client/src/features/editor/components/embed/providers.ts @@ -91,6 +91,14 @@ export const embedProviders: IEmbedProvider[] = [ return `https://drive.google.com/file/d/${match[4]}/preview`; } }, + { + id: 'gsheets', + name: 'Google Sheets', + regex: /^((?:https?:)?\/\/)?((?:www|m)\.)?(docs\.google\.com)\/spreadsheets\/d\/e\/([a-zA-Z0-9_-]+)\/.*$/, + getEmbedUrl: (match, url: string) => { + return url + } + }, ]; export function getEmbedProviderById(id: string) { diff --git a/apps/client/src/features/editor/components/slash-menu/menu-items.ts b/apps/client/src/features/editor/components/slash-menu/menu-items.ts index 9d15079..9672631 100644 --- a/apps/client/src/features/editor/components/slash-menu/menu-items.ts +++ b/apps/client/src/features/editor/components/slash-menu/menu-items.ts @@ -34,6 +34,7 @@ import { FigmaIcon, FramerIcon, GoogleDriveIcon, + GoogleSheetsIcon, LoomIcon, MiroIcon, TypeformIcon, @@ -442,6 +443,15 @@ const CommandGroups: SlashMenuGroupedItemsType = { editor.chain().focus().deleteRange(range).setEmbed({ provider: 'gdrive' }).run(); }, }, + { + title: "Google Sheets", + description: "Embed Google Sheets content", + searchTerms: ["google sheets", "gsheets"], + icon: GoogleSheetsIcon, + command: ({ editor, range }: CommandProps) => { + editor.chain().focus().deleteRange(range).setEmbed({ provider: 'gsheets' }).run(); + }, + }, ], };