Skip to content
Snippets Groups Projects
index.tsx 1.14 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
    import { Page } from '../../components/Page';
    
    import { Table } from '../../components/Table';
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
    import './index.css';
    
    import { useState } from 'react';
    import { BucketInfo } from '../../models/bucket';
    import APIService from '../../services/APIService';
    import { getHumanSize, parseReadWriteAccess } from '../../commons/utils';
    
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
    
    export const Home = () => {
    
    
      const [isFirstRender, setIsFirstRender] = useState(true);
      const [bucketList, setBucketLists] = useState<BucketInfo[][]>([]);
    
      const columns = ["Bucket", "Objects", "Size", "Access"];
    
      if (isFirstRender) {
        setIsFirstRender(false);
        APIService.get("buckets")
          .then(data => {
            setBucketLists(data["buckets"].map((bucket: BucketInfo) => {
              return [
                bucket.name,
                bucket.objects,
                getHumanSize(bucket.size),
                parseReadWriteAccess(bucket.rw_access)
              ]
            }));
          });
      }
    
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
      return (
    
        <Page title="Home">
    
          <div className="Home">
    
            <div className="flex place-content-center">
            <Table className="table-auto w-2/3" columns={columns} data={bucketList} />
            </div>
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
        </Page>
      );
    }