diff --git a/src/App.jsx b/src/App.jsx index 22f44d6b..16a05ae6 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -17,10 +17,8 @@ import merge from 'lodash.merge'; import RoomIcon from '@material-ui/icons/Room'; // Modals are lazy loaded as a user won't use them every time they open a tab -const Settings = React.lazy(() => import('./components/modals/Settings')); +const MainModal = React.lazy(() => import('./components/modals/MainModal')); const Update = React.lazy(() => import('./components/modals/Update')); -const Marketplace = React.lazy(() => import('./components/modals/Marketplace')); -const Addons = React.lazy(() => import('./components/modals/Addons')); //const Welcome = React.lazy(() => import('./components/modals/Welcome')); const renderLoader = () =>
; @@ -28,12 +26,8 @@ export default class App extends React.PureComponent { constructor(props) { super(props); this.state = { - settingsModal: false, - updateModal: false, - marketplaceModal: false, - addonsModal: false, - quickAccessmodal: false, - welcomeModal: false + mainModal: false, + updateModal: false }; } @@ -66,7 +60,7 @@ export default class App extends React.PureComponent {@@ -81,14 +75,11 @@ export default class App extends React.PureComponent {- this.setState({ settingsModal: false })} isOpen={this.state.settingsModal} className={modalClassList} overlayClassName={overlayClassList} ariaHideApp={false}> - this.setState({ mainModal: false })} isOpen={this.state.mainModal} className={modalClassList} overlayClassName={overlayClassList} ariaHideApp={false}> + this.setState({ settingsModal: false })} - setDefaultSettings={() => SettingsFunctions.setDefaultSettings()} - openMarketplace={() => this.setState({ marketplaceModal: true, settingsModal: false })} - openAddons={() => this.setState({ settingsModal: false, addonsModal: true })} + modalClose={() => this.setState({ mainsModal: false })} toastLanguage={language.toasts} /> this.setState({ updateModal: false })} isOpen={this.state.updateModal} className={modalClassList} overlayClassName={overlayClassList} ariaHideApp={false}> @@ -96,25 +87,6 @@ export default class App extends React.PureComponent { language={language.update} modalClose={() => this.setState({ updateModal: false })} /> -this.setState({ marketplaceModal: false })} isOpen={this.state.marketplaceModal} className={modalClassList} overlayClassName='Overlay' ariaHideApp={false}> - -this.setState({ marketplaceModal: false })} - openSettings={() => this.setState({ marketplaceModal: false, settingsModal: true })} - openAddons={() => this.setState({ marketplaceModal: false, addonsModal: true })} - toastLanguage={language.toasts} /> - this.setState({ addonsModal: false })} isOpen={this.state.addonsModal} className={modalClassList} overlayClassName='Overlay' ariaHideApp={false}> - {/*this.setState({ addonsModal: false })} - openSettings={() => this.setState({ addonsModal: false, settingsModal: true })} - openMarketplace={() => this.setState({ addonsModal: false, marketplaceModal: true })} - toastLanguage={language.toasts} /> - this.setState({ welcomeModal: false })} isOpen={this.state.welcomeModal} className={modalClassList} overlayClassName='Overlay' ariaHideApp={false}> */ } diff --git a/src/components/modals/MainModal.jsx b/src/components/modals/MainModal.jsx new file mode 100644 index 00000000..a917a83d --- /dev/null +++ b/src/components/modals/MainModal.jsx @@ -0,0 +1,74 @@ +import React from 'react'; + +import Settings from './tabs/Settings'; +import Addons from './tabs/Addons'; +import Marketplace from './tabs/Marketplace'; + +export default class MainModal extends React.PureComponent { + constructor(...args) { + super(...args); + this.state = { + tab:this.setState({ welcomeModal: false })} /> , + settingsActive: 'active', + addonsActive: '', + marketplaceActive: '' + }; + } + + componentDidMount() { + document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); + document.getElementById('center').classList.toggle('backgroundEffects'); + } + + componentWillUnmount() { + document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); + document.getElementById('center').classList.toggle('backgroundEffects'); + } + + changeEnabled(input) { + switch (input) { + case 'addons': + this.setState({ + tab: , + addonsActive: 'active', + settingsActive: '', + marketplaceActive: '' + }); + break; + case 'settings': + this.setState({ + tab: , + settingsActive: 'active', + addonsActive: '', + marketplaceActive: '' + }); + break; + case 'marketplace': + this.setState({ + tab: , + marketplaceActive: 'active', + addonsActive: '', + settingsActive: '' + }); + break; + default: + break; + } + } + + render() { + return ( + + × ++ ) + } +} \ No newline at end of file diff --git a/src/components/modals/Addons.jsx b/src/components/modals/tabs/Addons.jsx similarity index 80% rename from src/components/modals/Addons.jsx rename to src/components/modals/tabs/Addons.jsx index ced5a8f9..f4272781 100644 --- a/src/components/modals/Addons.jsx +++ b/src/components/modals/tabs/Addons.jsx @@ -1,8 +1,8 @@ import React from 'react'; import LocalMallIcon from '@material-ui/icons/LocalMall'; import { toast } from 'react-toastify'; -import Item from './marketplace/Item'; -import MarketplaceFunctions from '../../modules/marketplaceFunctions'; +import Item from '../marketplace/Item'; +import MarketplaceFunctions from '../../../modules/marketplaceFunctions'; export default class Addons extends React.PureComponent { constructor(...args) { @@ -136,16 +136,9 @@ export default class Addons extends React.PureComponent { }; }; - document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); - document.getElementById('center').classList.toggle('backgroundEffects'); this.setState({ installed: JSON.parse(localStorage.getItem('installed')) }); } - componentWillUnmount() { - document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); - document.getElementById('center').classList.toggle('backgroundEffects'); - } - render() { let content ={this.props.modalLanguage.title}
++ + + ++
+ {this.state.tab} +{this.state.installed.map((item) => @@ -169,21 +162,16 @@ export default class Addons extends React.PureComponent {; } - return- × -; + return ( +{this.props.modalLanguage.title}
-- - - --- - --{this.props.language.added}
- {content} -- this.toggle()} language={this.props.marketplaceLanguage.product} /> -
++ ); } } diff --git a/src/components/modals/Marketplace.jsx b/src/components/modals/tabs/Marketplace.jsx similarity index 78% rename from src/components/modals/Marketplace.jsx rename to src/components/modals/tabs/Marketplace.jsx index f773da52..7baf1d7a 100644 --- a/src/components/modals/Marketplace.jsx +++ b/src/components/modals/tabs/Marketplace.jsx @@ -2,10 +2,10 @@ import React from 'react'; import WifiOffIcon from '@material-ui/icons/WifiOff'; import ArrowBackIcon from '@material-ui/icons/ArrowBack'; import { toast } from 'react-toastify'; -import Item from './marketplace/Item'; -import MarketplaceFunctions from '../../modules/marketplaceFunctions'; -import * as Constants from '../../modules/constants'; -import Items from './marketplace/Items'; +import Item from '../marketplace/Item'; +import MarketplaceFunctions from '../../../modules/marketplaceFunctions'; +import * as Constants from '../../../modules/constants'; +import Items from '../marketplace/Items'; export default class Marketplace extends React.PureComponent { constructor(...args) { @@ -35,22 +35,12 @@ export default class Marketplace extends React.PureComponent { } } - this.offlineHTML =+ + ++{this.props.language.added}
+ {content} +- this.toggle()} language={this.props.marketplaceLanguage.product} /> +
- × -{this.props.modalLanguage.title}
-- - - --+ this.offlineHTML =; } @@ -161,47 +151,25 @@ export default class Marketplace extends React.PureComponent { } componentDidMount() { - document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); - document.getElementById('center').classList.toggle('backgroundEffects'); if (navigator.onLine === false) return; this.getItems(); } - componentWillUnmount() { - document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); - document.getElementById('center').classList.toggle('backgroundEffects'); - } - render() { if (navigator.onLine === false) return this.offlineHTML; if (this.state.done === false) { - return-{this.props.language.offline.title}
{this.props.language.offline.description}
- × -+ ) } - return{this.props.modalLanguage.title}
-- - - --+ return ( +; +--Loading...
- × -{this.props.modalLanguage.title}
-- - - --+ return ( +); } -} \ No newline at end of file +}++ ) } } \ No newline at end of file diff --git a/src/components/modals/Settings.jsx b/src/components/modals/tabs/Settings.jsx similarity index 78% rename from src/components/modals/Settings.jsx rename to src/components/modals/tabs/Settings.jsx index de0422fe..b0a0b27f 100644 --- a/src/components/modals/Settings.jsx +++ b/src/components/modals/tabs/Settings.jsx @@ -1,13 +1,13 @@ import React from 'react'; -import SettingsFunctions from '../../modules/settingsFunctions'; -import Checkbox from './settings/Checkbox'; -import Slider from './settings/Slider'; -import Section from './settings/Section'; +import SettingsFunctions from '../../../modules/settingsFunctions'; +import Checkbox from '../settings/Checkbox'; +import Slider from '../settings/Slider'; +import Section from '../settings/Section'; import { toast } from 'react-toastify'; -import BackgroundSettings from './settings/sections/BackgroundSettings'; -import SearchSettings from './settings/sections/SearchSettings'; -import LanguageSettings from './settings/sections/LanguageSettings'; +import BackgroundSettings from '../settings/sections/BackgroundSettings'; +import SearchSettings from '../settings/sections/SearchSettings'; +import LanguageSettings from '../settings/sections/LanguageSettings'; export default class Settings extends React.PureComponent { resetGreeting() { @@ -41,28 +41,10 @@ export default class Settings extends React.PureComponent { toast(this.props.toastLanguage.imported); }; }; - - document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); - document.getElementById('center').classList.toggle('backgroundEffects'); - } - - componentWillUnmount() { - document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); - document.getElementById('center').classList.toggle('backgroundEffects'); } render() { return ( -; +-{this.state.featured.title}
{this.state.featured.name}
@@ -247,6 +215,7 @@ export default class Marketplace extends React.PureComponent { items={this.state.see_more} />- × -); } } diff --git a/src/components/widgets/Search.jsx b/src/components/widgets/Search.jsx index f91b8f74..c4a3612e 100644 --- a/src/components/widgets/Search.jsx +++ b/src/components/widgets/Search.jsx @@ -62,4 +62,4 @@ export default class Search extends React.PureComponent {{this.props.modalLanguage.title}
-- - - --
--@@ -112,7 +94,6 @@ export default class Settings extends React.PureComponent {