diff --git a/src/components/token/TokenSettings.js b/src/components/token/TokenSettings.js
new file mode 100644
index 0000000..75f4ae4
--- /dev/null
+++ b/src/components/token/TokenSettings.js
@@ -0,0 +1,64 @@
+import React from "react";
+import { Flex, Box, Input, IconButton, Label } from "theme-ui";
+
+import ExpandMoreIcon from "../../icons/ExpandMoreIcon";
+
+function TokenSettings({
+ token,
+ onSettingsChange,
+ showMore,
+ onShowMoreChange,
+}) {
+ return (
+
+
+
+
+
+ onSettingsChange("defaultSize", parseInt(e.target.value))
+ }
+ disabled={!token || token.type === "default"}
+ min={1}
+ my={1}
+ />
+
+
+ {showMore && (
+ <>
+
+
+ onSettingsChange("name", e.target.value)}
+ disabled={!token || token.type === "default"}
+ my={1}
+ />
+
+ >
+ )}
+ {
+ e.stopPropagation();
+ e.preventDefault();
+ onShowMoreChange(!showMore);
+ }}
+ sx={{
+ transform: `rotate(${showMore ? "180deg" : "0"})`,
+ alignSelf: "center",
+ }}
+ aria-label={showMore ? "Show Less" : "Show More"}
+ title={showMore ? "Show Less" : "Show More"}
+ disabled={!token}
+ >
+
+
+
+ );
+}
+
+export default TokenSettings;
diff --git a/src/components/token/Tokens.js b/src/components/token/Tokens.js
index 3eb3ad1..2f87797 100644
--- a/src/components/token/Tokens.js
+++ b/src/components/token/Tokens.js
@@ -1,11 +1,10 @@
-import React, { useState, useContext } from "react";
+import React, { useContext } from "react";
import { Box, Flex } from "theme-ui";
import shortid from "shortid";
import SimpleBar from "simplebar-react";
import ListToken from "./ListToken";
import ProxyToken from "./ProxyToken";
-import NumberInput from "../NumberInput";
import SelectTokensButton from "./SelectTokensButton";
@@ -20,8 +19,6 @@ function Tokens({ onMapTokenStateCreate }) {
const { userId } = useContext(AuthContext);
const { ownedTokens, tokens } = useContext(TokenDataContext);
- const [tokenSize, setTokenSize] = useState(1);
-
function handleProxyDragEnd(isOnMap, token) {
if (isOnMap && onMapTokenStateCreate) {
// Create a token state from the dragged token
@@ -30,7 +27,7 @@ function Tokens({ onMapTokenStateCreate }) {
tokenId: token.id,
tokenType: token.type,
owner: userId,
- size: tokenSize,
+ size: token.defaultSize,
label: "",
statuses: [],
x: token.x,
@@ -69,13 +66,6 @@ function Tokens({ onMapTokenStateCreate }) {
}}
>
- {/* */}
@@ -103,6 +116,19 @@ function SelectTokensModal({ isOpen, onRequestClose }) {
onTokenSelect={handleTokenSelect}
onTokenRemove={handleTokenRemove}
/>
+
+
diff --git a/src/tokens/index.js b/src/tokens/index.js
index 8293d84..7802899 100644
--- a/src/tokens/index.js
+++ b/src/tokens/index.js
@@ -65,10 +65,24 @@ export const tokenSources = {
undead,
};
+function getDefaultTokenSize(key) {
+ switch (key) {
+ case "dragon":
+ case "elemental":
+ case "giant":
+ case "ooze":
+ case "titan":
+ return 2;
+ default:
+ return 1;
+ }
+}
+
export const tokens = Object.keys(tokenSources).map((key) => ({
key,
name: key.charAt(0).toUpperCase() + key.slice(1),
type: "default",
+ defaultSize: getDefaultTokenSize(key),
}));
export const unknownSource = unknown;