diff --git a/site/src/components/CliAuthToken/CliAuthToken.stories.tsx b/site/src/components/CliAuthToken/CliAuthToken.stories.tsx deleted file mode 100644 index 93c6572678e5b..0000000000000 --- a/site/src/components/CliAuthToken/CliAuthToken.stories.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Story } from "@storybook/react" -import { CliAuthToken, CliAuthTokenProps } from "./CliAuthToken" - -export default { - title: "components/CliAuthToken", - component: CliAuthToken, - argTypes: { - sessionToken: { control: "text", defaultValue: "some-session-token" }, - }, -} - -const Template: Story = (args) => - -export const Example = Template.bind({}) -Example.args = {} diff --git a/site/src/components/CliAuthToken/CliAuthToken.test.tsx b/site/src/components/CliAuthToken/CliAuthToken.test.tsx deleted file mode 100644 index 26994cfff1273..0000000000000 --- a/site/src/components/CliAuthToken/CliAuthToken.test.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { screen } from "@testing-library/react" -import { render } from "../../testHelpers/renderHelpers" -import { CliAuthToken } from "./CliAuthToken" - -describe("CliAuthToken", () => { - it("renders content", async () => { - // When - render() - - // Then - await screen.findByText("Session Token") - await screen.findByText("test-token") - }) -}) diff --git a/site/src/components/CliAuthToken/CliAuthToken.tsx b/site/src/components/CliAuthToken/CliAuthToken.tsx deleted file mode 100644 index 4a00502defa66..0000000000000 --- a/site/src/components/CliAuthToken/CliAuthToken.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import Paper from "@material-ui/core/Paper" -import { makeStyles } from "@material-ui/core/styles" -import Typography from "@material-ui/core/Typography" -import { FC } from "react" -import { CodeExample } from "../CodeExample/CodeExample" - -export interface CliAuthTokenProps { - sessionToken: string -} - -export const CliAuthToken: FC> = ({ sessionToken }) => { - const styles = useStyles() - return ( - - Session Token - - - ) -} - -const useStyles = makeStyles((theme) => ({ - title: { - marginBottom: theme.spacing(2), - }, - container: { - maxWidth: "680px", - padding: theme.spacing(2), - }, -})) diff --git a/site/src/components/Footer/Footer.tsx b/site/src/components/Footer/Footer.tsx index fc3c2f5edd714..8f5a0a4cac948 100644 --- a/site/src/components/Footer/Footer.tsx +++ b/site/src/components/Footer/Footer.tsx @@ -3,13 +3,14 @@ import { makeStyles } from "@material-ui/core/styles" import AccountTreeIcon from "@material-ui/icons/AccountTree" import AssistantIcon from "@material-ui/icons/Assistant" import ChatIcon from "@material-ui/icons/Chat" +import { colors } from "theme/colors" import * as TypesGen from "../../api/typesGenerated" export const Language = { buildInfoText: (buildInfo: TypesGen.BuildInfoResponse): string => { return `Coder ${buildInfo.version}` }, - copyrightText: `Copyright \u00a9 ${new Date().getFullYear()} Coder Technologies, Inc. All rights reserved.`, + copyrightText: `Copyright \u00a9 ${new Date().getFullYear()} Coder Technologies, Inc.`, reportBugLink: "Report an issue or share feedback", discordLink: "Join Coder on Discord", } @@ -55,12 +56,12 @@ export const Footer: React.FC> = ({ buildIn const useFooterStyles = makeStyles((theme) => ({ root: { - opacity: 0.6, + color: colors.gray[7], textAlign: "center", flex: "0", paddingTop: theme.spacing(2), paddingBottom: theme.spacing(2), - marginTop: theme.spacing(3), + marginTop: theme.spacing(8), }, copyRight: { margin: theme.spacing(0.25), diff --git a/site/src/components/Welcome/Welcome.tsx b/site/src/components/Welcome/Welcome.tsx index c03475415724a..28a74e6d77021 100644 --- a/site/src/components/Welcome/Welcome.tsx +++ b/site/src/components/Welcome/Welcome.tsx @@ -11,7 +11,7 @@ const Language = { ), } -export const Welcome: FC> = ({ +export const Welcome: FC> = ({ message = Language.defaultMessage, }) => { const styles = useStyles() diff --git a/site/src/pages/CliAuthPage/CliAuthPage.tsx b/site/src/pages/CliAuthPage/CliAuthPage.tsx index 3096c080b6749..27eb70be2ce8f 100644 --- a/site/src/pages/CliAuthPage/CliAuthPage.tsx +++ b/site/src/pages/CliAuthPage/CliAuthPage.tsx @@ -1,20 +1,15 @@ -import { makeStyles } from "@material-ui/core/styles" import { useActor } from "@xstate/react" import React, { useContext, useEffect, useState } from "react" import { Helmet } from "react-helmet-async" import { getApiKey } from "../../api/api" -import { CliAuthToken } from "../../components/CliAuthToken/CliAuthToken" -import { FullScreenLoader } from "../../components/Loader/FullScreenLoader" import { pageTitle } from "../../util/page" import { XServiceContext } from "../../xServices/StateContext" +import { CliAuthPageView } from "./CliAuthPageView" export const CliAuthenticationPage: React.FC> = () => { const xServices = useContext(XServiceContext) const [authState] = useActor(xServices.authXService) const { me } = authState.context - - const styles = useStyles() - const [apiKey, setApiKey] = useState(null) useEffect(() => { @@ -25,26 +20,12 @@ export const CliAuthenticationPage: React.FC> = } }, [me?.id]) - if (!apiKey) { - return - } - return ( -
+ <> {pageTitle("CLI Auth")} - -
+ + ) } - -const useStyles = makeStyles(() => ({ - root: { - width: "100vw", - height: "100vh", - display: "flex", - justifyContent: "center", - alignItems: "center", - }, -})) diff --git a/site/src/pages/CliAuthPage/CliAuthPageView.stories.tsx b/site/src/pages/CliAuthPage/CliAuthPageView.stories.tsx new file mode 100644 index 0000000000000..15350d76683cf --- /dev/null +++ b/site/src/pages/CliAuthPage/CliAuthPageView.stories.tsx @@ -0,0 +1,15 @@ +import { Story } from "@storybook/react" +import { CliAuthPageView, CliAuthPageViewProps } from "./CliAuthPageView" + +export default { + title: "pages/CliAuthPageView", + component: CliAuthPageView, + argTypes: { + sessionToken: { control: "text", defaultValue: "some-session-token" }, + }, +} + +const Template: Story = (args) => + +export const Example = Template.bind({}) +Example.args = {} diff --git a/site/src/pages/CliAuthPage/CliAuthPageView.tsx b/site/src/pages/CliAuthPage/CliAuthPageView.tsx new file mode 100644 index 0000000000000..d096148fe24b0 --- /dev/null +++ b/site/src/pages/CliAuthPage/CliAuthPageView.tsx @@ -0,0 +1,65 @@ +import Button from "@material-ui/core/Button" +import { makeStyles } from "@material-ui/core/styles" +import { CodeExample } from "components/CodeExample/CodeExample" +import { SignInLayout } from "components/SignInLayout/SignInLayout" +import { Welcome } from "components/Welcome/Welcome" +import React from "react" +import { Link as RouterLink } from "react-router-dom" +import { FullScreenLoader } from "../../components/Loader/FullScreenLoader" + +export interface CliAuthPageViewProps { + sessionToken: string | null +} + +export const CliAuthPageView: React.FC = ({ sessionToken }) => { + const styles = useStyles() + + if (!sessionToken) { + return + } + + return ( + + +

+ Copy the session token below and{" "} + paste it in your terminal. +

+ + + +
+ +
+
+ ) +} + +const useStyles = makeStyles((theme) => ({ + title: { + fontSize: theme.spacing(4), + fontWeight: 400, + lineHeight: "140%", + margin: 0, + }, + + text: { + fontSize: 16, + color: theme.palette.text.secondary, + marginBottom: theme.spacing(4), + textAlign: "center", + lineHeight: "160%", + }, + + lineBreak: { + whiteSpace: "nowrap", + }, + + links: { + display: "flex", + justifyContent: "flex-end", + paddingTop: theme.spacing(1), + }, +}))