From aa8a138990d15f3cc43a383a75d0c6f4530009e9 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi <256895@studenti.unimore.it> Date: Tue, 11 May 2021 18:24:51 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Create=20a=20base=20Summary=20co?= =?UTF-8?q?mponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/frontend/src/components/base/Summary.js | 42 ++++++++ .../src/components/base/Summary.module.css | 98 +++++++++++++++++++ .../interactive/BoxRepositoriesActive.js | 6 +- .../interactive/BoxRepositoriesArchived.js | 6 +- ...orySummaryBase.js => SummaryRepository.js} | 46 ++++----- 5 files changed, 167 insertions(+), 31 deletions(-) create mode 100644 code/frontend/src/components/base/Summary.js create mode 100644 code/frontend/src/components/base/Summary.module.css rename code/frontend/src/components/interactive/{RepositorySummaryBase.js => SummaryRepository.js} (70%) diff --git a/code/frontend/src/components/base/Summary.js b/code/frontend/src/components/base/Summary.js new file mode 100644 index 0000000..82ce30e --- /dev/null +++ b/code/frontend/src/components/base/Summary.js @@ -0,0 +1,42 @@ +import React from "react" +import Style from "./Summary.module.css" +import classNames from "classnames" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" + + +export default function Summary( + { title, subtitle, upperLabel, upperValue, lowerLabel, lowerValue, buttons, className, ...props }, +) { + return ( +
+
+
+ +
+
+ {title} +
+
+ {subtitle} +
+
+
+
+ {upperLabel} +
+
+ {upperValue} +
+
+ {lowerLabel} +
+
+ {lowerValue} +
+
+
+ {buttons} +
+
+ ) +} diff --git a/code/frontend/src/components/base/Summary.module.css b/code/frontend/src/components/base/Summary.module.css new file mode 100644 index 0000000..01bfc87 --- /dev/null +++ b/code/frontend/src/components/base/Summary.module.css @@ -0,0 +1,98 @@ +.Summary { + width: 100%; + height: 60px; + + margin: 10px 0; + + display: flex; +} + + +.Left { + width: 250px; + height: 60px; + + display: grid; + grid-template-areas: + "a b" + "a c" + "a d" + "a e"; + grid-template-columns: auto 1fr; + grid-template-rows: 5px 1fr 1fr 5px; + + background-color: var(--bg-accent); + border-radius: 30px 0 0 30px; +} + +.IconContainer { + margin: 5px 15px 5px 5px; + width: 50px; + height: 50px; + border-radius: 50px; + + display: flex; + justify-content: center; + align-items: center; + + background-color: var(--bg-light); + color: var(--fg-primary); + + font-size: x-large; + + grid-area: a; +} + +.Title { + grid-area: c; + font-size: large; + align-self: flex-end; +} + +.Subtitle { + grid-area: d; + font-size: small; + align-self: flex-start; +} + +.Middle { + flex-grow: 1; + height: 60px; + padding: 5px; + + background-color: var(--bg-light); + + display: grid; + grid-template-columns: auto 1fr; + grid-template-rows: 1fr 1fr; + +} + +.Middle .Label { + grid-column: 1; +} + +.Middle .Value { + grid-column: 2; +} + +.Middle .Upper { + grid-row: 1; +} + +.Middle .Lower { + grid-row: 2; +} + +.Right { + width: 250px; + height: 60px; + padding: 5px; + + background-color: var(--bg-accent); + border-radius: 0 30px 30px 0; + + display: flex; + justify-content: flex-end; + align-items: center; +} diff --git a/code/frontend/src/components/interactive/BoxRepositoriesActive.js b/code/frontend/src/components/interactive/BoxRepositoriesActive.js index 87c8ba9..274cf5f 100644 --- a/code/frontend/src/components/interactive/BoxRepositoriesActive.js +++ b/code/frontend/src/components/interactive/BoxRepositoriesActive.js @@ -1,6 +1,6 @@ import React, { useContext } from "react" import BoxFull from "../base/BoxFull" -import RepositorySummaryBase from "./RepositorySummaryBase" +import SummaryRepository from "./SummaryRepository" import { faSearch } from "@fortawesome/free-solid-svg-icons" import ContextUser from "../../contexts/ContextUser" @@ -20,9 +20,9 @@ export default function BoxRepositoriesActive({ repositories, refresh, ...props let contents if(repositories.length > 0) { contents = repositories.map(repo => ( - 0) { contents = repositories.map(repo => ( - { - history.push(`/repositories/${id}/edit`) + const onEditClick = () => { + history.push(`/repositories/${repo.id}/edit`) } - const onArchiveClick = async event => { + const onArchiveClick = async () => { await archiveThis() await refresh() } - const onUnarchiveClick = async event => { + const onUnarchiveClick = async () => { await unarchiveThis() await refresh() } - const onDeleteClick = async event => { + const onDeleteClick = async () => { await deletThis() await refresh() } @@ -60,13 +54,15 @@ export default function RepositorySummaryBase(
- +
- {name} + {repo.name}
- {owner["username"]} + {repo.owner.username}
@@ -74,13 +70,13 @@ export default function RepositorySummaryBase( Start:
- {start} + {repo.start}
End:
- {end} + {repo.end}
@@ -106,9 +102,9 @@ export default function RepositorySummaryBase( : null}