From 15024480aa7fc549382ff1fe9fcba37d658746bd Mon Sep 17 00:00:00 2001 From: Rupin Khandelwal Date: Mon, 17 Oct 2022 22:47:42 -0500 Subject: [PATCH] Integrations Page --- .../web/components/patterns/DropdownMenu.tsx | 5 ++ .../web/components/patterns/PrimaryHeader.tsx | 3 + packages/web/pages/settings/integrations.tsx | 84 +++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 packages/web/pages/settings/integrations.tsx diff --git a/packages/web/components/patterns/DropdownMenu.tsx b/packages/web/components/patterns/DropdownMenu.tsx index 248b692de..5d39cc1cb 100644 --- a/packages/web/components/patterns/DropdownMenu.tsx +++ b/packages/web/components/patterns/DropdownMenu.tsx @@ -21,6 +21,7 @@ export type HeaderDropdownAction = | 'navigate-to-profile' | 'navigate-to-subscriptions' | 'navigate-to-api' + | 'navigate-to-integrations' | 'increaseFontSize' | 'decreaseFontSize' | 'logout' @@ -87,6 +88,10 @@ export function DropdownMenu(props: DropdownMenuProps): JSX.Element { onSelect={() => props.actionHandler('navigate-to-api')} title="API Keys" /> + props.actionHandler('navigate-to-integrations')} + title="Integrations" + /> window.Intercom('show')} title="Feedback" diff --git a/packages/web/components/patterns/PrimaryHeader.tsx b/packages/web/components/patterns/PrimaryHeader.tsx index bf70b245e..cb8f65a81 100644 --- a/packages/web/components/patterns/PrimaryHeader.tsx +++ b/packages/web/components/patterns/PrimaryHeader.tsx @@ -95,6 +95,9 @@ export function PrimaryHeader(props: HeaderProps): JSX.Element { case 'navigate-to-api': router.push('/settings/api') break + case 'navigate-to-integrations': + router.push('/settings/integrations') + break case 'logout': props.setShowLogoutConfirmation(true) break diff --git a/packages/web/pages/settings/integrations.tsx b/packages/web/pages/settings/integrations.tsx new file mode 100644 index 000000000..6ac25eecb --- /dev/null +++ b/packages/web/pages/settings/integrations.tsx @@ -0,0 +1,84 @@ +import { styled } from '@stitches/react' +import { Toaster } from 'react-hot-toast' +import { Box, HStack, VStack } from '../../components/elements/LayoutPrimitives' +import { PrimaryLayout } from '../../components/templates/PrimaryLayout' +import { applyStoredTheme } from '../../lib/themeUpdater' + +// Styles +const Header = styled(Box, { + width: '100%', + color: '$utilityTextDefault', + fontSize: 'x-large', + margin: '10px', +}) + +const Para = styled(Box, { + width: '100%', + padding: '20px', + color: '$utilityTextDefault', + borderBottom: '0.5px solid $utilityTextDefault', +}) + +const IntegrationsCard = styled(Box, { + width: '100%', + borderRadius: '5px', + height: '100px', + backgroundColor: '$grayBg', +}) + +const IntegrationBrand = styled(Box, { + height: '100%', + border: '1px solid green', + width: '10%', +}) + +//interface +interface Integrations { + id: string +} + +type integrationsCard = { + icon: string + title: string + subText?: string + button?: string +} +export default function Integrations(): JSX.Element { + applyStoredTheme(false) + + return ( + + + +
Integrations
+
+ + + + Connect with other applications can help enhance and streamline your + experience with Omnivore, below are some useful apps to connect your + Omnivore account to. + + + +
Applications
+ {/* create an integration array with integration props and loop over it */} + + + +
+
+ ) +}