Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

clean

  • Loading branch information
cadejscroggins committed Dec 14, 2018
1 parent 076d83c commit b8acc35da613e74ca18eec8811060b5f2a56d60d
Showing with 1,253 additions and 1,232 deletions.
  1. +1 −8 .gitignore
  2. +0 −1 LICENSE
  3. +8 −10 README.md
  4. +11 −12 gatsby-config.js
  5. +0 −16 gatsby-node.js
  6. +13 −13 package.json
  7. +10 −0 src/components/Background.jsx
  8. +3 −3 src/{pages/index.scss → components/Background.scss}
  9. +1 −5 src/components/ClickOutside.jsx
  10. +8 −7 src/components/CurrentTags.jsx
  11. +3 −3 src/components/CurrentTags.scss
  12. +3 −3 src/components/Dashboard.scss
  13. +5 −17 src/components/Footer.jsx
  14. +9 −9 src/components/Footer.scss
  15. +6 −2 src/components/Header.jsx
  16. +14 −14 src/components/Header.scss
  17. +9 −8 src/components/Layout.jsx
  18. +7 −7 src/components/Layout.scss
  19. +25 −22 src/components/List.jsx
  20. +15 −15 src/components/List.scss
  21. +1 −1 src/components/Lists.jsx
  22. +5 −5 src/components/Lists.scss
  23. +24 −17 src/components/Player.jsx
  24. +11 −11 src/components/Player.scss
  25. +14 −10 src/components/PlayerArt.jsx
  26. +13 −13 src/components/PlayerArt.scss
  27. +16 −14 src/components/PlayerControls.jsx
  28. +18 −18 src/components/PlayerControls.scss
  29. +3 −2 src/components/PlayerInfo.jsx
  30. +10 −10 src/components/PlayerInfo.scss
  31. +3 −7 src/components/Search.jsx
  32. +16 −16 src/components/Search.scss
  33. +7 −5 src/components/Suggestion.jsx
  34. +8 −5 src/components/Suggestions.jsx
  35. +10 −10 src/components/Suggestions.scss
  36. +12 −12 src/components/Tag.scss
  37. +1 −1 src/components/Tip.jsx
  38. +6 −6 src/components/Tip.scss
  39. +0 −89 src/components/utilities/variables.scss
  40. BIN src/images/bg.jpg
  41. 0 src/{img → images}/exit-up.svg
  42. 0 src/{img → images}/expand.svg
  43. BIN src/images/icon.png
  44. 0 src/{img → images}/logo.svg
  45. 0 src/{img → images}/minimize.svg
  46. 0 src/{img → images}/next.svg
  47. 0 src/{img → images}/pause.svg
  48. 0 src/{img → images}/play.svg
  49. 0 src/{img → images}/refresh.svg
  50. 0 src/{img → images}/shuffle.svg
  51. 0 src/{img → images}/volume-1.svg
  52. 0 src/{img → images}/volume-2.svg
  53. 0 src/{img → images}/volume-x.svg
  54. +56 −42 src/pages/index.js
  55. +2 −2 src/{components → }/utilities/api.js
  56. 0 src/{components → }/utilities/constants.js
  57. +43 −14 src/{components → }/utilities/data.js
  58. +25 −14 src/{components → }/utilities/helpers.js
  59. +2 −2 src/{components → }/utilities/helpers.scss
  60. +97 −0 src/utilities/variables.scss
  61. BIN static/screenshot.png
  62. +699 −731 yarn.lock
@@ -1,11 +1,4 @@
# Project dependencies
.cache
/public
node_modules
yarn-error.log

# Build directory
/public
.DS_Store

# IDE
.idea
@@ -19,4 +19,3 @@ 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.

@@ -1,14 +1,12 @@
# ![Line Radio](src/img/logo.svg)
# Line Radio

Listen to playlists curated by humans. This is the fastest way to discover interesting new music.
> Streamlined music discovery.
## Development Setup

