diff --git a/apps/web/src/components/accent-item/index.js b/apps/web/src/components/accent-item/index.js
new file mode 100644
index 000000000..9b5991773
--- /dev/null
+++ b/apps/web/src/components/accent-item/index.js
@@ -0,0 +1,33 @@
+import React from "react";
+import { Flex } from "rebass";
+import * as Icon from "../icons";
+import { useStore as useThemeStore } from "../../stores/theme-store";
+
+function AccentItem(props) {
+ const { code, label } = props;
+ const setAccent = useThemeStore(store => store.setAccent);
+ const accent = useThemeStore(store => store.accent);
+
+ return (
+ setAccent(code)}
+ key={label}
+ >
+ {code === accent && (
+
+ )}
+
+
+ );
+}
+export default AccentItem;
diff --git a/apps/web/src/theme/accents.js b/apps/web/src/theme/accents.js
new file mode 100644
index 000000000..74f75489f
--- /dev/null
+++ b/apps/web/src/theme/accents.js
@@ -0,0 +1,13 @@
+const accents = [
+ { label: "red", code: "#ed2d37" },
+ { label: "orange", code: "#ec6e05" },
+ { label: "yellow", code: "yellow" },
+ { label: "green", code: "green" },
+ { label: "blue", code: "blue" },
+ { label: "purple", code: "purple" },
+ { label: "gray", code: "gray" },
+ { label: "lightblue", code: "#46F0F0" },
+ { label: "indigo", code: "#F032E6" },
+ { label: "lightpink", code: "#FABEBE" }
+];
+export default accents;
diff --git a/apps/web/src/theme/variants/button.js b/apps/web/src/theme/variants/button.js
index d3104963d..32a4abf75 100644
--- a/apps/web/src/theme/variants/button.js
+++ b/apps/web/src/theme/variants/button.js
@@ -62,6 +62,7 @@ class List {
variant: "buttons.tertiary",
border: "0px solid",
borderBottom: "1px solid",
+ borderBottomColor: "border",
borderRadius: 0,
p: 2
};
diff --git a/apps/web/src/theme/variants/text.js b/apps/web/src/theme/variants/text.js
index 48416d090..06e282850 100644
--- a/apps/web/src/theme/variants/text.js
+++ b/apps/web/src/theme/variants/text.js
@@ -5,6 +5,7 @@ class TextFactory {
heading: new Heading(),
title: new Title(),
body: new Body(),
+ subBody: new SubBody(),
error: new Error()
};
}
@@ -46,6 +47,12 @@ class Body {
}
}
+class SubBody {
+ constructor() {
+ return { variant: "text.default", fontSize: "subBody" };
+ }
+}
+
class Error {
constructor() {
return { variant: "text.default", fontSize: "subBody", color: "error" };
diff --git a/apps/web/src/views/Settings.js b/apps/web/src/views/Settings.js
index 7d95770c0..67206b55d 100644
--- a/apps/web/src/views/Settings.js
+++ b/apps/web/src/views/Settings.js
@@ -1,23 +1,21 @@
import React, { useEffect } from "react";
import { Box, Button, Flex, Text } from "rebass";
import * as Icon from "../components/icons";
-import "../app.css";
import { useStore as useUserStore } from "../stores/user-store";
import { useStore as useThemeStore } from "../stores/theme-store";
+import AccentItem from "../components/accent-item";
+import accents from "../theme/accents";
function Settings(props) {
const theme = useThemeStore(store => store.theme);
- const accent = useThemeStore(store => store.accent);
const toggleNightMode = useThemeStore(store => store.toggleNightMode);
- const setAccent = useThemeStore(store => store.theme);
const user = useUserStore(store => store.user);
const isLoggedIn = useUserStore(store => store.isLoggedIn);
return (
-
+
props.navigator.navigate("account")}
@@ -26,149 +24,78 @@ function Settings(props) {
variant="columnCenter"
bg="primary"
mr={2}
+ size={40}
sx={{
- width: 40,
- height: 40,
borderRadius: 80
}}
>
-
+
{isLoggedIn ? (
<>
{user.username}
- {user.email}
+ {user.email}
>
) : (
<>
-
- You are not logged in
-
-
+ You are not logged in
+
Login to sync notes.
>
)}
-
+
Appearance
-
+
- {[
- { label: "red", code: "#ed2d37" },
- { label: "orange", code: "#ec6e05" },
- { label: "yellow", code: "yellow" },
- { label: "green", code: "green" },
- { label: "blue", code: "blue" },
- { label: "purple", code: "purple" },
- { label: "gray", code: "gray" },
- { label: "lightblue", code: "#46F0F0" },
- { label: "indigo", code: "#F032E6" },
- { label: "lightpink", code: "#FABEBE" }
- ].map(color => (
- {
- setAccent(color.code);
- }}
- >
- {color.code === accent && (
-
- )}
-
-
+ {accents.map(color => (
+
))}
toggleNightMode()}
+ py={2}
>
Dark Mode
{theme === "dark" ? : }
-
+
Other
-
-
-
-
+
+ {["Terms of Service", "Privacy Policy", "About"].map(title => (
+
+ ))}
);
}
@@ -184,13 +111,4 @@ function SettingsContainer() {
return ;
}
-const Titles = {
- general: "General",
- account: "Account",
- accent: "Accent Color",
- TOS: "Terms of Service",
- privacy: "Privacy Policy",
- about: "About"
-};
-
export { Settings, SettingsContainer };