diff --git a/src/app/routerConfig.js b/src/app/routerConfig.js index 87d3ef0b9..c1f1dfb4f 100644 --- a/src/app/routerConfig.js +++ b/src/app/routerConfig.js @@ -1,4 +1,4 @@ -import { Calendar, Discover, Addons, Board } from 'stremio-routes'; +import { Calendar, Discover, Addons, Settings, Board } from 'stremio-routes'; const config = { views: [ @@ -23,6 +23,10 @@ const config = { { path: '/addons', component: Addons + }, + { + path: '/settings', + component: Settings } ] } diff --git a/src/routes/Settings/Settings.js b/src/routes/Settings/Settings.js new file mode 100644 index 000000000..fb8068e31 --- /dev/null +++ b/src/routes/Settings/Settings.js @@ -0,0 +1,41 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import styles from './styles'; +import SettingsExpanded from './SettingsExpanded'; + +class Settings extends Component { + constructor(props) { + super(props); + + this.state = { + selectedMenu: 'player_preferences' + } + + this.changeSettings = this.changeSettings.bind(this); + } + + changeSettings(selectedMenu) { + this.setState({ selectedMenu }); + } + + render() { + return ( +
+
+ { this.changeSettings('player_preferences') }} className={styles['option']}>Player Preferences + { this.changeSettings('language') }} className={styles['option']}>Language + Account Setttings + Notifications + Data Caching +
+ +
+ ); + } +} + +Settings.propTypes = { + changeSettings: PropTypes.func +}; + +export default Settings; \ No newline at end of file diff --git a/src/routes/Settings/SettingsExpanded.js b/src/routes/Settings/SettingsExpanded.js new file mode 100644 index 000000000..acfbf0c1b --- /dev/null +++ b/src/routes/Settings/SettingsExpanded.js @@ -0,0 +1,79 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import Icon from 'stremio-icons/dom'; +import styles from './styles'; + +class SettingsExpanded extends Component { + constructor(props) { + super(props); + + this.renderPlayerPreferences = this.renderPlayerPreferences.bind(this); + this.renderLanguage = this.renderLanguage.bind(this); + } + + renderPlayerPreferences = () => { + const preferences = ["Auto-play next episode", "Data saver"]; + + return ( +
+ + {preferences.map((item, key) => { + return ( + + ); + })} +
+ ); + } + + renderLanguage = () => { + return ( +
+
+ INTERFACE LANGUAGE +
English + +
+
+
+ DEFAULT SUBTITLES LANGUAGE +
Portugese - BR + +
+
+
+ ); + } + + render() { + const { selectedMenu } = this.props; + + if (selectedMenu == "player_preferences") { + return ( +
{this.renderPlayerPreferences()}
+ ); + } else if (selectedMenu == "language") { + return ( +
{this.renderLanguage()}
+ ); + } + } +} + +SettingsExpanded.propTypes = { + selectedMenu: PropTypes.string, + renderPlayerPreferences: PropTypes.func, + renderLanguage: PropTypes.func +}; + +export default SettingsExpanded; \ No newline at end of file diff --git a/src/routes/Settings/index.js b/src/routes/Settings/index.js new file mode 100644 index 000000000..6a02e4e24 --- /dev/null +++ b/src/routes/Settings/index.js @@ -0,0 +1,3 @@ +import Settings from './Settings'; + +export default Settings; diff --git a/src/routes/Settings/styles.less b/src/routes/Settings/styles.less new file mode 100644 index 000000000..6dc154649 --- /dev/null +++ b/src/routes/Settings/styles.less @@ -0,0 +1,143 @@ +@import 'stremio-colors'; +.settings { + height: 100%; + display: flex; + color: @colorwhite60; + font-family: LatoLight; + .options { + width: 240px; + padding: 20px; + display: flex; + font-size: 14px; + flex-direction: column; + background: @colordarkest; + .option { + padding: 14px; + font-weight: 600; + &:hover { + cursor: pointer; + color: @colorwhite; + background: @colorglass; + } + } + .selected { + cursor: pointer; + color: @colorwhite; + background: @colorglass; + } + } + .player-preferences { + height: 150px; + margin: 60px 50px; + border-bottom: 1px solid @colormedium; + .preference-container { + display: flex; + cursor: pointer; + margin: 30px 0px; + justify-content: space-between; + align-items: center; + .preference { + width: 280px; + } + .default-checkbox { + display: none; + } + .checkbox { + width: 14px; + height: 14px; + cursor: pointer; + border: 2px solid @colorwhite60; + .checkmark { + width: 10px; + height: 10px; + display: none; + fill: @colorwhite; + } + } + input:checked ~ .checkbox { + background-color: @colorprimlight; + border: 2px solid @colorprimlight; + .checkmark { + display: block; + } + } + input:checked ~ .preference { + color: @colorwhite; + } + } + .preference-container1 { + display: flex; + cursor: pointer; + margin: 30px 0px; + align-items: center; + flex-direction: row-reverse; + .preference { + width: 280px; + } + input { + visibility: hidden; + } + .slider { + cursor: pointer; + position: absolute; + border-radius: 50px; + width: 22px; + height: 10px; + background-color: @colorneutral; + } + .slider:before { + position: absolute; + border-radius: 50%; + content: ""; + height: 14px; + width: 14px; + bottom: -2px; + transition: .4s; + -webkit-transition: .4s; + background-color: @colorwhite; + } + input:checked + .slider:before { + transform: translateX(8px); + background-color: @colorsignal5; + } + input:checked ~ .preference { + color: @colorwhite; + } + } + } + .language { + margin: 40px 50px; + .interface-language { + margin-bottom: 30px; + } + .interface-language, .default-subtitles-language { + border-bottom: 1px solid @colormedium; + .headline { + font-weight: 600; + color: @colorwhite40; + } + .name { + height: 40px; + width: 250px; + padding: 20px; + display: flex; + margin: 30px 0px; + align-items: center; + justify-content: space-between; + font-weight: 600; + color: @colorwhite; + background-color: @colordarkest; + border: 1px solid @colortransparent; + .arrow-down { + width: 8px; + height: 10px; + fill: @colorwhite40; + } + &:hover { + cursor: pointer; + border: 1px solid @colormedium; + } + } + } + } +} \ No newline at end of file diff --git a/src/routes/index.js b/src/routes/index.js index b2559d867..c25434104 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -5,6 +5,7 @@ import Discover from './Discover'; import Library from './Library'; import Calendar from './Calendar'; import Search from './Search'; +import Settings from './Settings'; export { Addons, @@ -13,5 +14,6 @@ export { Discover, Library, Calendar, - Search + Search, + Settings };