Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discover page #2

Merged
merged 65 commits into from Mar 27, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
01df851
upgrade packages
gridsane Mar 15, 2016
df6e282
hide controls if playlist and track are empty
gridsane Mar 15, 2016
d7c4555
refetch tracks on error
gridsane Mar 17, 2016
a91b680
feed reducer
gridsane Mar 18, 2016
fbaff6e
Application component for feed reducer
gridsane Mar 21, 2016
2286577
refactor some prop names
gridsane Mar 21, 2016
8f5c0fd
persist and rehydrate channels
gridsane Mar 22, 2016
afe1149
use radium in common components
gridsane Mar 22, 2016
a6d284a
use Radium for CoverAppBar and Progress components animations
gridsane Mar 22, 2016
627032a
fix CoverAppBar style definition
gridsane Mar 24, 2016
bbe46a9
exclude node_modules in babel-loader
gridsane Mar 24, 2016
b81949d
update Player component time once in a second
gridsane Mar 29, 2016
2681d4c
components organization, independent channels\playlist scroll, react-…
gridsane Apr 4, 2016
d57055e
properly show tracks with empty artist
gridsane Apr 5, 2016
71ba912
fix youtube tracks date
gridsane Apr 8, 2016
2128f17
tweaks to make things work with ReactPlayer
gridsane Apr 11, 2016
df4b1fe
restrict seeking paused tracks that fixes isLoading bugs
gridsane May 17, 2016
8f6a465
fix vk channels tracks collisions
gridsane May 17, 2016
604f51c
css-modules infrastructure, ui components rewritten to use css-modules
gridsane May 19, 2016
96ba435
fix tests
gridsane May 22, 2016
24e8d6b
playlit track component, playlist to css-modules
gridsane May 23, 2016
8e207e6
feed scss
gridsane May 23, 2016
ee43740
header-cover scss
gridsane May 23, 2016
72e0875
header-player-progress scss
gridsane May 23, 2016
6272551
header-player scss
gridsane May 23, 2016
bbb3928
header-wrapper scss
gridsane May 23, 2016
69b84c9
remove radium, fix tests
gridsane May 23, 2016
a2cce30
get rid of binding
gridsane May 23, 2016
386cc44
fix track error icon color
gridsane May 25, 2016
2733353
decompose feed-channels, style tweaks
gridsane May 27, 2016
c61062c
links to discover page and app, dummy discover page, dependecies update
gridsane May 27, 2016
afd31cc
server-side channels search
gridsane May 30, 2016
a7d6601
discover page search prototype
gridsane Jun 3, 2016
b96cd69
rough discover page channels search/add, api tweaks, style tweaks
gridsane Jun 24, 2016
e0af96a
implement getChannelLastUpdated method for APIs
gridsane Jun 25, 2016
c05f948
fix EmptyState margin bug
gridsane Jun 25, 2016
fab49c4
collect lastUpdated for channels
gridsane Jun 27, 2016
66e6057
remove unnecessary async from loadChannelTracks function
gridsane Jun 28, 2016
004cfe2
load tracks from enabled and loaded channges on refresh
gridsane Jun 28, 2016
ea0e1cc
tags parser
gridsane Jun 28, 2016
af07d62
fix empty state padding
gridsane Jun 28, 2016
430315d
vk getUpdatedChannel
gridsane Jun 29, 2016
452e694
youtube getUpdatedChannel
gridsane Jul 1, 2016
4281058
job to update channels, job to update schema
gridsane Jul 1, 2016
8d708ed
channel tags api endpoint, test fixes
gridsane Jul 1, 2016
392082e
list of tags on discover page
gridsane Jul 6, 2016
241fcce
no channels state with go to discover button
gridsane Jul 6, 2016
c12f8b9
fix feed reducer test to cover isLoading/isEnabled defaults on add
gridsane Jul 11, 2016
4d9a32f
request latest youtube videos (fixes major bug)
gridsane Jul 11, 2016
40de2da
vk: skip tracks with empty urls
gridsane Jul 11, 2016
e7d6009
minor bug fixes
gridsane Jul 20, 2016
8c2a327
make channel list visible on discover page (without editing for now)
gridsane Jul 20, 2016
e86928b
rename env var MONGO_URI to MONGO_URL
gridsane Nov 17, 2016
cdd49aa
Dockerfile for deploy, fix .env config
gridsane Nov 18, 2016
ea6dd92
vk reposts
gridsane Nov 18, 2016
141d53d
remove sidebar buttons and background
gridsane Nov 18, 2016
2e9146c
get nextPage info from APIs, fix tests
gridsane Nov 29, 2016
6d78e11
"load more" for selected channels
gridsane Dec 5, 2016
cb19524
add reddit api, drop vk api
Jan 3, 2017
695b1a6
redesign
Jan 12, 2017
b02f9a4
discover pane
Mar 1, 2017
10d8791
basic discover
Mar 19, 2017
771f7ab
fix tests
gridsane Mar 27, 2017
777bea4
add travis
gridsane Mar 27, 2017
22f756e
fix build
gridsane Mar 27, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .babelrc
@@ -1,4 +1,4 @@
{
"presets": ["es2015", "stage-0", "react"],
"plugins": ["add-module-exports"]
"plugins": ["add-module-exports", "transform-decorators-legacy"]
}
1 change: 1 addition & 0 deletions .dockerignore
@@ -0,0 +1 @@
.env
2 changes: 1 addition & 1 deletion .editorconfig
Expand Up @@ -7,6 +7,6 @@ charset = utf-8
end_of_line = lf
insert_final_newline = true

