From 2438e980a71f6afd7030fcd01e2720f54e0c67ed Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 26 Mar 2020 10:16:26 +0100 Subject: [PATCH] improve RepositoryEntry story --- .../src/__resources__/Hg-Repository.ts | 67 ------------------ .../src/__resources__/hg-logo.png | Bin 5658 -> 0 bytes .../{Git-Repository.ts => repository.ts} | 8 +-- .../src/repos/RepositoryEntry.stories.tsx | 65 +++++++++++------ 4 files changed, 47 insertions(+), 93 deletions(-) delete mode 100644 scm-ui/ui-components/src/__resources__/Hg-Repository.ts delete mode 100644 scm-ui/ui-components/src/__resources__/hg-logo.png rename scm-ui/ui-components/src/__resources__/{Git-Repository.ts => repository.ts} (93%) diff --git a/scm-ui/ui-components/src/__resources__/Hg-Repository.ts b/scm-ui/ui-components/src/__resources__/Hg-Repository.ts deleted file mode 100644 index 10ef653e51..0000000000 --- a/scm-ui/ui-components/src/__resources__/Hg-Repository.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2020-present Cloudogu GmbH and Contributors - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -export default { - contact: "", - creationDate: "2020-03-23T08:26:01.164Z", - description: "", - healthCheckFailures: [], - lastModified: "2020-03-23T08:26:01.876Z", - namespace: "scmadmin", - name: "Mercurial", - type: "hg", - _links: { - self: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial" }, - delete: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial" }, - update: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial" }, - permissions: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial/permissions/" }, - protocol: [ - { href: "ssh://scmadmin@localhost:4567/repo/scmadmin/mercurial", name: "ssh" }, - { href: "http://localhost:8081/scm/repo/scmadmin/mercurial", name: "http" } - ], - tags: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial/tags/" }, - branches: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial/branches/" }, - incomingChangesets: { - href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial/incoming/{source}/{target}/changesets", - templated: true - }, - incomingDiff: { - href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial/incoming/{source}/{target}/diff", - templated: true - }, - incomingDiffParsed: { - href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial/incoming/{source}/{target}/diff/parsed", - templated: true - }, - changesets: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial/changesets/" }, - sources: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/mercurial/sources/" }, - authorMappingConfig: { - href: "http://localhost:8081/scm/api/v2/authormapping/configuration/scmadmin/mercurial" - }, - unfavorize: { href: "http://localhost:8081/scm/api/v2/unfavorize/scmadmin/mercurial" }, - favorites: [ - { href: "http://localhost:8081/scm/api/v2/unfavorize/scmadmin/mercurial", name: "unfavorize" }, - { href: "http://localhost:8081/scm/api/v2/favorize/scmadmin/mercurial", name: "favorize" } - ] - } -}; diff --git a/scm-ui/ui-components/src/__resources__/hg-logo.png b/scm-ui/ui-components/src/__resources__/hg-logo.png deleted file mode 100644 index 0f72285da6b55e48021c9068c692fc13638d529d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5658 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 A>Hq)$ diff --git a/scm-ui/ui-components/src/__resources__/Git-Repository.ts b/scm-ui/ui-components/src/__resources__/repository.ts similarity index 93% rename from scm-ui/ui-components/src/__resources__/Git-Repository.ts rename to scm-ui/ui-components/src/__resources__/repository.ts index b5267282f8..8facf86e57 100644 --- a/scm-ui/ui-components/src/__resources__/Git-Repository.ts +++ b/scm-ui/ui-components/src/__resources__/repository.ts @@ -22,13 +22,13 @@ * SOFTWARE. */ export default { - contact: "", + contact: "heart-of-gold@hitchhiher.com", creationDate: "2020-03-23T08:26:01.164Z", - description: "", + description: "The starship Heart of Gold was the first spacecraft to make use of the Infinite Improbability Drive", healthCheckFailures: [], lastModified: "2020-03-23T08:26:01.876Z", - namespace: "scmadmin", - name: "Git", + namespace: "hitchhiher", + name: "heartOfGold", type: "git", _links: { self: { href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/Git" }, diff --git a/scm-ui/ui-components/src/repos/RepositoryEntry.stories.tsx b/scm-ui/ui-components/src/repos/RepositoryEntry.stories.tsx index 1a2862a44f..f8b9994fd0 100644 --- a/scm-ui/ui-components/src/repos/RepositoryEntry.stories.tsx +++ b/scm-ui/ui-components/src/repos/RepositoryEntry.stories.tsx @@ -21,52 +21,73 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -import { storiesOf } from "@storybook/react"; -import React from "react"; +import {storiesOf} from "@storybook/react"; +import React, {FC, ReactNode} from "react"; import styled from "styled-components"; -import GitRepository from "../__resources__/Git-Repository"; -import HgRepository from "../__resources__/Hg-Repository"; +import repository from "../__resources__/repository"; // @ts-ignore ignore unknown png import Git from "../__resources__/git-logo.png"; -// @ts-ignore ignore unknown png -import Hg from "../__resources__/hg-logo.png"; import RepositoryEntry from "./RepositoryEntry"; -import { Binder, BinderContext } from "@scm-manager/ui-extensions"; -import { Repository } from "@scm-manager/ui-types"; +import {Binder, BinderContext} from "@scm-manager/ui-extensions"; +import {Repository} from "@scm-manager/ui-types"; +import Image from "../Image"; +import classNames from "classnames"; +import Icon from "../Icon"; -const Container = styled.div` - padding: 2rem 6rem; +const Spacing = styled.div` + margin: 2rem; `; +const Container: FC = ({children}) => ( + {children} +); + const bindAvatar = (binder: Binder, avatar: string) => { binder.bind("repos.repository-avatar", () => { - return avatar; + return Logo; }); }; -const bindBeforeTitle = (binder: Binder, beforeTitle: string) => { +const bindBeforeTitle = (binder: Binder, extension: ReactNode) => { binder.bind("repository.card.beforeTitle", () => { - return beforeTitle; + return extension; + }); +}; + +const bindQuickLink = (binder: Binder, extension: ReactNode) => { + binder.bind("repository.card.quickLink", () => { + return extension; }); }; const withBinder = (binder: Binder, repository: Repository) => { return ( - + ); }; +const QuickLink = ; + storiesOf("RepositoryEntry", module) .addDecorator(storyFn => {storyFn()}) - .add("Git-Repo", () => { - const binder = new Binder("git-story"); - bindAvatar(binder, "Git"); - return withBinder(binder, GitRepository); + .add("Default", () => { + return ; }) - .add("Hg-Repo", () => { - const binder = new Binder("hg-story"); - bindBeforeTitle(binder, "Hg"); - return withBinder(binder, HgRepository); + .add("Avatar EP", () => { + const binder = new Binder("avatar"); + bindAvatar(binder, Git); + return withBinder(binder, repository); + }) + .add("Before Title EP", () => { + const binder = new Binder("title"); + bindBeforeTitle(binder, ); + return withBinder(binder, repository); + }) + .add("Quick Link EP", () => { + const binder = new Binder("title"); + bindQuickLink(binder, QuickLink); + return withBinder(binder, repository); });