diff --git a/frontend/index.html b/frontend/index.html index d94d2d6ad7..5dc2bb52ef 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -45,5 +45,6 @@ } + {{live_chat}} diff --git a/frontend/src/app/dialogs/connect-railway-frame.tsx b/frontend/src/app/dialogs/connect-railway-frame.tsx index dc9dde73f9..21481b8a9a 100644 --- a/frontend/src/app/dialogs/connect-railway-frame.tsx +++ b/frontend/src/app/dialogs/connect-railway-frame.tsx @@ -1,6 +1,7 @@ -import { faRailway, Icon } from "@rivet-gg/icons"; +import { faQuestionCircle, faRailway, Icon } from "@rivet-gg/icons"; import * as ConnectRailwayForm from "@/app/forms/connect-railway-form"; -import { Flex, Frame } from "@/components"; +import { HelpDropdown } from "@/app/help-dropdown"; +import { Button, Flex, Frame } from "@/components"; export default function CreateProjectFrameContent() { return ( @@ -9,8 +10,15 @@ export default function CreateProjectFrameContent() { defaultValues={{ name: "" }} > - - Add Railway + +
+ Add Railway +
+ + +
diff --git a/frontend/src/app/dialogs/connect-vercel-frame.tsx b/frontend/src/app/dialogs/connect-vercel-frame.tsx index 7eefe0a7f5..74c9e8b5af 100644 --- a/frontend/src/app/dialogs/connect-vercel-frame.tsx +++ b/frontend/src/app/dialogs/connect-vercel-frame.tsx @@ -1,7 +1,8 @@ -import { faVercel, Icon } from "@rivet-gg/icons"; +import { faQuestionCircle, faVercel, Icon } from "@rivet-gg/icons"; import { useMutation } from "@tanstack/react-query"; import * as ConnectVercelForm from "@/app/forms/connect-vercel-form"; -import { Flex, Frame } from "@/components"; +import { HelpDropdown } from "@/app/help-dropdown"; +import { Button, Flex, Frame } from "@/components"; import { useEngineCompatDataProvider } from "@/components/actors"; export default function CreateProjectFrameContent() { @@ -26,9 +27,16 @@ export default function CreateProjectFrameContent() { defaultValues={{ name: "" }} > - - Add - Vercel + +
+ Add + Vercel +
+ + +
diff --git a/frontend/src/app/help-dropdown.tsx b/frontend/src/app/help-dropdown.tsx new file mode 100644 index 0000000000..f624bed1bf --- /dev/null +++ b/frontend/src/app/help-dropdown.tsx @@ -0,0 +1,61 @@ +import { + faBooks, + faComments, + faDiscord, + faGithub, + Icon, +} from "@rivet-gg/icons"; +import type { ReactNode } from "react"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components"; + +export const HelpDropdown = ({ children }: { children: ReactNode }) => { + return ( + + {children} + + } + onSelect={() => { + window.open( + "https://github.com/rivet-dev/engine/issues", + "_blank", + ); + }} + > + GitHub + + } + onSelect={() => { + window.open("https://rivet.dev/discord", "_blank"); + }} + > + Discord + + } + onSelect={() => { + window.open("https://rivet.dev/docs", "_blank"); + }} + > + Documentation + + {__APP_TYPE__ === "cloud" ? ( + } + onSelect={() => { + Plain.open(); + }} + > + Live Chat + + ) : null} + + + ); +}; diff --git a/frontend/src/app/layout.tsx b/frontend/src/app/layout.tsx index a782eafe74..e41b615159 100644 --- a/frontend/src/app/layout.tsx +++ b/frontend/src/app/layout.tsx @@ -48,6 +48,7 @@ import { ActorBuildsList } from "./actor-builds-list"; import { Changelog } from "./changelog"; import { ContextSwitcher } from "./context-switcher"; import { useInspectorCredentials } from "./credentials-context"; +import { HelpDropdown } from "./help-dropdown"; import { NamespaceSelect } from "./namespace-select"; import { UserDropdown } from "./user-dropdown"; @@ -207,6 +208,15 @@ const Sidebar = ({ + + + ()({ email: context.clerk.user?.primaryEmailAddress ?.emailAddress, }); + + Plain.setCustomerDetails({ + clerkId: context.clerk.user?.id, + email: context.clerk.user?.primaryEmailAddress + ?.emailAddress, + }); return resolve(true); } }); diff --git a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx index 199e4a91d6..81e144970b 100644 --- a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx +++ b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx @@ -1,4 +1,4 @@ -import { faRailway, faVercel, Icon } from "@rivet-gg/icons"; +import { faQuestionCircle, faRailway, faVercel, Icon } from "@rivet-gg/icons"; import { useInfiniteQuery, useQuery } from "@tanstack/react-query"; import { createFileRoute, @@ -6,6 +6,7 @@ import { Link as RouterLink, } from "@tanstack/react-router"; import { match } from "ts-pattern"; +import { HelpDropdown } from "@/app/help-dropdown"; import { RunnersTable } from "@/app/runners-table"; import { Button, DocsSheet, H1, H3, Link, Skeleton } from "@/components"; import { @@ -34,6 +35,16 @@ function RouteComponent() {

Connect

+
+ + + +

Connect your RivetKit application to Rivet Cloud. Use your cloud @@ -51,9 +62,9 @@ function RouteComponent() {

- - - + + +
@@ -64,7 +75,7 @@ function RouteComponent() {