Skip to content

Commit

Permalink
Added OneLib and wrapper function for showing errors so its unified
Browse files Browse the repository at this point in the history
  • Loading branch information
jh97uk committed Aug 4, 2020
1 parent f1d84a9 commit c8cc47d
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 46 deletions.
24 changes: 24 additions & 0 deletions src/OneLib.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
class OneLib{
constructor(){
this.showError = this.showError.bind();
}
static getRandomErrorTitle(){
var titles = [
'Uhoh, something went wrong...',
'Snap...',
'Oops...',
'Houston, we have a problem...',
'Send help...'
]
return titles[Math.floor(Math.random() * titles.length)];
}
static showError(alert, error, onClose){
alert.show(error.message, {
title:this.getRandomErrorTitle(),
closeCopy:'Ok',
onClose:onClose
})
}
}

export default OneLib;
16 changes: 7 additions & 9 deletions src/views/CreateGame.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import Switch from 'react-switch';
import feathers from '@feathersjs/client';
import { Facebook } from 'react-spinners-css';
import { withAlert } from "react-alert";
import OneLib from '../OneLib.js';

class CreateGameView extends Component {

Expand All @@ -21,7 +22,7 @@ class CreateGameView extends Component {

this.sessions = feathersClient.service('sessions')

this.state = {createStoryLoading:false, linkOnly: false, storyTitle: '', sessionOwnerId:props.userId};
this.state = {loading:false, linkOnly: false, storyTitle: '', sessionOwnerId:props.userId};
this.handleChange = this.handleChange.bind(this);
this.createGame = this.createGame.bind(this);
}
Expand All @@ -35,17 +36,14 @@ class CreateGameView extends Component {
}

createGame() {
this.setState({createStoryLoading:true})
this.setState({loading:true})
const self = this;
this.sessions.create({linkOnly:this.state.linkOnly, storyTitle:this.state.storyTitle, sessionOwnerId:this.state.sessionOwnerId}).then(function(session){
self.setState({createStoryLoading:true, createdSession: session})
self.setState({loading:true, createdSession: session})
}, function(error){
self.props.alert.show(error.message, {
title:"Uhoh, something went wrong...",
closeCopy:'Ok',
onClose:function(){
self.setState({createStoryLoading:false});
}})
OneLib.showError(self.props.alert, error, function(){
self.setState({loading:false});
});
});
}

Expand Down
1 change: 0 additions & 1 deletion src/views/Home.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import '../App.css';
import {Link, BrowserRouter as Router} from 'react-router-dom';
import Logo from '../widgets/logo';
import Ripples from 'react-ripples';
import CreateGameView from '../views/CreateGame';

function HomeView() {
return (
Expand Down
6 changes: 2 additions & 4 deletions src/views/IntializeUser.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import Ripples from 'react-ripples';
import { withAlert } from "react-alert";
import feathers from '@feathersjs/client';
import { Facebook } from 'react-spinners-css';
import OneLib from '../OneLib.js';

class InitializeUserView extends Component{
constructor(props){
Expand All @@ -14,7 +15,6 @@ class InitializeUserView extends Component{
this.createUser = this.createUser.bind(this);
const socket = props.connection;
const feathersClient = feathers();

feathersClient.configure(feathers.socketio(socket));

this.users = feathersClient.service('users');
Expand All @@ -27,9 +27,7 @@ class InitializeUserView extends Component{
self.setState({loading:false})
self.props.setUser(user);
}, function(error){
self.props.alert.show(error.message, {
title:"Uhoh, something went wrong...",
closeCopy:'Ok'})
OneLib.showError(self.props.alert, error, function(){})
self.setState({loading:false});
});
}
Expand Down
14 changes: 5 additions & 9 deletions src/views/JoiningStory.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import ReactLoading from 'react-loading';
import Ripples from 'react-ripples';
import Logo from '../widgets/logo';
import { withAlert } from "react-alert";

import OneLib from '../OneLib';

class JoiningStory extends React.Component{
constructor(props){
Expand All @@ -16,18 +16,14 @@ class JoiningStory extends React.Component{
}
}
componentDidMount(){
console.log("mounted");
if(!this.props.userId)
return;
const self = this;
fetch('http://localhost:3030/sessions', {mode:'cors'}).then(response=>response.json()).then(data=>{
if(data.code != undefined && data.code == 404){
self.props.alert.show(data.message, {
title:"Uhoh, something went wrong...",
closeCopy:'Ok',
onClose:function(){
self.setState({exit:true});
}})
if(data.code != undefined && data.code == 500){
OneLib.showError(self.props.alert, data, function(){
self.setState({exit:true});
})
} else{
self.setState({gameIdFound:data.id});
}
Expand Down
33 changes: 10 additions & 23 deletions src/views/StoryChat.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
/* eslint-disable import/first */

import Cookies from 'universal-cookie';
import React, {Component, Fragment, useState} from 'react';
import { ToastContainer, toast } from 'react-toastify';
import { withAlert } from "react-alert";
import 'react-toastify/dist/ReactToastify.css';
import '../App.css';
import Ripples from 'react-ripples';
import AppBar from '../widgets/AppBar';
import Word from '../widgets/Word';
import {Redirect} from 'react-router-dom';
import PropTypes from "prop-types";
import { withRouter } from "react-router";
import {nanoid} from 'nanoid';
import io from 'socket.io-client';
import feathers from '@feathersjs/client';
import OneLib from '../OneLib.js';

class StoryChat extends Component{

constructor(props){
super()
const socket = props.connection;
Expand Down Expand Up @@ -130,25 +123,19 @@ class StoryChat extends Component{
self.setState({messages:data})
});
}, function(error){
self.props.alert.show(error.message, {
title:"Uhoh, something went wrong...",
closeCopy:'Ok',
onClose:function(){
self.setState({exit:true});
}})
OneLib.showError(self.props.alert, error, function(){
self.setState({exit:true});
})
});

self.session.on('patched', self.onSessionChangedListener);
self.session.on("joined", self.onPlayerJoinedListener);
self.session.on('left', self.onPlayerLeftListener);
self.setState({storyTitle:data.name})
}, function(error){
self.props.alert.show("Uhoh, something went wrong...", {
title:error.message,
closeCopy:'Ok',
onClose:function(){
self.setState({exit:true});
}})
OneLib.showError(self.props.alert, error, function(){
self.setState({exit:true});
})
});

}
Expand Down Expand Up @@ -199,9 +186,9 @@ class StoryChat extends Component{
userId:this.props.userId
}).then(function(data){
}, function(error){
self.props.alert.show("Uhoh, something went wrong...", {
title:error.message,
closeCopy:'Ok'})
OneLib.showError(self.props.alert, error, function(){
self.setState({exit:true});
})
})
this.setState({sendWord:''});
}
Expand Down

0 comments on commit c8cc47d

Please # to comment.