function CatalogTablesComponent()

in src/Components/CatalogTablesComponent.js [28:62]


function CatalogTablesComponent(props) {
    const {dbname} = useParams();
    
    const [tables, setTables] = useState([]);
    const [nextToken, setNextToken] = useState();
    const [response, setResponse] = useState();
    const [executionArn, setExecutionArn] = useState();
    const [requestSuccessful, setRequestSuccessful] = useState(false);

    const requestAccessSuccessHandler = async(executionArn) => {
        setExecutionArn(executionArn);
        setRequestSuccessful(true);
    }

    useEffect(async() => {
        const credentials = await Auth.currentCredentials();
        const glue = new GlueClient({region: config.aws_project_region, credentials: Auth.essentialCredentials(credentials)});
        const results = await glue.send(new GetTablesCommand({DatabaseName: dbname, NextToken: nextToken}));
        setTables(tables => tables.concat(results.TableList));
        setResponse(results);
    }, [nextToken]);

    return(
        <div>
            <BreadcrumbGroup items={[
                { text: "Databases", href: "/"},
                { text: dbname, href: "/tables/"+dbname }
            ]} />
            <Box margin={{top: "s", bottom: "s"}} display={requestSuccessful ? "block" : "none"}>
                <Flashbar items={[{type: "success", header: "Request Submitted ("+executionArn+")", content: "Successfully submitted request, once approved please accept RAM request."}]}></Flashbar>
            </Box>
            <DatabaseDetailsComponent dbName={dbname} />
            <Box margin={{top: "l"}}>
                <Table 
                    footer={<Box textAlign="center" display={(response && response.NextToken) ? "block" : "none"}><Link variant="primary" onFollow={(event) => setNextToken(response.NextToken)}>View More</Link></Box>}