import React, { useState, useEffect, useLayoutEffect } from "react"; import TokensList from "../../src/components/TokensList"; import TokenRequest from "../../src/components/TokenRequest"; import { useTokens } from "../../src/core/hooks"; import { VStack, Stack, Input, Box, Center, Spinner, ScaleFade, Button, Heading, useDisclosure, Modal, ModalOverlay, ModalContent, ModalHeader, ModalBody, ModalCloseButton, InputGroup, } from "@chakra-ui/react"; import { getLayout } from "../../src/layouts/AccountLayout"; const Tokens = () => { const { onOpen, onClose, isOpen } = useDisclosure(); const [newToken, setNewToken] = useState(null); const [filter, setFilter] = useState(""); const [tokens, setTokens] = useState(); const { list, updateMutation, revoke, isLoading, data } = useTokens(); useEffect(() => { list(); //eslint-disable-next-line }, []); useLayoutEffect(() => { if (newToken) { const newData = { ...tokens }; newData.token.push(newToken); setTokens(newData); setNewToken(null); } }, [newToken, list, data, tokens]); useLayoutEffect(() => { if (data?.data?.user_id) { setTokens(data.data); } }, [data, isLoading]); useEffect(() => { document.title = `Tokens`; }, []); const handleChange = (event) => setFilter(event.target.value); return ( {isLoading && !tokens ? (
) : ( New API access token My API tokens )}
); }; Tokens.getLayout = getLayout; export default Tokens;