From 6bb34cd3a51fa783d2e024e5aa5883e700fc2a09 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sun, 27 Sep 2020 00:51:29 -0700 Subject: [PATCH] Moved files around. Updated test page. --- components/common/DropDown.js | 2 +- components/common/Dropdown.module.css | 4 + components/layout/Page.js | 5 +- components/layout/PageHeader.module.css | 1 + components/metrics/WebsiteChart.js | 4 +- components/metrics/WebsiteChart.module.css | 1 + components/{settings => pages}/Settings.js | 6 +- components/pages/Test.js | 92 +++++++++++++++++++ components/pages/Test.module.css | 5 + components/{ => pages}/WebsiteDetails.js | 16 ++-- .../{ => pages}/WebsiteDetails.module.css | 0 components/{ => pages}/WebsiteList.js | 0 components/{ => pages}/WebsiteList.module.css | 1 + package.json | 2 +- pages/dashboard/[[...id]].js | 2 +- pages/settings/index.js | 2 +- pages/share/[...id].js | 2 +- pages/test.js | 58 ++---------- pages/website/[...id].js | 2 +- 19 files changed, 136 insertions(+), 69 deletions(-) rename components/{settings => pages}/Settings.js (87%) create mode 100644 components/pages/Test.js create mode 100644 components/pages/Test.module.css rename components/{ => pages}/WebsiteDetails.js (92%) rename components/{ => pages}/WebsiteDetails.module.css (100%) rename components/{ => pages}/WebsiteList.js (100%) rename components/{ => pages}/WebsiteList.module.css (87%) diff --git a/components/common/DropDown.js b/components/common/DropDown.js index b6b2357b..d240fbd6 100644 --- a/components/common/DropDown.js +++ b/components/common/DropDown.js @@ -37,7 +37,7 @@ export default function DropDown({ return (
- {options.find(e => e.value === value)?.label || value} +
{options.find(e => e.value === value)?.label || value}
} className={styles.icon} size="small" />
{showMenu && ( diff --git a/components/common/Dropdown.module.css b/components/common/Dropdown.module.css index 4b94f58f..9738b007 100644 --- a/components/common/Dropdown.module.css +++ b/components/common/Dropdown.module.css @@ -19,6 +19,10 @@ min-width: 160px; } +.text { + flex: 1; +} + .icon { padding-left: 20px; } diff --git a/components/layout/Page.js b/components/layout/Page.js index c9a928c5..28492ddf 100644 --- a/components/layout/Page.js +++ b/components/layout/Page.js @@ -1,6 +1,7 @@ import React from 'react'; +import classNames from 'classnames'; import styles from './Page.module.css'; -export default function Page({ children }) { - return
{children}
; +export default function Page({ className, children }) { + return
{children}
; } diff --git a/components/layout/PageHeader.module.css b/components/layout/PageHeader.module.css index 74f7d1a2..263bd5b7 100644 --- a/components/layout/PageHeader.module.css +++ b/components/layout/PageHeader.module.css @@ -4,4 +4,5 @@ align-items: center; align-content: center; min-height: 80px; + align-self: stretch; } diff --git a/components/metrics/WebsiteChart.js b/components/metrics/WebsiteChart.js index 99c03951..ea86ad3e 100644 --- a/components/metrics/WebsiteChart.js +++ b/components/metrics/WebsiteChart.js @@ -59,7 +59,7 @@ export default function WebsiteChart({ } return ( - <> +
- +
); } diff --git a/components/metrics/WebsiteChart.module.css b/components/metrics/WebsiteChart.module.css index 29f94670..0e947aea 100644 --- a/components/metrics/WebsiteChart.module.css +++ b/components/metrics/WebsiteChart.module.css @@ -1,6 +1,7 @@ .container { display: flex; flex-direction: column; + align-self: stretch; } .title { diff --git a/components/settings/Settings.js b/components/pages/Settings.js similarity index 87% rename from components/settings/Settings.js rename to components/pages/Settings.js index be9feb35..c6e39f2a 100644 --- a/components/settings/Settings.js +++ b/components/pages/Settings.js @@ -2,9 +2,9 @@ import React, { useState } from 'react'; import { useRouter } from 'next/router'; import Page from 'components/layout/Page'; import MenuLayout from 'components/layout/MenuLayout'; -import WebsiteSettings from './WebsiteSettings'; -import AccountSettings from './AccountSettings'; -import ProfileSettings from './ProfileSettings'; +import WebsiteSettings from '../settings/WebsiteSettings'; +import AccountSettings from '../settings/AccountSettings'; +import ProfileSettings from '../settings/ProfileSettings'; import { useSelector } from 'react-redux'; import { FormattedMessage } from 'react-intl'; diff --git a/components/pages/Test.js b/components/pages/Test.js new file mode 100644 index 00000000..84efbd67 --- /dev/null +++ b/components/pages/Test.js @@ -0,0 +1,92 @@ +import React, { useState } from 'react'; +import classNames from 'classnames'; +import Head from 'next/head'; +import Link from 'next/link'; +import Page from '../layout/Page'; +import PageHeader from '../layout/PageHeader'; +import useFetch from '../../hooks/useFetch'; +import DropDown from '../common/DropDown'; +import styles from './Test.module.css'; +import WebsiteChart from '../metrics/WebsiteChart'; +import EventsChart from '../metrics/EventsChart'; +import Button from '../common/Button'; +import EmptyPlaceholder from '../common/EmptyPlaceholder'; + +export default function Test() { + const [website, setWebsite] = useState(); + const { data } = useFetch('/api/websites'); + + if (!data) { + return null; + } + + const options = data.map(({ name, website_id }) => ({ label: name, value: website_id })); + const selectedValue = options.find(({ value }) => value === website?.website_id)?.value; + + function handleSelect(value) { + setWebsite(data.find(({ website_id }) => website_id === value)); + } + + function handleClick() { + window.umami('event (default)'); + window.umami.trackView('/page-view', 'https://www.google.com'); + window.umami.trackEvent('event (custom)', 'custom-type'); + } + + return ( + + + {typeof window !== 'undefined' && website && ( +