From 1bc1883f1a47b65ccd37fa548e025ac34058729c Mon Sep 17 00:00:00 2001 From: Ayush Sharma Date: Mon, 11 Feb 2019 23:06:35 +0100 Subject: [PATCH] refactor: action bar [WIP] --- src/webui/components/Author/index.js | 2 +- src/webui/components/Author/styles.js | 1 + src/webui/components/DetailSidebar/index.js | 39 +++++++++--- src/webui/components/DetailSidebar/styles.js | 10 ++++ src/webui/components/Dist/index.js | 59 +++++++++++++++++++ src/webui/components/Dist/styles.js | 40 +++++++++++++ src/webui/components/Engines/img/node.png | Bin 0 -> 27565 bytes src/webui/components/Engines/index.js | 28 ++++----- src/webui/components/Engines/styles.js | 10 ---- src/webui/components/Repository/img/git.png | Bin 0 -> 2383 bytes src/webui/components/Repository/index.js | 15 +++-- src/webui/utils/file-size.js | 5 ++ 12 files changed, 168 insertions(+), 41 deletions(-) create mode 100644 src/webui/components/Dist/index.js create mode 100644 src/webui/components/Dist/styles.js create mode 100644 src/webui/components/Engines/img/node.png create mode 100644 src/webui/components/Repository/img/git.png create mode 100644 src/webui/utils/file-size.js diff --git a/src/webui/components/Author/index.js b/src/webui/components/Author/index.js index 2fecf3320..73f49bad1 100644 --- a/src/webui/components/Author/index.js +++ b/src/webui/components/Author/index.js @@ -38,7 +38,7 @@ class Authors extends Component { if (!author) { return null; } - console.log(author); + const avatarComponent = ; return ( {'Author'}}> diff --git a/src/webui/components/Author/styles.js b/src/webui/components/Author/styles.js index 6ec518c40..ae02d2357 100644 --- a/src/webui/components/Author/styles.js +++ b/src/webui/components/Author/styles.js @@ -16,5 +16,6 @@ export const Heading = styled(Typography)` export const AuthorListItem = styled(ListItem)` && { padding-left: 0; + padding-right: 0; } `; diff --git a/src/webui/components/DetailSidebar/index.js b/src/webui/components/DetailSidebar/index.js index ddd112df6..8aefa84f6 100644 --- a/src/webui/components/DetailSidebar/index.js +++ b/src/webui/components/DetailSidebar/index.js @@ -1,9 +1,14 @@ +/* eslint-disable */ import React, {Component} from 'react'; -import Card from '@material-ui/core/Card'; -import CardContent from '@material-ui/core/CardContent'; -import List from '@material-ui/core/List'; -import ListItemText from '@material-ui/core/ListItemText'; +import Add from '@material-ui/icons/Add'; +import BugReport from '@material-ui/icons/BugReport'; +import Card from '@material-ui/core/Card/index'; +import CardContent from '@material-ui/core/CardContent/index'; +import Home from '@material-ui/icons/Home'; +import List from '@material-ui/core/List/index'; +import ListItemText from '@material-ui/core/ListItemText/index'; +import Tooltip from '@material-ui/core/Tooltip/index'; import Install from '../Install'; import Author from '../Author'; @@ -11,9 +16,10 @@ import License from '../License'; import Repository from '../Repository'; import Developers from '../Developers'; import Engine from '../Engines'; +import Dist from '../Dist'; import { DetailContextConsumer } from '../../pages/version/index'; -import { TitleListItem, TitleAvatar } from './styles'; +import { TitleListItem, TitleAvatar, Fab } from './styles'; class DetailSidebar extends Component { render() { @@ -33,10 +39,11 @@ class DetailSidebar extends Component { {this.renderCopyCLI()} {this.renderRepository()} {this.renderEngine()} + {this.renderDist()} {this.renderAuthor()} {this.renderMaintainers()} {this.renderContributors()} - {this.renderLicense()} + {/* {this.renderLicense()} */} @@ -47,11 +54,23 @@ class DetailSidebar extends Component { return ( - {packageName[0]} + {/* {packageName[0]} */} {packageName}} secondary={packageMeta.latest.description} /> + + + + + + + + + + + + ); @@ -84,6 +103,10 @@ class DetailSidebar extends Component { renderEngine = () => { return ; } + + renderDist = () => { + return ; + } } export default DetailSidebar; diff --git a/src/webui/components/DetailSidebar/styles.js b/src/webui/components/DetailSidebar/styles.js index 14094097e..12439e2a8 100644 --- a/src/webui/components/DetailSidebar/styles.js +++ b/src/webui/components/DetailSidebar/styles.js @@ -5,6 +5,7 @@ import styled from 'react-emotion'; import Avatar from '@material-ui/core/Avatar/index'; +import { default as MuiFab } from '@material-ui/core/Fab'; import ListItem from '@material-ui/core/ListItem/index'; import colors from '../../utils/styles/colors'; @@ -12,6 +13,7 @@ import colors from '../../utils/styles/colors'; export const TitleListItem = styled(ListItem)` && { padding-left: 0; + padding-right: 0; } `; @@ -22,3 +24,11 @@ export const TitleAvatar = styled(Avatar)` text-transform: capitalize; } `; + +export const Fab = styled(MuiFab)` + && { + background-color: ${colors.primary}; + color: ${colors.white}; + margin-right: 10px; + } +`; diff --git a/src/webui/components/Dist/index.js b/src/webui/components/Dist/index.js new file mode 100644 index 000000000..27463a6e8 --- /dev/null +++ b/src/webui/components/Dist/index.js @@ -0,0 +1,59 @@ +/** + * @prettier + */ + +/* eslint-disable */ +import React, { Component } from 'react'; +import List from '@material-ui/core/List/index'; + +import { DetailContextConsumer } from '../../pages/version/index'; + +import { Heading, DistListItem, DistChips, DownloadButton } from './styles'; +import fileSizeSI from '../../utils/file-size'; + +class Dist extends Component { + render() { + return ( + + {context => { + return this.renderDist(context); + }} + + ); + } + + renderChips(dist, license) { + const distDict = { + 'file-count': dist.fileCount, + size: dist.unpackedSize && fileSizeSI(dist.unpackedSize), + license, + }; + + const chipsList = Object.keys(distDict).reduce((componentList, title, key) => { + const value = distDict[title]; + if (value) { + const label = ( + + {title.split('-').join(' ')}: {value} + + ); + componentList.push(); + } + return componentList; + }, []); + + return chipsList; + } + + renderDist = ({ packageMeta }) => { + const { dist = {}, license } = packageMeta.latest; + + return ( + {'Latest Distribution'}}> + {this.renderChips(dist, license)} + + ); + }; +} + +export default Dist; diff --git a/src/webui/components/Dist/styles.js b/src/webui/components/Dist/styles.js new file mode 100644 index 000000000..804394baa --- /dev/null +++ b/src/webui/components/Dist/styles.js @@ -0,0 +1,40 @@ +/** + * @prettier + * @flow + */ + +import styled from 'react-emotion'; +import Fab from '@material-ui/core/Fab/index'; +import Chip from '@material-ui/core/Chip/index'; +import ListItem from '@material-ui/core/ListItem/index'; +import Typography from '@material-ui/core/Typography/index'; + +import colors from '../../utils/styles/colors'; + +export const Heading = styled(Typography)` + && { + font-weight: 700; + text-transform: capitalize; + } +`; + +export const DistListItem = styled(ListItem)` + && { + padding-left: 0; + padding-right: 0; + } +`; + +export const DistChips = styled(Chip)` + && { + margin-right: 5px; + text-transform: capitalize; + } +`; + +export const DownloadButton = styled(Fab)` + && { + background-color: ${colors.primary}; + color: ${colors.white}; + } +`; diff --git a/src/webui/components/Engines/img/node.png b/src/webui/components/Engines/img/node.png new file mode 100644 index 0000000000000000000000000000000000000000..e1412ad02c02f23166eb68e99623be230088974c GIT binary patch literal 27565 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, - NPM: , + 'node-JS': , + 'NPM-version': , } class Engine extends Component { @@ -34,8 +36,8 @@ class Engine extends Component { } const engineDict = { - node: engines.node, - NPM: engines.npm + 'node-JS': engines.node, + 'NPM-version': engines.npm } const items = Object.keys(engineDict).reduce((markup, text, key) => { @@ -63,11 +65,9 @@ class Engine extends Component { renderListItems = (heading, text) => { return ( - {text}}> + {text.split('-').join(' ')}}> - - { ICONS[text] } - + { ICONS[text] } diff --git a/src/webui/components/Engines/styles.js b/src/webui/components/Engines/styles.js index fa8eb212e..7905dcbf4 100644 --- a/src/webui/components/Engines/styles.js +++ b/src/webui/components/Engines/styles.js @@ -4,12 +4,9 @@ */ import styled from 'react-emotion'; -import Avatar from '@material-ui/core/Avatar'; import ListItem from '@material-ui/core/ListItem/index'; import Typography from '@material-ui/core/Typography/index'; -import colors from '../../utils/styles/colors'; - export const Heading = styled(Typography)` && { font-weight: 700; @@ -22,10 +19,3 @@ export const EngineListItem = styled(ListItem)` padding-left: 0; } `; - -export const EngineAvatar = styled(Avatar)` - && { - color: ${colors.greySuperLight}; - background-color: ${colors.primary}; - } -`; diff --git a/src/webui/components/Repository/img/git.png b/src/webui/components/Repository/img/git.png new file mode 100644 index 0000000000000000000000000000000000000000..51f4ae5404fc79be09e69171bfc9d34d48810297 GIT binary patch literal 2383 zcmb_edr(tX8b3FeJQNAIb;Tf>)JL(q3J4vLirl*vi*Kow20-DLSS9|3^Zwk7&^dy0_BKc76X2>}!()lOlVnV}tr z%7&jSS|mYX4~n%NS=f@&X(b^Q(N+N%0zF~9g{A- zZfSW+-Hr{m9%u8|2k$3dtage|2Sl;$h{sF(-i|c>B<|Qtz%K^PbRz=513=(`{A&g* z;RKU3B@gTnOaDvupQ!DT9hv|fD?ePvQ@0F%CkIDtqH+r6-`Pof?+-KO$>7G7NXXf@Nusk$YC-Nu- z23d{+;0ha8oHXp(O9h@TmW@CbU`rV z;l_K-qf92mZ;_k&oa6Cfm$b0End8ChmVX)f^pq##^aeu^Al9jBsZfODGUaf3a1>BU z#)l8$FxyesvmRxYX%&I`xjrI)@}}{Yz?WIexeH}QYZaSD3*0t5$8`+Ut3z}uuEv_l zb~=$F*(jZi!&FC0jtaAaNV1^#;yj+uX?0ZYbnwg26}mtz%iwT$HXX)ck)u$l7-(c|flTERxKM;g%Wl*nxU4yuBeLE+%mLQk3j#Q<_)GxC!`o6owL0SxvRSsR*zM_= zM;TNgl4km?o7x7!8}u>19+UmMGd!jky3e24KfUA+5jayP8JB}vti|+79AKDU-2xDY zqn+Hu(=dH4_b`}DuK6stpXcU@G9Z(UVjJC3;j2(CH&^;lDwRFv=gGOes*l+Q;vj%R z1CjmXXlAdvD}6z?*_cB>EeMeU3vbyDzxWD8a=-Y{)zbaNRsI}cXmGi}n|<>UAbYG9 z;xUVTfTo<;jjje( z<5@yEyyg^r9lW4kDOmWi7F$h4OvgW4*hR#{_R2TkNomGiT2@BGExcp}eH{5=tvPPr znrdcAhi9x>Cm;X5CI-$%(YABf@VI-Er7q>WS-MM&t|)rN1|93ssE#gv_%ypPosiRO zHauI2pZ{7#4Cak`9Bm+Eea_1Ri=F@QCrUo01C6qy1LOxLv(y%#4Rb1Cchij&G zr#4JZU%q$h=`k1i`eKFEX0D35ZPMpXFU?6-DzEpNF}+yks$ZJ7-sJd`US6|5H&c)= z?g+u?LxEVi_P~Y{L{FuKKRsbd!pg{zU6$E&)tT=G*E)_wv{c$(%`Lu27Pz|UsdXoo zog#W>2g$8C_+Cx>O@=}tkFwdxlOcOdgU!`~l$ABWSbdW+ZsxSDuMA~-A?WTkY=Uc%5xpg0$kgN=(W^ez> zH_0Zh@CX}tY3=ThcqDg~OVlqDK(!IiGN zC}T7iq-;&)B2ASvfD#5%fx7n~mIN!?Q47j>Zp`9ZwCvXL{U~GNpN-6MZ!^s|bb5-u zl{43z!4-)KlMrXIEQx3vDV*3C+$6xH%iJ^_k9EUe041;&y!qhF5f0HAh zFXfj)ECZw`K31%^WqqQaPbqdu$R@JyV3>73;@C#tjq&C3al~h1#r9#_?ZT-$)5Nk^ zmUQOPgk&zS|FArSgk}Pw6l3UjcW!>`-=XfV0hI_S$2b4{BL82 z2k(D``e93+SzOn9`ydHEt@(u*!(K_su{EJ|-OXKk#a^R&C_m@uwUJZEka5TH48ge_ vp%EL>Wi@Nxn8V*2x$L2D+u#MyDSqcb+P#5YHS3sP9I$26&gfeklTQ2-d^Cga literal 0 HcmV?d00001 diff --git a/src/webui/components/Repository/index.js b/src/webui/components/Repository/index.js index 36db031d9..1718f3bc7 100644 --- a/src/webui/components/Repository/index.js +++ b/src/webui/components/Repository/index.js @@ -3,13 +3,13 @@ import React, {Component} from 'react'; import Avatar from '@material-ui/core/Avatar'; import List from '@material-ui/core/List'; -// import ListItem from '@material-ui/core/ListItem'; import ListItemText from '@material-ui/core/ListItemText'; import { DetailContextConsumer } from '../../pages/version/index'; import CopyToClipBoard from '../CopyToClipBoard'; -import { Heading, GithubLink, GithubLogo, RepositoryListItem } from './styles'; +import { Heading, GithubLink, RepositoryListItem } from './styles'; +import git from './img/git.png'; class Repository extends Component { render() { @@ -23,23 +23,22 @@ class Repository extends Component { }; renderRepositoryText(url) { - return ({url}); + return ({url}); } renderRepository = ({packageMeta}) => { - const { repository } = packageMeta.latest; + const { repository, homepage } = packageMeta.latest; if (!repository) { return null; } - const { url } = repository; + // we prefer homepage first, because it's more cleaner + const url = homepage || repository.url; return ( <> {'Repository'}}> - - - + )} /> diff --git a/src/webui/utils/file-size.js b/src/webui/utils/file-size.js new file mode 100644 index 000000000..5281a5745 --- /dev/null +++ b/src/webui/utils/file-size.js @@ -0,0 +1,5 @@ +export default function fileSizeSI(a, b, c, d, e) { + return (b = Math, c = b.log, d = 1e3, e = c(a) / c(d) | 0, a / b.pow(d, e)).toFixed(2) + + ' ' + (e ? 'kMGTPEZY'[--e] + 'B' : 'Bytes'); +}; +