changed panel usage + added pannel-footer

This commit is contained in:
Florian Scholdei
2019-01-29 17:12:18 +01:00
parent d70c2bd624
commit 258e11025a
6 changed files with 58 additions and 18 deletions

View File

@@ -1,17 +1,26 @@
// @flow // @flow
import ChangesetRow from "./ChangesetRow"; import ChangesetRow from "./ChangesetRow";
import React from "react"; import React from "react";
import injectSheet from "react-jss";
import classNames from "classnames";
import type { Changeset, Repository } from "@scm-manager/ui-types"; import type { Changeset, Repository } from "@scm-manager/ui-types";
type Props = { type Props = {
repository: Repository, repository: Repository,
changesets: Changeset[] changesets: Changeset[],
classes: any
};
const styles = {
toCenterContent: {
display: "block"
}
}; };
class ChangesetList extends React.Component<Props> { class ChangesetList extends React.Component<Props> {
render() { render() {
const { repository, changesets } = this.props; const { repository, changesets, classes } = this.props;
const content = changesets.map(changeset => { const content = changesets.map(changeset => {
return ( return (
<ChangesetRow <ChangesetRow
@@ -21,8 +30,12 @@ class ChangesetList extends React.Component<Props> {
/> />
); );
}); });
return <div className="box">{content}</div>; return (
<div className={classNames("panel-block", classes.toCenterContent)}>
{content}
</div>
);
} }
} }
export default ChangesetList; export default injectSheet(styles)(ChangesetList);

View File

@@ -70,7 +70,7 @@ class Changesets extends React.Component<Props> {
renderPaginator = () => { renderPaginator = () => {
const { page, list } = this.props; const { page, list } = this.props;
if (list) { if (list) {
return <LinkPaginator page={page} collection={list} />; return <div className="panel-footer"><LinkPaginator page={page} collection={list} /></div>;
} }
return null; return null;
}; };

View File

@@ -161,7 +161,7 @@ class Content extends React.Component<Props, State> {
} }
render() { render() {
const { file, revision, repository, path, classes } = this.props; const { file, revision, repository, path } = this.props;
const { showHistory } = this.state; const { showHistory } = this.state;
const header = this.showHeader(); const header = this.showHeader();
@@ -183,9 +183,7 @@ class Content extends React.Component<Props, State> {
<nav className="panel"> <nav className="panel">
<article className="panel-heading">{header}</article> <article className="panel-heading">{header}</article>
{moreInformation} {moreInformation}
<div className={classNames("panel-block", classes.toCenterContent)}>
{content} {content}
</div>
</nav> </nav>
</div> </div>
); );

View File

@@ -80,11 +80,13 @@ class HistoryView extends React.Component<Props, State> {
return ( return (
<> <>
<ChangesetList repository={repository} changesets={changesets} /> <ChangesetList repository={repository} changesets={changesets} />
<div className="panel-footer">
<StatePaginator <StatePaginator
page={currentPage} page={currentPage}
collection={pageCollection} collection={pageCollection}
updatePage={(newPage: number) => this.updatePage(newPage)} updatePage={(newPage: number) => this.updatePage(newPage)}
/> />
</div>
</> </>
); );
} }

View File

@@ -8,12 +8,15 @@ import { ExtensionPoint } from "@scm-manager/ui-extensions";
import { getContentType } from "./contentType"; import { getContentType } from "./contentType";
import type { File, Repository } from "@scm-manager/ui-types"; import type { File, Repository } from "@scm-manager/ui-types";
import { ErrorNotification, Loading } from "@scm-manager/ui-components"; import { ErrorNotification, Loading } from "@scm-manager/ui-components";
import injectSheet from "react-jss";
import classNames from "classnames";
type Props = { type Props = {
repository: Repository, repository: Repository,
file: File, file: File,
revision: string, revision: string,
path: string path: string,
classes: any
}; };
type State = { type State = {
@@ -23,6 +26,12 @@ type State = {
error?: Error error?: Error
}; };
const styles = {
toCenterContent: {
display: "block"
}
};
class SourcesView extends React.Component<Props, State> { class SourcesView extends React.Component<Props, State> {
constructor(props: Props) { constructor(props: Props) {
super(props); super(props);
@@ -78,7 +87,7 @@ class SourcesView extends React.Component<Props, State> {
} }
render() { render() {
const { file } = this.props; const { file, classes } = this.props;
const { loaded, error } = this.state; const { loaded, error } = this.state;
if (!file || !loaded) { if (!file || !loaded) {
@@ -90,8 +99,8 @@ class SourcesView extends React.Component<Props, State> {
const sources = this.showSources(); const sources = this.showSources();
return <>{sources}</>; return <div className={classNames("panel-block", classes.toCenterContent)}>{sources}</div>;
} }
} }
export default SourcesView; export default injectSheet(styles)(SourcesView);

View File

@@ -194,6 +194,24 @@ $fa-font-path: "webfonts";
} }
} }
//panels
.panel-footer {
background-color: whitesmoke;
border-radius: 0 0 4px 4px;
color: #363636;
font-size: 1.25em;
font-weight: 300;
line-height: 1.25;
padding: 0.5em 0.75em;
border-left: 1px solid #dbdbdb;
border-right: 1px solid #dbdbdb;
&:last-child {
border-bottom: 1px solid #dbdbdb;
}
}
// forms // forms
.field:not(.is-grouped) { .field:not(.is-grouped) {
margin-bottom: 1rem; margin-bottom: 1rem;