// @flow import React from "react"; import { translate } from "react-i18next"; import { Route, Switch } from "react-router-dom"; import { ExtensionPoint } from "@scm-manager/ui-extensions"; import type { History } from "history"; import { connect } from "react-redux"; import { compose } from "redux"; import type { Links } from "@scm-manager/ui-types"; import { Page, Navigation, NavLink, Section } from "@scm-manager/ui-components"; import { getLinks } from "../../modules/indexResource"; import GlobalConfig from "./GlobalConfig"; import RepositoryRoles from "../roles/containers/RepositoryRoles"; import SingleRepositoryRole from "../roles/containers/SingleRepositoryRole"; import CreateRepositoryRole from "../roles/containers/CreateRepositoryRole"; type Props = { links: Links, // context objects t: string => string, match: any, history: History }; class Config extends React.Component { stripEndingSlash = (url: string) => { if (url.endsWith("/")) { return url.substring(0, url.length - 2); } return url; }; matchedUrl = () => { return this.stripEndingSlash(this.props.match.url); }; matchesRoles = (route: any) => { const url = this.matchedUrl(); const regex = new RegExp(`${url}/role/`); return route.location.pathname.match(regex); }; render() { const { links, t } = this.props; const url = this.matchedUrl(); const extensionProps = { links, url }; return (
( )} /> } /> ( )} /> ( )} />
); } } const mapStateToProps = (state: any) => { const links = getLinks(state); return { links }; }; export default compose( connect(mapStateToProps), translate("config") )(Config);