2020-04-07 11:47:06 +10:00
|
|
|
import React, { useState } from "react";
|
2020-04-07 18:18:08 +10:00
|
|
|
import { Box } from "theme-ui";
|
2020-03-20 11:05:40 +11:00
|
|
|
import shortid from "shortid";
|
2020-04-07 18:18:08 +10:00
|
|
|
import SimpleBar from "simplebar-react";
|
2020-03-19 21:40:29 +11:00
|
|
|
|
2020-04-23 10:09:12 +10:00
|
|
|
import * as tokens from "../../tokens";
|
2020-03-19 21:40:29 +11:00
|
|
|
|
2020-04-13 00:24:03 +10:00
|
|
|
import ListToken from "./ListToken";
|
2020-03-20 11:05:40 +11:00
|
|
|
import ProxyToken from "./ProxyToken";
|
2020-04-23 10:09:12 +10:00
|
|
|
import NumberInput from "../NumberInput";
|
2020-03-20 11:05:40 +11:00
|
|
|
|
2020-03-20 13:33:12 +11:00
|
|
|
const listTokenClassName = "list-token";
|
2020-03-20 11:05:40 +11:00
|
|
|
|
2020-03-20 13:33:12 +11:00
|
|
|
function Tokens({ onCreateMapToken }) {
|
2020-04-07 11:47:06 +10:00
|
|
|
const [tokenSize, setTokenSize] = useState(1);
|
|
|
|
|
|
2020-03-20 11:05:40 +11:00
|
|
|
function handleProxyDragEnd(isOnMap, token) {
|
|
|
|
|
if (isOnMap && onCreateMapToken) {
|
|
|
|
|
// Give the token an id
|
2020-04-13 00:24:03 +10:00
|
|
|
onCreateMapToken({
|
|
|
|
|
...token,
|
|
|
|
|
id: shortid.generate(),
|
|
|
|
|
size: tokenSize,
|
|
|
|
|
label: "",
|
2020-04-13 23:42:18 +10:00
|
|
|
status: "",
|
2020-04-13 00:24:03 +10:00
|
|
|
});
|
2020-03-20 11:05:40 +11:00
|
|
|
}
|
|
|
|
|
}
|
2020-03-19 17:33:57 +11:00
|
|
|
|
2020-03-19 21:40:29 +11:00
|
|
|
return (
|
2020-03-20 11:05:40 +11:00
|
|
|
<>
|
2020-04-07 18:18:08 +10:00
|
|
|
<Box
|
|
|
|
|
sx={{
|
|
|
|
|
height: "100%",
|
|
|
|
|
width: "80px",
|
|
|
|
|
minWidth: "80px",
|
|
|
|
|
overflow: "hidden",
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<SimpleBar style={{ height: "calc(100% - 58px)", overflowX: "hidden" }}>
|
2020-04-07 11:47:06 +10:00
|
|
|
{Object.entries(tokens).map(([id, image]) => (
|
2020-04-07 18:18:08 +10:00
|
|
|
<Box key={id} my={2} mx={3} sx={{ width: "48px", height: "48px" }}>
|
2020-04-13 00:24:03 +10:00
|
|
|
<ListToken image={image} className={listTokenClassName} />
|
2020-04-07 11:47:06 +10:00
|
|
|
</Box>
|
|
|
|
|
))}
|
2020-04-07 18:18:08 +10:00
|
|
|
</SimpleBar>
|
|
|
|
|
<Box pt={1} bg="muted" sx={{ height: "58px" }}>
|
2020-04-13 00:24:03 +10:00
|
|
|
<NumberInput
|
|
|
|
|
value={tokenSize}
|
|
|
|
|
onChange={setTokenSize}
|
|
|
|
|
title="Size"
|
|
|
|
|
min={1}
|
|
|
|
|
max={9}
|
|
|
|
|
/>
|
2020-04-07 11:47:06 +10:00
|
|
|
</Box>
|
2020-04-07 18:18:08 +10:00
|
|
|
</Box>
|
2020-03-20 11:05:40 +11:00
|
|
|
<ProxyToken
|
2020-03-20 13:33:12 +11:00
|
|
|
tokenClassName={listTokenClassName}
|
2020-03-20 11:05:40 +11:00
|
|
|
onProxyDragEnd={handleProxyDragEnd}
|
|
|
|
|
/>
|
|
|
|
|
</>
|
2020-03-19 21:40:29 +11:00
|
|
|
);
|
2020-03-19 17:33:57 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default Tokens;
|