mirror of
https://github.com/TrentSPalmer/fcc-challenges.git
synced 2024-11-25 04:31:29 -08:00
1 line
107 KiB
Plaintext
1 line
107 KiB
Plaintext
{"version":3,"sources":["actions/inputStringAction.js","actions/operationStringAction.js","reducers/rootReducer.js","reducers/innerWindowWidthReducer.js","actions/innerWindowWidthAction.js","reducers/innerWindowHeightReducer.js","actions/innerWindowHeightAction.js","reducers/inputStringReducer.js","reducers/operationStringReducer.js","store.js","globals.js","Seven.js","Eight.js","Nine.js","Four.js","Five.js","Six.js","One.js","Two.js","Three.js","Zero.js","Decimal.js","Clear.js","Divide.js","Multiply.js","Subtract.js","Add.js","Equals.js","DisplayInput.js","DisplayOperations.js","Display.js","Back.js","CalculatorGrid.js","Calculator.js","App.js","serviceWorker.js","index.js"],"names":["inputStringAction","inputString","type","operationStringAction","operationString","combineReducers","innerWindowWidth","state","action","window","innerWidth","windowInnerWidth","innerWindowHeight","innerHeight","windowInnerHeight","store","createStore","rootReducer","colors","operators","makeInputAndOperationsStrings","nextChar","inputStringResult","tempOperationString","includes","split","operationStringResult","length","slice","lastOperationChar","parseAndCalculate","statementArray","forEach","item","index","push","previous","pop","duplicateOperatorsFilteredArray","filter","calculate","map","parseFloat","parseInt","toString","indexOfOperator","indexOf","Seven","props","handleClick","bind","handleMouseEvent","backgroundColor","this","e","setState","width","height","style","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","borderBottom","borderRight","display","flexDirection","justifyContent","id","className","onClick","onTouchStart","onTouchEnd","onMouseDown","onMouseUp","React","Component","connect","dispatch","Eight","Nine","Four","Five","Six","One","Two","Three","Zero","borderRadius","Decimal","Clear","Divide","alignItems","icon","faDivide","Multiply","faTimes","Subtract","faMinus","Add","faPlus","Equals","fontSize","DisplayInput","textAlign","lineHeight","DisplayOperations","color","Display","textOverflow","whiteSpace","overflow","Back","faBackspace","CalculatorGrid","gridTemplateRows","gridTemplateColumns","Calculator","handleKeyPress","handleKey","key","keyCode","preventDefault","document","addEventListener","removeEventListener","topMargin","Math","round","sideMargin","marginTop","marginBottom","marginLeft","marginRight","overFlow","border","userSelect","MozUserSelect","WebkitUserSelect","zIndex","fontFamily","App","handleResize","innerWindowWidthAction","innerWindowHeightAction","gitHubLabelStyle","position","right","attachmentStyle","href","target","rel","src","alt","data-recalc-dims","Boolean","location","hostname","match","ReactDOM","render","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch","error","console","message"],"mappings":"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","file":"static/js/main.78f555dc.chunk.js","sourcesContent":["export const SETINPUTSTRING = \"SETINPUTSTRING\";\n\nexport const inputStringAction = (inputString) => {\n return {\n type: SETINPUTSTRING,\n inputString: inputString,\n };\n};\n","export const SETOPERATIONSTRING = \"SETOPERATIONSTRING\";\n\nexport const operationStringAction = (operationString) => {\n return {\n type: SETOPERATIONSTRING,\n operationString: operationString,\n };\n};\n","import { combineReducers } from \"redux\";\nimport innerWindowWidthReducer from \"./innerWindowWidthReducer\";\nimport innerWindowHeightReducer from \"./innerWindowHeightReducer\";\nimport inputStringReducer from \"./inputStringReducer\";\nimport operationStringReducer from \"./operationStringReducer\";\n\nexport default combineReducers({\n innerWindowWidth: innerWindowWidthReducer,\n innerWindowHeight: innerWindowHeightReducer,\n inputString: inputStringReducer,\n operationString: operationStringReducer,\n});\n","import { SETWINDOWINNERWIDTH } from \"../actions/innerWindowWidthAction\";\n\nexport default (state, action) => {\n if (!state) {\n state = window.innerWidth;\n }\n\n switch (action.type) {\n case SETWINDOWINNERWIDTH:\n return action.windowInnerWidth;\n default:\n return state;\n };\n};\n","export const SETWINDOWINNERWIDTH = \"SETWINDOWINNERWIDTH\";\n\nexport const innerWindowWidthAction = (windowInnerWidth) => {\n return {\n type: SETWINDOWINNERWIDTH,\n windowInnerWidth: windowInnerWidth,\n };\n};\n","import { SETWINDOWINNERHEIGHT } from \"../actions/innerWindowHeightAction\";\n\nexport default (state, action) => {\n if (!state) {\n state = window.innerHeight;\n }\n\n switch (action.type) {\n case SETWINDOWINNERHEIGHT:\n return action.windowInnerHeight;\n default:\n return state;\n }\n};\n","export const SETWINDOWINNERHEIGHT = \"SETWINDOWINNERHEIGHT\";\n\nexport const innerWindowHeightAction = (windowInnerHeight) => {\n return {\n type: SETWINDOWINNERHEIGHT,\n windowInnerHeight: windowInnerHeight,\n };\n};\n","import { SETINPUTSTRING } from \"../actions/inputStringAction\";\n\nexport default (state, action) => {\n if (!state) {\n state = '';\n }\n\n switch (action.type) {\n case SETINPUTSTRING:\n return action.inputString;\n default:\n return state;\n };\n};\n","import { SETOPERATIONSTRING } from \"../actions/operationStringAction\";\n\nexport default (state, action) => {\n if (!state) {\n state = '';\n }\n\n switch (action.type) {\n case SETOPERATIONSTRING:\n return action.operationString;\n default:\n return state;\n };\n};\n","import { createStore } from \"redux\";\nimport rootReducer from \"./reducers/rootReducer\";\n\nconst store = createStore(rootReducer);\n\nexport default store;\n","export const colors = {\n firstColor: '#00293C',\n secondColor: '#1e656d',\n thirdColor: '#6d261e',\n fourthColor: '#656d1e',\n fifthColor: '#261e6d',\n textColor: '#f1f3ce',\n secondtextColor: '#f62a00',\n};\n\nconst operators = ['*','/','-','+'];\n\nexport const makeInputAndOperationsStrings = (inputString,operationString,nextChar) => {\n let inputStringResult = inputString;\n let tempOperationString = operationString.includes('=') ? operationString.split('=')[1] : operationString;\n let operationStringResult = tempOperationString;\n\n if (tempOperationString.length > 0 && ['*','/','+','-','='].includes(nextChar) && tempOperationString.slice(-1) === '.') {\n tempOperationString = tempOperationString.slice(0,-1);\n }\n\n const numbers = ['1','2','3','4','5','6','7','8','9'];\n\n if (numbers.includes(nextChar)) {\n if (inputString.length === 0) {\n inputStringResult = nextChar;\n operationStringResult = tempOperationString + nextChar;\n } else if (inputString.length === 1) {\n if (inputString[0] === '0') {\n inputStringResult = nextChar;\n operationStringResult = tempOperationString.slice(0,-1) + nextChar;\n } else if (inputString[0] === '-') {\n if (tempOperationString.length === 1) {\n inputStringResult = inputString + nextChar;\n operationStringResult = inputString + nextChar;\n } else {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (['*','/','+'].includes(inputString[0])) {\n inputStringResult = nextChar;\n operationStringResult = tempOperationString + nextChar;\n } else {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (inputString.length === 2) {\n if (inputString[0] === '-') {\n if (inputString[1] === '0') {\n inputStringResult = '-' + nextChar;\n operationStringResult = tempOperationString.slice(0,-1) + nextChar;\n } else {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (inputString.length > 2) {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (nextChar === '0') {\n if (inputString.length === 0) {\n inputStringResult = nextChar;\n operationStringResult = tempOperationString + nextChar;\n } else if (inputString.length === 1) {\n if (inputString[0] !== '0') {\n if (['*','/','+'].includes(inputString[0])) {\n inputStringResult = nextChar;\n operationStringResult = tempOperationString + nextChar;\n } else {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n }\n } else if (inputString.length === 2) {\n if (inputString[0] !== '-') {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n } else if (inputString[1] !== '0') {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (inputString.length > 2) {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (nextChar === '-') {\n if (tempOperationString.length === 0) {\n inputStringResult = nextChar;\n operationStringResult = nextChar;\n } else if (tempOperationString.length === 1) {\n if (!operators.includes(tempOperationString[0])) {\n inputStringResult = nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else {\n inputStringResult = nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (['*','/','+'].includes(nextChar)) {\n if (tempOperationString.length === 1) {\n if (!operators.includes(tempOperationString.slice(-1))) {\n operationStringResult = tempOperationString + nextChar;\n inputStringResult = nextChar;\n }\n } else if (tempOperationString.length > 1) {\n inputStringResult = nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (nextChar === '.' && (!inputString.includes('.'))) {\n if (inputString.length === 0) {\n inputStringResult = '0.';\n operationStringResult = tempOperationString + '0.';\n } else if (inputString.length === 1) {\n if (tempOperationString.length === 0) {\n if (inputString[0] === '-') {\n inputStringResult = '-0.';\n operationStringResult = tempOperationString + '-0.';\n } else {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else {\n if (operators.includes(inputString[0])) {\n inputStringResult = '0.';\n operationStringResult = tempOperationString + '0.';\n } else {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n }\n } else {\n inputStringResult = inputString + nextChar;\n operationStringResult = tempOperationString + nextChar;\n }\n } else if (nextChar === '=' && tempOperationString.length > 0) {\n const lastOperationChar = tempOperationString.slice(-1);\n if (operators.includes(lastOperationChar) || lastOperationChar === '.') {\n inputStringResult = parseAndCalculate(tempOperationString.slice(0,-1));\n operationStringResult = tempOperationString.slice(0,-1) + '=' + inputStringResult;\n } else {\n inputStringResult = parseAndCalculate(tempOperationString);\n operationStringResult = tempOperationString + '=' + inputStringResult;\n }\n } else if (nextChar === 'b') {\n if (tempOperationString.length === 1) {\n inputStringResult = inputString.slice(0,-1);\n operationStringResult = tempOperationString.slice(0,-1);\n } else if (tempOperationString.length > 1) {\n if (operators.includes(tempOperationString.slice(-1))) {\n if (operators.includes(tempOperationString.slice(-2,-1))) {\n inputStringResult = tempOperationString.slice(-2,-1);\n operationStringResult = tempOperationString.slice(0,-1);\n } else {\n operationStringResult = tempOperationString.slice(0,-1);\n inputStringResult = operationStringResult.split(/[-*/+]/).slice(-1)[0];\n }\n } else {\n if (operators.includes(tempOperationString.slice(-2,-1))) {\n inputStringResult = tempOperationString.slice(-2,-1);\n operationStringResult = tempOperationString.slice(0,-1);\n } else {\n inputStringResult = inputString.slice(0,-1);\n operationStringResult = tempOperationString.slice(0,-1);\n }\n }\n }\n }\n\n return [inputStringResult,operationStringResult];\n}\n\nconst parseAndCalculate = (operationString) => {\n const statementArray = [];\n operationString.split('').forEach((item,index) => {\n if (index === 0) {\n statementArray.push(item);\n } else {\n if (operators.includes(item)) {\n statementArray.push(item);\n } else {\n if (statementArray[statementArray.length - 1] === '-') {\n if (index === 1 || operators.includes(statementArray[statementArray.length - 2])) {\n const previous = statementArray[statementArray.length - 1];\n statementArray[statementArray.length - 1] = previous + item;\n } else {\n statementArray.push(item);\n }\n } else if (['*','/','+'].includes(statementArray[statementArray.length - 1])) {\n statementArray.push(item);\n } else {\n const previous = statementArray[statementArray.length - 1];\n statementArray[statementArray.length - 1] = previous + item;\n }\n }\n }\n });\n // remove trailing operators\n while (operators.includes(statementArray[statementArray.length - 1])) {\n statementArray.pop();\n }\n const duplicateOperatorsFilteredArray = statementArray.filter((item,index) => {\n return (!operators.includes(statementArray[index + 1]) || !operators.includes(item));\n });\n if (duplicateOperatorsFilteredArray.length === 1) {\n return duplicateOperatorsFilteredArray[0];\n } else {\n return calculate(duplicateOperatorsFilteredArray.map(item => {\n if (operators.includes(item)) {\n return item;\n } else {\n return item.includes('.') ? parseFloat(item) : parseInt(item);\n }\n }))[0].toString();\n }\n}\n\nconst calculate = (statementArray) => {\n if (statementArray.length === 1) {\n return statementArray;\n } else if (statementArray.includes('*')) {\n const indexOfOperator = statementArray.indexOf('*');\n return calculate([\n ...statementArray.slice(0,indexOfOperator - 1),\n statementArray[indexOfOperator - 1] * statementArray[indexOfOperator + 1],\n ...statementArray.slice((indexOfOperator + 2),)\n ]);\n } else if (statementArray.includes('/')) {\n const indexOfOperator = statementArray.indexOf('/');\n return calculate([\n ...statementArray.slice(0,indexOfOperator - 1),\n statementArray[indexOfOperator - 1] / statementArray[indexOfOperator + 1],\n ...statementArray.slice((indexOfOperator + 2),)\n ]);\n } else if (statementArray.includes('-')) {\n const indexOfOperator = statementArray.indexOf('-');\n return calculate([\n ...statementArray.slice(0,indexOfOperator - 1),\n statementArray[indexOfOperator - 1] - statementArray[indexOfOperator + 1],\n ...statementArray.slice((indexOfOperator + 2),)\n ]);\n } else if (statementArray.includes('+')) {\n const indexOfOperator = statementArray.indexOf('+');\n return calculate([\n ...statementArray.slice(0,indexOfOperator - 1),\n statementArray[indexOfOperator - 1] + statementArray[indexOfOperator + 1],\n ...statementArray.slice((indexOfOperator + 2),)\n ]);\n }\n}\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Seven extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'7');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 2,\n gridColumnEnd: 3,\n gridRowStart: 2,\n gridRowEnd: 3,\n borderBottom: '3px solid black',\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 3;\n style['gridRowEnd'] = 4;\n style['gridColumnStart'] = 1;\n style['gridColumnEnd'] = 2;\n }\n\n return (\n <div id=\"seven\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>7</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Seven);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Eight extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'8');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 3,\n gridColumnEnd: 4,\n gridRowStart: 2,\n gridRowEnd: 3,\n borderBottom: '3px solid black',\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 3;\n style['gridRowEnd'] = 4;\n style['gridColumnStart'] = 2;\n style['gridColumnEnd'] = 3;\n }\n\n return (\n <div id=\"eight\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>8</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Eight);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Nine extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'9');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 4,\n gridColumnEnd: 5,\n gridRowStart: 2,\n gridRowEnd: 3,\n borderBottom: '3px solid black',\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 3;\n style['gridRowEnd'] = 4;\n style['gridColumnStart'] = 3;\n style['gridColumnEnd'] = 4;\n }\n\n return (\n <div id=\"nine\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>9</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Nine);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Four extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'4');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 2,\n gridColumnEnd: 3,\n gridRowStart: 3,\n gridRowEnd: 4,\n borderBottom: '3px solid black',\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 4;\n style['gridRowEnd'] = 5;\n style['gridColumnStart'] = 1;\n style['gridColumnEnd'] = 2;\n }\n\n return (\n <div id=\"four\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>4</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Four);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Five extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'5');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 3,\n gridColumnEnd: 4,\n gridRowStart: 3,\n gridRowEnd: 4,\n borderBottom: '3px solid black',\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 4;\n style['gridRowEnd'] = 5;\n style['gridColumnStart'] = 2;\n style['gridColumnEnd'] = 3;\n }\n\n return (\n <div id=\"five\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>5</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Five);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Six extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'6');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 4,\n gridColumnEnd: 5,\n gridRowStart: 3,\n gridRowEnd: 4,\n borderBottom: '3px solid black',\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 4;\n style['gridRowEnd'] = 5;\n style['gridColumnStart'] = 3;\n style['gridColumnEnd'] = 4;\n }\n\n return (\n <div id=\"six\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>6</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Six);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass One extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'1');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 2,\n gridColumnEnd: 3,\n gridRowStart: 4,\n gridRowEnd: 5,\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 5;\n style['gridRowEnd'] = 6;\n style['borderBottom'] = '3px solid black';\n style['gridColumnStart'] = 1;\n style['gridColumnEnd'] = 2;\n }\n\n return (\n <div id=\"one\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>1</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(One);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Two extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'2');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 3,\n gridColumnEnd: 4,\n gridRowStart: 4,\n gridRowEnd: 5,\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 5;\n style['gridRowEnd'] = 6;\n style['borderBottom'] = '3px solid black';\n style['gridColumnStart'] = 2;\n style['gridColumnEnd'] = 3;\n }\n\n return (\n <div id=\"two\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>2</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Two);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Three extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'3');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 4,\n gridColumnEnd: 5,\n gridRowStart: 4,\n gridRowEnd: 5,\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 5;\n style['gridRowEnd'] = 6;\n style['borderBottom'] = '3px solid black';\n style['gridColumnStart'] = 3;\n style['gridColumnEnd'] = 4;\n }\n\n return (\n <div id=\"three\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>3</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Three);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Zero extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'0');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 1,\n gridColumnEnd: 2,\n gridRowStart: 4,\n gridRowEnd: 5,\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n borderRadius: '0 0 0 7px',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 6;\n style['gridRowEnd'] = 7;\n style['gridColumnStart'] = 1;\n style['gridColumnEnd'] = 3;\n }\n\n return (\n <div id=\"zero\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>0</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Zero);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Decimal extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.secondColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'.');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.secondColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 1,\n gridColumnEnd: 2,\n gridRowStart: 3,\n gridRowEnd: 4,\n borderRight: '3px solid black',\n borderBottom: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 6;\n style['gridRowEnd'] = 7;\n style['gridColumnStart'] = 3;\n style['gridColumnEnd'] = 4;\n style['borderBottom'] = 'unset';\n }\n\n return (\n <div id=\"decimal\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>.</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Decimal);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Clear extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.fifthColor,\n };\n };\n\n handleClick() {\n this.props.inputStringAction('');\n this.props.operationStringAction('');\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.secondColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.fifthColor});\n }\n }\n\n render() {\n const style = {\n gridColumnStart: 1,\n gridColumnEnd: 2,\n gridRowStart: 2,\n gridRowEnd: 3,\n borderRight: '3px solid black',\n borderBottom: '3px solid black',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: this.state.backgroundColor, \n };\n\n return (\n <div id=\"clear\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>AC</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Clear);\n","import React from 'react';\nimport { connect } from \"react-redux\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faDivide } from \"@fortawesome/free-solid-svg-icons\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Divide extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.fourthColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'/');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.fourthColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 5,\n gridColumnEnd: 6,\n gridRowStart: 2,\n gridRowEnd: 3,\n borderBottom: '3px solid black',\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridColumnStart'] = 3;\n style['gridColumnEnd'] = 4;\n }\n\n return (\n <div id=\"divide\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>\n <FontAwesomeIcon icon={faDivide}/>\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Divide);\n","import React from 'react';\nimport { connect } from \"react-redux\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Multiply extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.fourthColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'*');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.fourthColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 6,\n gridColumnEnd: 7,\n gridRowStart: 2,\n gridRowEnd: 3,\n borderBottom: '3px solid black',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridColumnStart'] = 4;\n style['gridColumnEnd'] = 5;\n }\n\n return (\n <div id=\"multiply\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>\n <FontAwesomeIcon icon={faTimes}/>\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Multiply);\n","import React from 'react';\nimport { connect } from \"react-redux\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faMinus } from \"@fortawesome/free-solid-svg-icons\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Subtract extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.fourthColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'-');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.fourthColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 5,\n gridColumnEnd: 6,\n gridRowStart: 3,\n gridRowEnd: 4,\n borderBottom: '3px solid black',\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridColumnStart'] = 4;\n style['gridColumnEnd'] = 5;\n style['borderRight'] = 'unset';\n }\n\n return (\n <div id=\"subtract\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>\n <FontAwesomeIcon icon={faMinus}/>\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Subtract);\n","import React from 'react';\nimport { connect } from \"react-redux\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faPlus } from \"@fortawesome/free-solid-svg-icons\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Add extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.fourthColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'+');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.fourthColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 5,\n gridColumnEnd: 6,\n gridRowStart: 4,\n gridRowEnd: 5,\n borderRight: '3px solid black',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridColumnStart'] = 4;\n style['gridColumnEnd'] = 5;\n style['borderRight'] = 'unset';\n style['borderBottom'] = '3px solid black';\n }\n\n return (\n <div id=\"add\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>\n <FontAwesomeIcon icon={faPlus}/>\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Add);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Equals extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.thirdColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'=');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.thirdColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 6,\n gridColumnEnd: 7,\n gridRowStart: 4,\n gridRowEnd: 5,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: this.state.backgroundColor,\n borderRadius: '0 0 7px 0',\n fontSize: 88,\n };\n\n if (width > height && height < 400) {\n style['fontSize'] = 56;\n } else if (height > width) {\n style['gridColumnStart'] = 4;\n style['gridColumnEnd'] = 5;\n style['gridRowStart'] = 5;\n style['gridRowEnd'] = 7;\n }\n\n return (\n <div id=\"equals\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>=</div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Equals);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nclass DisplayInput extends React.Component {\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n textAlign: 'right',\n height: '60%',\n fontSize: 64,\n lineHeight: '100%',\n };\n\n if (width > height && height < 400) {\n style['fontSize'] = 36;\n } else if (height > width && height < 850) {\n style['fontSize'] = 36;\n }\n\n return (\n <div id=\"display\" style={style}>{\n this.props.inputString.length === 0 ? 0 : this.props.inputString\n }</div>\n );\n };\n};\n\nexport default connect(mapStateToProps)(DisplayInput);\n","import React from 'react';\nimport { connect } from \"react-redux\";\nimport { colors } from './globals'\n\nconst mapStateToProps = (state) => ({ ...state });\n\nclass DisplayOperations extends React.Component {\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n textAlign: 'right',\n height: '40%',\n fontSize: 48,\n lineHeight: '100%',\n color: colors.secondtextColor,\n };\n\n if (width > height && height < 400) {\n style['fontSize'] = 27;\n } else if (height > width && height < 850) {\n style['fontSize'] = 27;\n }\n\n return (\n <div id=\"displayOperations\" style={style}>{\n this.props.operationString.length === 0 ? 0 : this.props.operationString\n }</div>\n );\n };\n};\n\nexport default connect(mapStateToProps)(DisplayOperations);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors } from './globals'\nimport DisplayInput from './DisplayInput';\nimport DisplayOperations from './DisplayOperations';\nconst mapStateToProps = (state) => ({ ...state });\n\nclass Display extends React.Component {\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 1,\n gridColumnEnd: 7,\n gridRowStart: 1,\n gridRowEnd: 2,\n borderBottom: '3px solid black',\n backgroundColor: colors.textColor,\n borderRadius: '7px 7px 0 0',\n color: colors.firstColor,\n textOverflow: 'clip',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n };\n\n if (height > width) {\n style['gridColumnEnd'] = 5;\n }\n\n return (\n <div style={style}>\n <DisplayOperations />\n <DisplayInput />\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps)(Display);\n","import React from 'react';\nimport { connect } from \"react-redux\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faBackspace } from \"@fortawesome/free-solid-svg-icons\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Back extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.handleMouseEvent = this.handleMouseEvent.bind(this);\n this.state = {\n backgroundColor: colors.fourthColor,\n };\n };\n\n handleClick() {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,'b');\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleMouseEvent(e) {\n if (e.type === 'mousedown' || e.type === 'touchstart') {\n this.setState({backgroundColor: colors.firstColor});\n } else if (e.type === 'mouseup' || e.type === 'touchend') {\n this.setState({backgroundColor: colors.fourthColor});\n }\n }\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n gridColumnStart: 6,\n gridColumnEnd: 7,\n gridRowStart: 3,\n gridRowEnd: 4,\n borderBottom: '3px solid black',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: this.state.backgroundColor,\n };\n\n if (height > width) {\n style['gridRowStart'] = 2;\n style['gridRowEnd'] = 3;\n style['gridColumnStart'] = 2;\n style['gridColumnEnd'] = 3;\n style['borderRight'] = '3px solid black';\n }\n\n return (\n <div id=\"subtract\" style={style} className='clickable' onClick={this.handleClick}\n onTouchStart={this.handleMouseEvent} onTouchEnd={this.handleMouseEvent}\n onMouseDown={this.handleMouseEvent} onMouseUp={this.handleMouseEvent}>\n <FontAwesomeIcon icon={faBackspace}/>\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Back);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport Seven from './Seven';\nimport Eight from './Eight';\nimport Nine from './Nine';\nimport Four from './Four';\nimport Five from './Five';\nimport Six from './Six';\nimport One from './One';\nimport Two from './Two';\nimport Three from './Three';\nimport Zero from './Zero';\nimport Decimal from './Decimal';\nimport Clear from './Clear';\nimport Divide from './Divide';\nimport Multiply from './Multiply';\nimport Subtract from './Subtract';\nimport Add from './Add';\nimport Equals from './Equals';\nimport Display from './Display';\nimport Back from './Back';\nconst mapStateToProps = (state) => ({ ...state });\n\nclass CalculatorGrid extends React.Component {\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const style = {\n display: 'grid',\n width: '100%',\n height: '100%',\n gridTemplateRows: 'repeat(4, 1fr)',\n gridTemplateColumns: 'repeat(6, 1fr)',\n fontSize: 64,\n };\n\n if (width > height && height < 400) {\n style['fontSize'] = 48;\n } else if (height > width) {\n style['gridTemplateRows'] = 'repeat(6, 1fr)';\n style['gridTemplateColumns'] = 'repeat(4, 1fr)';\n style['fontSize'] = 48;\n }\n\n return (\n <div id=\"CalculatorGrid\" style={style}>\n <Seven />\n <Eight />\n <Nine />\n <Four />\n <Five />\n <Six />\n <One />\n <Two />\n <Three />\n <Zero />\n <Decimal />\n <Clear />\n <Divide />\n <Multiply />\n <Subtract />\n <Add />\n <Equals />\n <Display />\n <Back />\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps)(CalculatorGrid);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport { colors,makeInputAndOperationsStrings } from './globals'\nimport CalculatorGrid from './CalculatorGrid';\nimport { inputStringAction } from \"./actions/inputStringAction\";\nimport { operationStringAction } from \"./actions/operationStringAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n inputStringAction: (inputString) => dispatch(inputStringAction(inputString)),\n operationStringAction: (operationString) => dispatch(operationStringAction(operationString)),\n});\n\nclass Calculator extends React.Component {\n constructor(props) {\n super(props);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleKey= this.handleKey.bind(this);\n };\n\n handleKey(key) {\n const [inputString,operationString] = makeInputAndOperationsStrings(this.props.inputString,this.props.operationString,key);\n if (inputString !== this.props.inputString) {\n this.props.inputStringAction(inputString);\n }\n if (operationString !== this.props.operationString) {\n this.props.operationStringAction(operationString);\n }\n }\n\n handleKeyPress(e) {\n if (e.keyCode === 8 || e.keyCode === 46) {\n this.handleKey('b');\n } else if (['0','1','2','3','4','5','6','7','8','9','.','*','+','-','='].includes(e.key)) {\n this.handleKey(e.key);\n } else if (e.key === '/') {\n e.preventDefault();\n this.handleKey(e.key);\n } else if (e.keyCode === 13) {\n this.handleKey('=');\n } else if (e.keyCode === 27) {\n this.props.inputStringAction('');\n this.props.operationStringAction('');\n }\n };\n\n componentDidMount() {\n document.addEventListener(\"keydown\", this.handleKeyPress, false);\n };\n\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.handleKeyPress, false);\n };\n\n render() {\n const width = this.props.innerWindowWidth;\n const height = this.props.innerWindowHeight;\n const topMargin = Math.round(height * 0.1);\n const sideMargin = Math.round(width * 0.1);\n const style = {\n height: '80%',\n width: '80%',\n backgroundColor: colors.secondColor,\n borderRadius: 10,\n marginTop: topMargin,\n marginBottom: topMargin,\n marginLeft: sideMargin,\n marginRight: sideMargin,\n overFlow: 'hidden',\n border: '3px solid black',\n userSelect: 'none',\n MozUserSelect: 'none',\n WebkitUserSelect: 'none',\n zIndex: '1',\n fontFamily: 'Baloo Bhai',\n };\n\n if (width > height && height < 400) {\n style['height'] = '96vh';\n style['width'] = '80vw';\n style['marginTop'] = '1vh';\n style['marginBottom'] = '3vh';\n style['marginLeft'] = '89px';\n style['marginRight'] = '89px';\n } else if (height > width) {\n style['height'] = '75vh';\n style['minHeight'] = 481;\n style['width'] = '100vw';\n style['marginTop'] = '12vh';\n style['marginBottom'] = 'unset';\n style['marginLeft'] = '0px';\n style['marginRight'] = '0px';\n }\n\n return (\n <div id=\"Calculator\" style={style}>\n <CalculatorGrid />\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Calculator);\n","import React from 'react';\nimport { connect } from \"react-redux\";\n\nimport Calculator from './Calculator';\nimport { colors } from './globals'\n\nimport { innerWindowWidthAction } from \"./actions/innerWindowWidthAction\";\nimport { innerWindowHeightAction } from \"./actions/innerWindowHeightAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n innerWindowWidthAction: (windowInnerWidth) => dispatch(innerWindowWidthAction(windowInnerWidth)),\n innerWindowHeightAction: (windowInnerHeight) => dispatch(innerWindowHeightAction(windowInnerHeight)),\n});\n\nclass App extends React.Component {\n constructor(props) {\n super(props);\n this.handleResize = this.handleResize.bind(this);\n };\n\n handleResize() {\n this.props.innerWindowWidthAction(window.innerWidth);\n this.props.innerWindowHeightAction(window.innerHeight);\n };\n\n componentDidMount() {\n window.addEventListener('resize',this.handleResize);\n };\n\n componentWillUnmount() {\n window.removeEventListener('resize',this.handleResize);\n };\n\n render() {\n const height = this.props.innerWindowHeight;\n const width = this.props.innerWindowWidth;\n const gitHubLabelStyle = {\n backgroundColor: colors.firstColor,\n border: 'none',\n width: 149,\n height: 0,\n position: 'absolute',\n right: 0,\n };\n\n const attachmentStyle = {\n position: 'absolute',\n right: 0,\n height: 149,\n width: 149,\n };\n\n const style = {\n textAlign: 'center',\n backgroundColor: colors.firstColor,\n height: '100vh',\n width: '100vw',\n display: 'flex',\n color: colors.textColor,\n overFlow: 'hidden',\n };\n\n if (width > height && height < 400) {\n gitHubLabelStyle['width'] = 99;\n attachmentStyle['width'] = 99;\n attachmentStyle['height'] = 99;\n } else if (height > width) {\n gitHubLabelStyle['width'] = 99;\n attachmentStyle['width'] = 99;\n attachmentStyle['height'] = 99;\n }\n\n return (\n <div style={style}>\n <a href=\"https://github.com/TrentSPalmer/fcc-challenges/tree/gh-pages/calculator-react\"\n style={gitHubLabelStyle}\n target=\"_blank\" rel=\"noopener noreferrer\">\n <img\n src=\"https://github.blog/wp-content/uploads/2008/12/forkme_right_white_ffffff.png?resize=149%2C149\"\n className=\"size-full\"\n style={attachmentStyle}\n alt=\"Fork me on GitHub\"\n data-recalc-dims=\"1\">\n </img>\n </a>\n <Calculator />\n </div>\n );\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from \"react-redux\";\nimport store from \"./store\";\n\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n <Provider store={store}>\n <App />\n </Provider>,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""} |