diff --git a/package.json b/package.json index 0795a12..c308a7a 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@githubprimer/octicons-react": "^8.1.0", "axios": "^0.18.0", "i": "^0.3.6", "node-sass": "^4.9.3", diff --git a/src/features/Issues/Issues.js b/src/features/Issues/Issues.js index 853a9e3..4269687 100644 --- a/src/features/Issues/Issues.js +++ b/src/features/Issues/Issues.js @@ -3,13 +3,15 @@ import "./Issues.scss"; import { Link } from "react-router-dom"; import { connect } from "react-redux"; import { getIssues, filterIssues } from "./actions"; +import Icon from "../Icon/Icon"; const maxLength = 50; -const Card = ({ title, body, labels, issueUrl, owner, repo, number }) => ( +const Card = ({ title, body, labels, issueUrl, owner, repo, number, state, pull_request }) => (
issueUrl(owner, repo, number)}>
-

{title}

+ +

{title}

@@ -123,6 +125,8 @@ class Issues extends Component { owner={owner} repo={repo} number={issue.number} + state={issue.state} + pull_request={issue.pull_request} /> ))}
diff --git a/src/features/Issues/Issues.scss b/src/features/Issues/Issues.scss index 582718b..a17b765 100644 --- a/src/features/Issues/Issues.scss +++ b/src/features/Issues/Issues.scss @@ -129,6 +129,9 @@ button#return-button a { padding: 20px; font-size: 12px; } + .card-title-text { + display: contents; + } .card-labels > ul { list-style-type: none; padding: 15px; diff --git a/src/features/Issues/components/Icon/Icon.js b/src/features/Issues/components/Icon/Icon.js new file mode 100644 index 0000000..80650d8 --- /dev/null +++ b/src/features/Issues/components/Icon/Icon.js @@ -0,0 +1,33 @@ +import React from "react"; +import "./Icon.scss"; +import Octicon, { getIconByName } from "@githubprimer/octicons-react"; + +const Icon = ({ state, pull }) => { + let icon = ""; + let color = ""; + if (state === "open") { + if (pull) { + icon = "git-pull-request"; + } else { + icon = "issue-opened"; + } + color = "green"; + } else { + if (pull) { + icon = "git-merge"; + color = "purple"; + } else { + icon = "issue-closed"; + color = "red"; + } + } + return ( + + ); +}; + +export default Icon; diff --git a/src/features/Issues/components/Icon/Icon.scss b/src/features/Issues/components/Icon/Icon.scss new file mode 100644 index 0000000..8888da7 --- /dev/null +++ b/src/features/Issues/components/Icon/Icon.scss @@ -0,0 +1,12 @@ +.card-icon { + margin: 3px; + &.green { + color: #28a745; + } + &.red { + color: #cb2431; + } + &.purple { + color: #6f42c1; + } +}