[*.{js,json,html,less}]
[*.{js,json,html,scss}]
indent_style = space
indent_size = 2
3 changes: 2 additions & 1 deletion .eslintrc
Expand Up @@ -6,7 +6,8 @@
"mocha": true
},
"globals": {
"expect": true
"expect": true,
"Promise": true
},
"plugins": [
"react"
Expand Down
20 changes: 20 additions & 0 deletions .travis.yml
@@ -0,0 +1,20 @@
language: node_js
node_js:
- "6"
- "7"
services:
- mongodb
before_script:
- sleep 15
- mongo chdb_test --eval 'db.addUser("travis", "test");'
env:
global:
- MONGO_URI=mongodb://travis:test@127.0.0.1:27017/chdb_test
- MONGO_URI_TEST=mongodb://travis:test@127.0.0.1:27017/chdb_test
- YOUTUBE_KEY=dummy-key
install:
- npm install -g npm@latest
- npm install
script:
- npm run lint
- npm test
9 changes: 9 additions & 0 deletions Dockerfile
@@ -0,0 +1,9 @@
from node:6

ADD . /app

WORKDIR /app

ENV NODE_ENV=production

CMD npm start
58 changes: 7 additions & 51 deletions index.html
Expand Up @@ -4,59 +4,15 @@
<meta charset="UTF-8">
<title>Channel Hunter</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Roboto" rel="stylesheet">
<style>
body {
padding: 0;
margin: 0;
font-family: 'Roboto';
background-color: rgba(0,0,0, .05);
-webkit-font-smoothing: antialiased;
}

/* Yeah-yeah, there are no way to define keyframes using inline styles */
/* this is temporary workaround */
@keyframes CoverAppBar-background {
from { background-position-y: 0%; }
to { background-position-y: 100%; }
}

@keyframes IconButton-focused {
from { transform: scale(1); }
to {transform: scale(.8);}
}

@keyframes Progress-buffer {
0% { opacity: 1; background-position: 0px center; }
50% { opacity: 0; }
100% { opacity: 1; background-position: -200px center; }
}

@keyframes Loader-rotate {
100%{
transform: rotate(360deg);
}
}

@keyframes Loader-dash {
0%{
stroke-dasharray: 1,200;
stroke-dashoffset: 0;
}
50%{
stroke-dasharray: 89,200;
stroke-dashoffset: -35px;
}
100%{
stroke-dasharray: 89,200;
stroke-dashoffset: -124px;
}
}
</style>
<link href="https://fonts.googleapis.com/icon?family=Roboto:400,500" rel="stylesheet">
<link href="/assets/style.css" rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script>window.INITIAL_STATE = %INITIAL_STATE%;</script>
<div id="app"></div>
<script>
window.INITIAL_STATE = %INITIAL_STATE%;
window.YOUTUBE_KEY = '%YOUTUBE_KEY%';
</script>
<script src="/assets/bundle.js"></script>
<script>
(function (id) {
Expand Down
104 changes: 61 additions & 43 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "channel-hunter",
"version": "0.3.0",
"version": "0.3.3",
"description": "Music player built with ReactJS",
"author": "gridsane <gridsane@gmail.com>",
"license": "MIT",
Expand All @@ -14,59 +14,77 @@
"build": "npm run clean && npm run build-client && npm run build-server",
"build-client": "webpack --config webpack.config.prod.js",
"build-server": "babel -d build src",
"start": "NODE_ENV=production node build/server.js",
"start": "NODE_ENV=production node --max-old-space-size=128 build/server.js",
"nodemon": "nodemon -x 'babel-node' -w './src/server' src/server.js",
"test": "NODE_ENV=test mocha --compilers=js:babel-core/register --require=babel-polyfill --require=./test/setup --recursive './test/**/*_test.js'",
"test_wo_db": "npm run test -- --grep @database --invert",
"test_now": "npm run test -- --watch-extensions json --watch --grep @now",
"lint": "eslint src test"
},
"engines": {
"node": "4.2.1",
"npm": "2.14.17"
"node": "6.9.0",
"npm": "3.10.8"
},
"dependencies": {
"babel": "^6.3.26",
"babel-cli": "^6.4.0",
"babel-core": "^6.4.0",
"babel-loader": "^6.2.1",
"babel-plugin-add-module-exports": "^0.1.2",
"babel-plugin-react-transform": "^2.0.0",
"babel-polyfill": "^6.2.0",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-stage-0": "^6.3.13",
"body-parser": "^1.14.1",
"autoprefixer": "^6.3.7",
"babel": "^6.5.2",
"babel-cli": "^6.10.1",
"babel-core": "^6.10.4",
"babel-loader": "^6.2.4",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-react-transform": "^2.0.2",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-polyfill": "^6.9.1",
"babel-preset-es2015": "^6.9.0",
"babel-preset-react": "^6.11.1",
"babel-preset-stage-0": "^6.5.0",
"body-parser": "^1.15.2",
"brfs": "^1.4.3",
"express": "^4.13.3",
"mongodb": "^2.0.49",
"react": "^0.14.0",
"react-addons-update": "^0.14.0",
"react-dom": "^0.14.0",
"react-redux": "^4.0.0",
"redux": "^3.0.4",
"redux-persist": "^1.5.0",
"redux-thunk": "^1.0.0",
"superagent": "^1.4.0",
"superagent-jsonp": "0.0.6",
"classnames": "^2.2.5",
"color": "^0.11.3",
"css-loader": "^0.23.1",
"dotenv": "^4.0.0",
"express": "^4.14.0",
"extract-text-webpack-plugin": "^1.0.1",
"mongodb": "^2.1.20",
"node-sass": "^3.8.0",
"postcss-loader": "^0.9.1",
"react": "^15.2.0",
"react-addons-shallow-compare": "^15.2.0",
"react-addons-update": "^15.2.0",
"react-dom": "^15.2.0",
"react-player": "^0.7.4",
"react-redux": "^4.4.5",
"react-router": "^2.5.2",
"react-router-redux": "^4.0.5",
"react-sticky": "^5.0.5",
"redux": "^3.5.2",
"redux-persist": "^3.2.2",
"redux-thunk": "^2.1.0",
"sass-loader": "^4.0.0",
"style-loader": "^0.13.1",
"superagent": "^2.0.0",
"superagent-jsonp": "0.0.7",
"transform-loader": "^0.2.3",
"webpack": "^1.12.2"
"webpack": "^1.13.1"
},
"devDependencies": {
"babel-eslint": "^5.0.0-beta6",
"eslint": "^1.9.0",
"eslint-plugin-react": "^3.8.0",
"expect": "^1.13.0",
"jsdom": "^7.0.2",
"mocha": "^2.3.3",
"nock": "^5.2.1",
"nodemon": "^1.8.1",
"react-addons-test-utils": "^0.14.0",
"react-shallow-testutils": "^0.7.1",
"react-transform-catch-errors": "^1.0.0",
"react-transform-hmr": "^1.0.1",
"redbox-react": "^1.1.1",
"webpack-dev-middleware": "^1.2.0",
"webpack-dev-server": "^1.12.1",
"webpack-hot-middleware": "^2.4.1"
"babel-eslint": "^6.1.0",
"css-modules-require-hook": "^4.0.1",
"eslint": "3.0.x",
"eslint-plugin-react": "^5.2.2",
"expect": "^1.20.2",
"jsdom": "^9.4.0",
"mocha": "^2.5.3",
"nock": "^8.0.0",
"nodemon": "^1.9.2",
"react-addons-test-utils": "^15.2.0",
"react-shallow-testutils": "^2.0.0",
"react-transform-catch-errors": "^1.0.2",
"react-transform-hmr": "^1.0.4",
"redbox-react": "^1.2.10",
"webpack-dev-middleware": "^1.6.1",
"webpack-dev-server": "^1.14.1",
"webpack-hot-middleware": "^2.12.0"
}
}
14 changes: 14 additions & 0 deletions src/actions/actions-types.js
@@ -0,0 +1,14 @@
export const FEED_ADD_CHANNELS = 'FEED_ADD_CHANNELS';
export const FEED_REMOVE_CHANNELS = 'FEED_REMOVE_CHANNELS';
export const FEED_ADD_TRACKS = 'FEED_ADD_TRACKS';
export const FEED_SET_PROPS_CHANNEL = 'FEED_SET_PROPS_CHANNEL';
export const FEED_SET_LOADING_CHANNELS = 'FEED_SET_LOADING_CHANNELS';
export const FEED_SET_SORT_TRACKS = 'FEED_SET_SORT_TRACKS';
export const FEED_SET_ERROR_TRACK = 'FEED_SET_ERROR_TRACK';
export const FEED_SET_CURRENT_TRACK = 'FEED_SET_CURRENT_TRACK';
export const FEED_SELECT_NEXT_TRACK = 'FEED_SELECT_NEXT_TRACK';
export const DISCOVER_SET_VISIBLE = 'DISCOVER_SET_VISIBLE';
export const DISCOVER_SET_CHANNELS = 'DISCOVER_SET_CHANNELS';
export const DISCOVER_SET_LOADING = 'DISCOVER_SET_LOADING';
export const DISCOVER_SET_TAGS = 'DISCOVER_SET_TAGS';
export const DISCOVER_SET_ERROR = 'DISCOVER_SET_ERROR';
11 changes: 0 additions & 11 deletions src/actions/actionsTypes.js

This file was deleted.

61 changes: 0 additions & 61 deletions src/actions/channels.js

This file was deleted.