Improve ui performance

Move repository overview extension to avoid waiting for repositories. Also improve the extension points api to allow predicates without props.

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
This commit is contained in:
Eduard Heimbuch
2023-06-22 13:41:17 +02:00
parent 1c687e7279
commit 6bb9024504
6 changed files with 124 additions and 63 deletions

View File

@@ -27,40 +27,22 @@ import { NamespaceCollection, Repository } from "@scm-manager/ui-types";
import groupByNamespace from "./groupByNamespace";
import RepositoryGroupEntry from "./RepositoryGroupEntry";
import { ExtensionPoint, extensionPoints } from "@scm-manager/ui-extensions";
import { KeyboardIterator, KeyboardSubIterator } from "@scm-manager/ui-shortcuts";
type Props = {
repositories: Repository[];
namespaces: NamespaceCollection;
page: number;
search: string;
namespace?: string;
};
class RepositoryList extends React.Component<Props> {
render() {
const { repositories, namespaces, namespace, page, search } = this.props;
const { repositories, namespaces } = this.props;
const groups = groupByNamespace(repositories, namespaces);
return (
<div className="content">
<KeyboardIterator>
<KeyboardSubIterator>
<ExtensionPoint<extensionPoints.RepositoryOverviewTop>
name="repository.overview.top"
renderAll={true}
props={{
page,
search,
namespace,
}}
/>
</KeyboardSubIterator>
{groups.map((group) => {
return <RepositoryGroupEntry group={group} key={group.name} />;
})}
</KeyboardIterator>
{groups.map((group) => {
return <RepositoryGroupEntry group={group} key={group.name} />;
})}
</div>
);
}