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>}