import { FC, ReactNode, useState, useEffect } from 'react';
import SkeletonTable from '@patternfly/react-component-groups/dist/dynamic/SkeletonTable';
import { Table, Tbody, Td, Th, Tr, Thead } from '@patternfly/react-table';
import { Button, Stack, StackItem } from '@patternfly/react-core';
interface Repository {
name: string;
branches: string | null;
prs: string | null;
workspaces: string;
lastCommit: string;
}
export const SkeletonTableExample: FC = () => {
const [ isLoaded, setIsLoaded ] = useState(false);
const loadData = () => {
setIsLoaded(false);
setTimeout(() => {
setIsLoaded(true);
}, 5000);
};
const repositories: Repository[] = [
{ name: 'one', branches: 'two', prs: 'three', workspaces: 'four', lastCommit: 'five' },
{ name: 'one - 2', branches: null, prs: null, workspaces: 'four - 2', lastCommit: 'five - 2' },
{ name: 'one - 3', branches: 'two - 3', prs: 'three - 3', workspaces: 'four - 3', lastCommit: 'five - 3' }
];
const columnNames = {
name: 'Repositories',
branches: 'Branches',
prs: 'Pull requests',
workspaces: 'Workspaces',
lastCommit: 'Last commit'
};
const table: ReactNode = !isLoaded ? (
| {columnNames.name} | {columnNames.branches} | {columnNames.prs} | {columnNames.workspaces} | {columnNames.lastCommit} |
|---|---|---|---|---|
| {repo.name} | {repo.branches || 'N/A'} | {repo.prs || 'N/A'} | {repo.workspaces} | {repo.lastCommit} |