fix review findings and code smells

This commit is contained in:
Konstantin Schaper
2020-08-12 12:00:57 +02:00
parent a4d0ff2b24
commit 82f752a7fc
16 changed files with 134 additions and 108 deletions

View File

@@ -22,22 +22,22 @@
* SOFTWARE.
*/
import { storiesOf } from "@storybook/react";
import {storiesOf} from "@storybook/react";
import * as React from "react";
import styled from "styled-components";
import { MemoryRouter } from "react-router-dom";
import {MemoryRouter} from "react-router-dom";
import repository from "../../__resources__/repository";
import ChangesetRow from "./ChangesetRow";
import { one, two, three, four, five } from "../../__resources__/changesets";
import { Binder, BinderContext } from "@scm-manager/ui-extensions";
import {one, two, three, four, five} from "../../__resources__/changesets";
import {Binder, BinderContext} from "@scm-manager/ui-extensions";
// @ts-ignore
import hitchhiker from "../../__resources__/hitchhiker.png";
import { Person } from "../../avatar/Avatar";
import { Changeset } from "@scm-manager/ui-types";
import { Replacement } from "../../SplitAndReplace";
import {Person} from "../../avatar/Avatar";
import {Changeset} from "@scm-manager/ui-types";
import {Replacement} from "../../SplitAndReplace";
const Wrapper = styled.div`
margin: 4rem;
margin: 25rem 4rem;
`;
const robohash = (person: Person) => {
@@ -49,7 +49,7 @@ const withAvatarFactory = (factory: (person: Person) => string, changeset: Chang
binder.bind("avatar.factory", factory);
return (
<BinderContext.Provider value={binder}>
<ChangesetRow repository={repository} changeset={changeset} />
<ChangesetRow repository={repository} changeset={changeset}/>
</BinderContext.Provider>
);
};
@@ -62,22 +62,22 @@ const withReplacements = (
replacements.forEach(replacement => binder.bind("changeset.description.tokens", replacement));
return (
<BinderContext.Provider value={binder}>
<ChangesetRow repository={repository} changeset={changeset} />
<ChangesetRow repository={repository} changeset={changeset}/>
</BinderContext.Provider>
);
};
function copy<T>(input: T): T {
return JSON.parse(JSON.stringify(input));
};
}
storiesOf("Changesets", module)
.addDecorator(story => <MemoryRouter initialEntries={["/"]}>{story()}</MemoryRouter>)
.addDecorator(storyFn => <Wrapper className="box box-link-shadow">{storyFn()}</Wrapper>)
.add("Default", () => <ChangesetRow repository={repository} changeset={three} />)
.add("With Committer", () => <ChangesetRow repository={repository} changeset={two} />)
.add("With Committer and Co-Author", () => <ChangesetRow repository={repository} changeset={one} />)
.add("With multiple Co-Authors", () => <ChangesetRow repository={repository} changeset={four} />)
.add("Default", () => <ChangesetRow repository={repository} changeset={three}/>)
.add("With Committer", () => <ChangesetRow repository={repository} changeset={two}/>)
.add("With Committer and Co-Author", () => <ChangesetRow repository={repository} changeset={one}/>)
.add("With multiple Co-Authors", () => <ChangesetRow repository={repository} changeset={four}/>)
.add("With avatar", () => {
return withAvatarFactory(() => hitchhiker, three);
})
@@ -92,8 +92,8 @@ storiesOf("Changesets", module)
const mail = <a href={"mailto:hog@example.com"}>Arthur</a>;
return withReplacements(
[
() => [{ textToReplace: "HOG-42", replacement: link }],
() => [{ textToReplace: "arthur@guide.galaxy", replacement: mail }]
() => [{textToReplace: "HOG-42", replacement: link}],
() => [{textToReplace: "arthur@guide.galaxy", replacement: mail}]
],
five
);
@@ -105,7 +105,7 @@ storiesOf("Changesets", module)
type: "gpg",
status: "NOT_FOUND"
}];
return <ChangesetRow repository={repository} changeset={changeset} />;
return <ChangesetRow repository={repository} changeset={changeset}/>;
})
.add("With valid signature", () => {
const changeset = copy(three);
@@ -119,7 +119,7 @@ storiesOf("Changesets", module)
mail: "trillian@hitchhiker.com"
}]
}];
return <ChangesetRow repository={repository} changeset={changeset} />;
return <ChangesetRow repository={repository} changeset={changeset}/>;
})
.add("With unowned signature", () => {
const changeset = copy(three);
@@ -132,7 +132,7 @@ storiesOf("Changesets", module)
mail: "trillian@hitchhiker.com"
}]
}];
return <ChangesetRow repository={repository} changeset={changeset} />;
return <ChangesetRow repository={repository} changeset={changeset}/>;
})
.add("With contactless signature", () => {
const changeset = copy(three);
@@ -142,7 +142,7 @@ storiesOf("Changesets", module)
status: "VERIFIED",
owner: "trillian"
}];
return <ChangesetRow repository={repository} changeset={changeset} />;
return <ChangesetRow repository={repository} changeset={changeset}/>;
})
.add("With invalid signature", () => {
const changeset = copy(three);
@@ -156,7 +156,7 @@ storiesOf("Changesets", module)
mail: "trillian@hitchhiker.com"
}]
}];
return <ChangesetRow repository={repository} changeset={changeset} />;
return <ChangesetRow repository={repository} changeset={changeset}/>;
})
.add("With multiple signatures and invalid status", () => {
const changeset = copy(three);
@@ -188,7 +188,7 @@ storiesOf("Changesets", module)
mail: "trillian@hitchhiker.com"
}]
}];
return <ChangesetRow repository={repository} changeset={changeset} />;
return <ChangesetRow repository={repository} changeset={changeset}/>;
})
.add("With multiple signatures and valid status", () => {
const changeset = copy(three);
@@ -220,7 +220,7 @@ storiesOf("Changesets", module)
mail: "trillian@hitchhiker.com"
}]
}];
return <ChangesetRow repository={repository} changeset={changeset} />;
return <ChangesetRow repository={repository} changeset={changeset}/>;
})
.add("With multiple signatures and not found status", () => {
const changeset = copy(three);
@@ -243,5 +243,5 @@ storiesOf("Changesets", module)
mail: "trillian@hitchhiker.com"
}]
}];
return <ChangesetRow repository={repository} changeset={changeset} />;
return <ChangesetRow repository={repository} changeset={changeset}/>;
});

View File

@@ -57,12 +57,12 @@ const SignatureIcon: FC<Props> = ({signatures, className}) => {
return null;
}
const getColor = (signatures: Signature[]) => {
const invalid = signatures.some(sig => sig.status === "INVALID");
const getColor = (signaturesToVerify: Signature[]) => {
const invalid = signaturesToVerify.some(sig => sig.status === "INVALID");
if (invalid) {
return "danger";
}
const verified = signatures.some(sig => sig.status === "VERIFIED");
const verified = signaturesToVerify.some(sig => sig.status === "VERIFIED");
if (verified) {
return "success";
}
@@ -104,7 +104,7 @@ const SignatureIcon: FC<Props> = ({signatures, className}) => {
return (
<>
<Popover title={<h1>{t("changeset.signatures")}</h1>} width={500} {...popoverProps}>
<Popover title={<h1 className="has-text-weight-bold is-size-5">{t("changeset.signatures")}</h1>} width={500} {...popoverProps}>
<StyledDiv>
{signatureElements}
</StyledDiv>