kopia lustrzana https://github.com/bugout-dev/moonstream
88 wiersze
2.5 KiB
JavaScript
88 wiersze
2.5 KiB
JavaScript
|
|
import { jsx } from "@emotion/react";
|
|
import { useEffect, useRef, Fragment } from "react";
|
|
import {
|
|
FormControl,
|
|
FormErrorMessage,
|
|
InputGroup,
|
|
Input,
|
|
Td,
|
|
Tr,
|
|
} from "@chakra-ui/react";
|
|
import { CloseIcon } from "@chakra-ui/icons";
|
|
import IconButton from "./IconButton";
|
|
|
|
const NewTokenTr = ({ isOpen, toggleSelf, errors, register, journalName }) => {
|
|
const inputRef = useRef(null);
|
|
useEffect(() => {
|
|
if (isOpen) {
|
|
//without timeout input is not catching focus on chrome and firefox..
|
|
//probably because it is hidden within accordion
|
|
setTimeout(() => {
|
|
inputRef.current.focus();
|
|
}, 100);
|
|
}
|
|
}, [inputRef, isOpen]);
|
|
|
|
return (
|
|
<Fragment>
|
|
{isOpen && (
|
|
<Tr transition="0.3s" _hover={{ bg: "white.200" }}>
|
|
<Td>New Token:</Td>
|
|
<Td>
|
|
<FormControl isInvalid={errors.appName}>
|
|
<InputGroup>
|
|
<Input
|
|
fontSize="sm"
|
|
border="none"
|
|
width="60%"
|
|
defaultValue={journalName}
|
|
height="fit-content"
|
|
placeholder="App name"
|
|
name="appName"
|
|
ref={(e) => {
|
|
register(e, { required: "app name is required" });
|
|
inputRef.current = e;
|
|
}}
|
|
/>
|
|
</InputGroup>
|
|
<FormErrorMessage color="unsafe.400" pl="1">
|
|
{errors.appName && errors.appName.message}
|
|
</FormErrorMessage>
|
|
</FormControl>
|
|
</Td>
|
|
<Td>
|
|
<FormControl isInvalid={errors.appVersion}>
|
|
<InputGroup>
|
|
<Input
|
|
fontSize="sm"
|
|
border="none"
|
|
width="60%"
|
|
height="fit-content"
|
|
placeholder="App Version"
|
|
name="appVersion"
|
|
ref={(e) => {
|
|
register(e, { required: "app name is required" });
|
|
}}
|
|
/>
|
|
</InputGroup>
|
|
<FormErrorMessage color="unsafe.400" pl="1">
|
|
{errors.appVersion && errors.appVersion.message}
|
|
</FormErrorMessage>
|
|
</FormControl>
|
|
</Td>
|
|
<Td>
|
|
<IconButton type="submit" />
|
|
<IconButton
|
|
onClick={() => toggleSelf(false)}
|
|
icon={<CloseIcon />}
|
|
/>
|
|
</Td>
|
|
</Tr>
|
|
)}
|
|
</Fragment>
|
|
);
|
|
};
|
|
|
|
export default NewTokenTr;
|