mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-10-26 08:06:09 +01:00
Revert collapsible namespaces
This commit is contained in:
@@ -24,25 +24,17 @@
|
||||
import React, { FC, ReactNode } from "react";
|
||||
import classNames from "classnames";
|
||||
import styled from "styled-components";
|
||||
import { Link } from "react-router-dom";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { RepositoryGroup } from "@scm-manager/ui-types";
|
||||
import { useLocalStorage } from "@scm-manager/ui-api";
|
||||
import Icon from "../Icon";
|
||||
|
||||
const Separator = styled.div`
|
||||
border-bottom: 1px solid rgb(219, 219, 219, 0.5);
|
||||
`;
|
||||
|
||||
type Props = {
|
||||
group: RepositoryGroup;
|
||||
namespaceHeader: ReactNode;
|
||||
elements: ReactNode[];
|
||||
};
|
||||
|
||||
const GroupEntries: FC<Props> = ({ group, elements }) => {
|
||||
const [t] = useTranslation("namespaces");
|
||||
const [collapsed, setCollapsed] = useLocalStorage<boolean | null>(`repoNamespace.${group.name}.collapsed`, null);
|
||||
|
||||
const GroupEntries: FC<Props> = ({ namespaceHeader, elements }) => {
|
||||
const content = elements.map((entry, index) => (
|
||||
<React.Fragment key={index}>
|
||||
<div>{entry}</div>
|
||||
@@ -50,45 +42,12 @@ const GroupEntries: FC<Props> = ({ group, elements }) => {
|
||||
</React.Fragment>
|
||||
));
|
||||
|
||||
const settingsLink = group.namespace?._links?.permissions && (
|
||||
<Link to={`/namespace/${group.name}/settings`} aria-label={t("repositoryOverview.settings.tooltip")}>
|
||||
<Icon
|
||||
color="inherit"
|
||||
name="cog"
|
||||
title={t("repositoryOverview.settings.tooltip")}
|
||||
className="is-size-6 ml-2 has-text-link"
|
||||
/>
|
||||
</Link>
|
||||
);
|
||||
|
||||
return (
|
||||
<>
|
||||
<div
|
||||
className={classNames(
|
||||
"is-flex",
|
||||
"is-align-items-center",
|
||||
"is-justify-content-space-between",
|
||||
"is-size-6",
|
||||
"has-text-weight-bold",
|
||||
"p-3",
|
||||
"has-cursor-pointer"
|
||||
)}
|
||||
onClick={() => setCollapsed(!collapsed)}
|
||||
>
|
||||
<span>
|
||||
<Link to={`/repos/${group.name}/`} className="has-text-inherit">
|
||||
{group.name}
|
||||
</Link>{" "}
|
||||
{settingsLink}
|
||||
</span>
|
||||
<Icon
|
||||
color="inherit"
|
||||
name={collapsed ? "caret-left" : "caret-down"}
|
||||
title={t("repositoryOverview.settings.tooltip")}
|
||||
className="is-size-6 ml-2"
|
||||
/>
|
||||
<div className={classNames("is-flex", "is-align-items-center", "is-size-6", "has-text-weight-bold", "p-3")}>
|
||||
{namespaceHeader}
|
||||
</div>
|
||||
{collapsed ? null : <div className={classNames("box", "p-2")}>{content}</div>}
|
||||
<div className={classNames("box", "p-2")}>{content}</div>
|
||||
<div className="is-clearfix" />
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -22,18 +22,35 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
import React, { FC } from "react";
|
||||
import { GroupEntries, RepositoryEntry } from "@scm-manager/ui-components";
|
||||
import { Link } from "react-router-dom";
|
||||
import { Icon, RepositoryEntry, GroupEntries } from "@scm-manager/ui-components";
|
||||
import { RepositoryGroup } from "@scm-manager/ui-types";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
type Props = {
|
||||
group: RepositoryGroup;
|
||||
};
|
||||
|
||||
const RepositoryGroupEntry: FC<Props> = ({ group }) => {
|
||||
const [t] = useTranslation("namespaces");
|
||||
|
||||
const settingsLink = group.namespace?._links?.permissions && (
|
||||
<Link to={`/namespace/${group.name}/settings`} aria-label={t("repositoryOverview.settings.tooltip")}>
|
||||
<Icon color="inherit" name="cog" title={t("repositoryOverview.settings.tooltip")} className="is-size-6 ml-2" />
|
||||
</Link>
|
||||
);
|
||||
const namespaceHeader = (
|
||||
<>
|
||||
<Link to={`/repos/${group.name}/`} className="has-text-inherit">
|
||||
{group.name}
|
||||
</Link>{" "}
|
||||
{settingsLink}
|
||||
</>
|
||||
);
|
||||
const entries = group.repositories.map((repository, index) => {
|
||||
return <RepositoryEntry repository={repository} key={index} />;
|
||||
});
|
||||
return <GroupEntries group={group} elements={entries} />;
|
||||
return <GroupEntries namespaceHeader={namespaceHeader} elements={entries} />;
|
||||
};
|
||||
|
||||
export default RepositoryGroupEntry;
|
||||
|
||||
Reference in New Issue
Block a user