diff --git a/assets/code.svg b/assets/code.svg new file mode 100644 index 00000000..cd29765e --- /dev/null +++ b/assets/code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/Settings.js b/components/Settings.js index e5432f4d..e9c56610 100644 --- a/components/Settings.js +++ b/components/Settings.js @@ -1,22 +1,25 @@ import React, { useState, useEffect } from 'react'; import Page from './layout/Page'; import Table from './common/Table'; -import Button from './interface/Button'; +import Button from './common/Button'; import PageHeader from './layout/PageHeader'; import Pen from 'assets/pen.svg'; import Trash from 'assets/trash.svg'; import Plus from 'assets/plus.svg'; +import Code from 'assets/code.svg'; import { get } from 'lib/web'; import Modal from './common/Modal'; import WebsiteEditForm from './forms/WebsiteEditForm'; import styles from './Settings.module.css'; import WebsiteDeleteForm from './forms/WebsiteDeleteForm'; +import WebsiteCodeForm from './forms/WebsiteCodeForm'; export default function Settings() { const [data, setData] = useState(); const [edit, setEdit] = useState(); const [del, setDelete] = useState(); const [add, setAdd] = useState(); + const [code, setCode] = useState(); const [saved, setSaved] = useState(0); const columns = [ @@ -29,6 +32,9 @@ export default function Settings() { }, render: row => ( <> + @@ -49,6 +55,7 @@ export default function Settings() { setAdd(null); setEdit(null); setDelete(null); + setCode(null); } async function loadData() { @@ -74,13 +81,13 @@ export default function Settings() { {edit && ( - + )} {add && ( @@ -88,7 +95,12 @@ export default function Settings() { )} {del && ( - + + + )} + {code && ( + + )} diff --git a/components/WebsiteList.js b/components/WebsiteList.js index 0e1dfd89..1ac294f5 100644 --- a/components/WebsiteList.js +++ b/components/WebsiteList.js @@ -1,11 +1,11 @@ import React, { useState, useEffect } from 'react'; import { useRouter } from 'next/router'; import { get } from 'lib/web'; -import Link from './interface/Link'; +import Link from './common/Link'; import WebsiteChart from './charts/WebsiteChart'; import Page from './layout/Page'; -import Icon from './interface/Icon'; -import Button from './interface/Button'; +import Icon from './common/Icon'; +import Button from './common/Button'; import PageHeader from './layout/PageHeader'; import Arrow from 'assets/arrow-right.svg'; import styles from './WebsiteList.module.css'; diff --git a/components/charts/QuickButtons.js b/components/charts/QuickButtons.js index 831a2c05..515fd668 100644 --- a/components/charts/QuickButtons.js +++ b/components/charts/QuickButtons.js @@ -1,6 +1,6 @@ import React from 'react'; import classNames from 'classnames'; -import Button from '../interface/Button'; +import Button from '../common/Button'; import { getDateRange } from 'lib/date'; import styles from './QuickButtons.module.css'; diff --git a/components/interface/Button.js b/components/common/Button.js similarity index 93% rename from components/interface/Button.js rename to components/common/Button.js index 73513d91..7963a36a 100644 --- a/components/interface/Button.js +++ b/components/common/Button.js @@ -10,7 +10,7 @@ export default function Button({ variant, children, className, - onClick = () => {}, + ...props }) { return ( + ); +} diff --git a/components/common/DropDown.js b/components/common/DropDown.js index f74fabff..1f8bfda0 100644 --- a/components/common/DropDown.js +++ b/components/common/DropDown.js @@ -1,10 +1,10 @@ import React, { useState, useRef } from 'react'; import classNames from 'classnames'; -import Menu from '../interface/Menu'; +import Menu from './Menu'; import useDocumentClick from 'hooks/useDocumentClick'; import Chevron from 'assets/chevron-down.svg'; import styles from './Dropdown.module.css'; -import Icon from '../interface/Icon'; +import Icon from './Icon'; export default function DropDown({ value, diff --git a/components/interface/Icon.js b/components/common/Icon.js similarity index 100% rename from components/interface/Icon.js rename to components/common/Icon.js diff --git a/components/interface/Icon.module.css b/components/common/Icon.module.css similarity index 100% rename from components/interface/Icon.module.css rename to components/common/Icon.module.css diff --git a/components/interface/Link.js b/components/common/Link.js similarity index 100% rename from components/interface/Link.js rename to components/common/Link.js diff --git a/components/interface/Link.module.css b/components/common/Link.module.css similarity index 100% rename from components/interface/Link.module.css rename to components/common/Link.module.css diff --git a/components/interface/Menu.js b/components/common/Menu.js similarity index 100% rename from components/interface/Menu.js rename to components/common/Menu.js diff --git a/components/interface/Menu.module.css b/components/common/Menu.module.css similarity index 100% rename from components/interface/Menu.module.css rename to components/common/Menu.module.css diff --git a/components/common/Table.module.css b/components/common/Table.module.css index 3e0f4cbb..609297a7 100644 --- a/components/common/Table.module.css +++ b/components/common/Table.module.css @@ -12,6 +12,7 @@ font-weight: 600; line-height: 40px; flex: 1; + border-bottom: 1px solid var(--gray300); } .body { diff --git a/components/interface/UserButton.js b/components/common/UserButton.js similarity index 100% rename from components/interface/UserButton.js rename to components/common/UserButton.js diff --git a/components/interface/UserButton.module.css b/components/common/UserButton.module.css similarity index 100% rename from components/interface/UserButton.module.css rename to components/common/UserButton.module.css diff --git a/components/forms/LoginForm.js b/components/forms/LoginForm.js index 0991c5eb..366abbf7 100644 --- a/components/forms/LoginForm.js +++ b/components/forms/LoginForm.js @@ -2,9 +2,8 @@ import React, { useState } from 'react'; import { Formik, Form, Field } from 'formik'; import Router from 'next/router'; import { post } from 'lib/web'; -import Button from '../interface/Button'; +import Button from '../common/Button'; import FormLayout, { FormButtons, FormError, FormMessage, FormRow } from '../layout/FormLayout'; -import styles from './LoginForm.module.css'; const validate = ({ username, password }) => { const errors = {}; @@ -44,7 +43,7 @@ export default function LoginForm() { > {() => (
-

umami

+

umami

diff --git a/components/forms/LoginForm.module.css b/components/forms/LoginForm.module.css deleted file mode 100644 index 572dcb15..00000000 --- a/components/forms/LoginForm.module.css +++ /dev/null @@ -1,13 +0,0 @@ -.title { - font-size: var(--font-size-xlarge); - text-align: center; -} - -.button { - color: var(--gray50); - background: var(--gray900); -} - -.button:hover { - background: var(--gray800); -} diff --git a/components/forms/WebsiteCodeForm.js b/components/forms/WebsiteCodeForm.js new file mode 100644 index 00000000..a05ae922 --- /dev/null +++ b/components/forms/WebsiteCodeForm.js @@ -0,0 +1,30 @@ +import React, { useRef } from 'react'; +import Button from 'components/common/Button'; +import FormLayout, { FormButtons, FormRow } from 'components/layout/FormLayout'; +import CopyButton from '../common/CopyButton'; + +export default function WebsiteCodeForm({ values, onClose }) { + const ref = useRef(); + + return ( + +

+ To track stats for {values.name}, place the following code in the <head> + section of your website. +

+ +