Before you do anything, you’ll need to have [Git](https://git-scm.com/) and [Node](https://nodejs.org/en/) installed. Then...
![line radio screenshot](https://linerad.io/screenshot.png)

- install `npm i -g yarn && yarn`
- serve `yarn start`

## License
## Development Setup

This project is licensed under the MIT License—see [LICENSE](LICENSE) for details.
1. install [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git), [Node](https://nodejs.org/en/download)
& [Yarn](https://yarnpkg.com/lang/en/docs/install)
2. install project dependencies: `yarn`
3. start the development server: `yarn start`
@@ -1,15 +1,18 @@
module.exports = {
siteMetadata: {
description: 'Listen to playlists curated by humans. This is the fastest way to discover interesting new music.',
description:
'Listen to playlists curated by humans. This is the fastest way to discover interesting new music.',
keywords: 'music, discovery, online, radio, playlists',
shareImagePath: '/SCREENSHOT.png',
shareImagePath: '/screenshot.png',
title: 'Line Radio - Streamlined Music Discovery',
titleShort: 'Line Radio',
url: 'https://linerad.io',
},
plugins: [
'gatsby-plugin-react-helmet',
'gatsby-plugin-sass',
{
resolve: `gatsby-plugin-google-analytics`,
resolve: 'gatsby-plugin-google-analytics',
options: {
anonymize: true,
head: false,
@@ -18,26 +21,22 @@ module.exports = {
},
},
{
resolve: `gatsby-plugin-google-fonts`,
resolve: 'gatsby-plugin-google-fonts',
options: {
fonts: [
`Lato:400,700,900`,
]
}
fonts: ['Lato:400,700,900'],
},
},
{
resolve: `gatsby-plugin-manifest`,
resolve: 'gatsby-plugin-manifest',
options: {
background_color: '#040404',
display: 'minimal-ui',
icon: 'src/img/icon.png',
icon: 'src/images/icon.png',
name: 'Line Radio',
short_name: 'Line Radio',
start_url: '/',
theme_color: '#040404',
},
},
'gatsby-plugin-react-helmet',
`gatsby-plugin-sass`,
],
};

This file was deleted.

@@ -2,29 +2,29 @@
"private": true,
"dependencies": {
"classnames": "^2.2.6",
"gatsby": "^2.0.38",
"gatsby": "^2.0.67",
"knuth-shuffle": "^1.0.8",
"lodash": "^4.17.11",
"prop-types": "^15.6.2",
"react": "^16.5.1",
"react-dom": "^16.5.1",
"react": "^16.6.3",
"react-dom": "^16.6.3",
"react-helmet": "^5.2.0",
"store": "^2.0.12",
"whatwg-fetch": "^3.0.0"
"store": "^2.0.12"
},
"devDependencies": {
"gatsby-plugin-google-analytics": "^2.0.7",
"gatsby-plugin-google-analytics": "^2.0.8",
"gatsby-plugin-google-fonts": "^0.0.4",
"gatsby-plugin-manifest": "^2.0.5",
"gatsby-plugin-react-helmet": "^3.0.0",
"gatsby-plugin-sass": "^2.0.3",
"node-sass": "^4.10.0",
"prettier": "^1.14.2",
"webpack": "^4.24.0"
"gatsby-plugin-manifest": "^2.0.12",
"gatsby-plugin-react-helmet": "^3.0.4",
"gatsby-plugin-sass": "^2.0.7",
"node-sass": "^4.11.0",
"prettier": "^1.15.3",
"webpack": "^4.27.1"
},
"scripts": {
"build": "gatsby build",
"format": "prettier --write \"src/**/*.js\"",
"clean": "rm -rf .cache node_modules public",
"format": "prettier --write --ignore-path .gitignore \"**/*.{js,jsx,json,css,scss,md,yml}\"",
"start": "gatsby develop"
}
}
@@ -0,0 +1,10 @@
import React from 'react';
import bg from '../images/bg.jpg';
import cn from 'classnames';
import './Background.scss';

const Background = ({ hide }) => (
<img alt="" className={cn({ App_background: true, hide })} src={bg} />
);

export default Background;
@@ -1,5 +1,5 @@
@import '../components/utilities/helpers';
@import '../components/utilities/variables';
@import '../utilities/helpers';
@import '../utilities/variables';

.App_background {
position: fixed;
@@ -11,7 +11,7 @@
left: 0;
z-index: $z-neg;
transition: opacity $speed-slowest;
opacity: .3;
opacity: 0.3;

&.hide {
opacity: 0;
@@ -21,10 +21,6 @@ export default class ClickOutside extends React.PureComponent {
};

render() {
return (
<div ref={node => this.wrapper = node}>
{this.props.children}
</div>
);
return <div ref={node => (this.wrapper = node)}>{this.props.children}</div>;
}
}
@@ -3,13 +3,14 @@ import React from 'react';
import Tag from './Tag';
import './CurrentTags.scss';

const CurrentTags = props => !!props.currentTags.length && (
<ul className="CurrentTags">
{props.currentTags.map((tag, i) => (
<Tag key={i} onClick={props.removeTag} value={tag} />
))}
</ul>
);
const CurrentTags = props =>
!!props.currentTags.length && (
<ul className="CurrentTags">
{props.currentTags.map((tag, i) => (
<Tag key={i} onClick={props.removeTag} value={tag} />
))}
</ul>
);

CurrentTags.propTypes = {
currentTags: PropTypes.array.isRequired,
@@ -1,16 +1,16 @@
@import 'utilities/variables';
@import '../utilities/variables';

.CurrentTags {
position: fixed;
display: flex;
align-items: center;
justify-content: center;
top: $padding-medium;
top: $padding-md;
right: -50%;
left: -50%;
z-index: $z-1;

@media (min-width: $break-medium) {
@media (min-width: $break-md) {
position: relative;
top: auto;
right: auto;
@@ -1,7 +1,7 @@
@import 'utilities/variables';
@import '../utilities/variables';

.Dashboard {
@media (min-width: $break-large) {
@media (min-width: $break-lg) {
width: calc(100% - #{$player-width});
transition: transform $speed-normal;
transform: translateX($player-width / 2);
@@ -11,7 +11,7 @@
.Dashboard.player_visible {
padding-bottom: $player-height-small;

@media (min-width: $break-large) {
@media (min-width: $break-lg) {
padding-bottom: 0;
transform: translateX(0);
}
@@ -4,30 +4,18 @@ import './Footer.scss';
const Footer = () => (
<footer className="Footer">
<span>
Powered by
&nbsp;
<a
href="https://8tracks.com"
rel="noopener noreferrer"
target="_blank"
>
Powered by &nbsp;
<a href="https://8tracks.com" rel="noopener noreferrer" target="_blank">
8tracks
</a>
&nbsp;
&amp;
&nbsp;
<a
href="https://www.last.fm"
rel="noopener noreferrer"
target="_blank"
>
&nbsp; &amp; &nbsp;
<a href="https://www.last.fm" rel="noopener noreferrer" target="_blank">
Last.fm
</a>
</span>
<span className="Footer_line" />
<span>
Source on
&nbsp;
Source on &nbsp;
<a
href="https://github.com/cadejscroggins/linerad.io"
rel="noopener noreferrer"
@@ -1,20 +1,20 @@
@import 'utilities/helpers';
@import 'utilities/variables';
@import '../utilities/helpers';
@import '../utilities/variables';

.Footer {
@extend .fade_in;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 $padding-medium $padding-large;
font-size: .8rem;
padding: 0 $padding-md $padding-lg;
font-size: 0.8rem;

@media (min-width: $break-medium) {
padding: 0 $padding-large $padding-large;
@media (min-width: $break-md) {
padding: 0 $padding-lg $padding-lg;
}

@media (min-width: $break-large) {
padding: 0 $padding-xlarge $padding-xlarge;
@media (min-width: $break-lg) {
padding: 0 $padding-xl $padding-xl;
}

a {
@@ -24,7 +24,7 @@
}

.Footer_line {
@media (min-width: $break-medium) {
@media (min-width: $break-md) {
position: relative;
top: 1px;
height: 1px;
@@ -2,7 +2,7 @@ import cn from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
import CurrentTags from './CurrentTags';
import logo from '../img/logo.svg';
import logo from '../images/logo.svg';
import './Header.scss';

const Header = props => (
@@ -12,7 +12,11 @@ const Header = props => (
tags_exist: !!props.currentTags.length,
})}
>
<h1><a href="/"><img alt="Line Radio" src={logo} /></a></h1>
<h1>
<a href="/">
<img alt="Line Radio" src={logo} />
</a>
</h1>
<h2>Streamlined Music Discovery</h2>
<CurrentTags currentTags={props.currentTags} removeTag={props.removeTag} />
</header>

0 comments on commit b8acc35

Please sign in to comment.
You can’t perform that action at this time.