@@ -10,6 +10,8 @@ import LFOView from './views/LFO/LFOView.js'
1010import ShareButtonRow from './views/ShareButtons/ShareButtonRow.js'
1111import Presets from './views/Presets/Presets.js'
1212import MidiInput from './views/Midi/MidiInput.js'
13+ import SavePatchModal from './views/Modals/SavePatchModal.js'
14+ import AboutModal from './views/Modals/AboutModal.js'
1315import { connect } from 'react-redux'
1416
1517import Synth from './audio/Synth.js'
@@ -33,6 +35,23 @@ class App extends React.Component {
3335 let action = Actions . waveFileListLoaded ( response . data )
3436 props . dispatch ( action )
3537 } )
38+ this . state = {
39+ isSavePatchModalOpen : false ,
40+ isAboutModalOpen : false
41+ }
42+ }
43+
44+ onOpenSavePatchModal ( ) {
45+ this . setState ( { isSavePatchModalOpen : true } )
46+ }
47+ onCloseSavePatchModal ( ) {
48+ this . setState ( { isSavePatchModalOpen : false } )
49+ }
50+ onOpenAboutModal ( ) {
51+ this . setState ( { isAboutModalOpen : true } )
52+ }
53+ onCloseAboutModal ( ) {
54+ this . setState ( { isAboutModalOpen : false } )
3655 }
3756
3857 render ( ) {
@@ -112,6 +131,8 @@ class App extends React.Component {
112131 eventEmitter = { eventEmitter }
113132 Keyboard = { this . props . Keyboard } />
114133 < div className = 'footer-info' >
134+ < a onClick = { this . onOpenAboutModal . bind ( this ) } > About</ a >
135+ < a onClick = { this . onOpenSavePatchModal . bind ( this ) } > Save Patch</ a >
115136 < ShareButtonRow />
116137 < p > Made By Elegant Borzoi and Jordan</ p >
117138 < p >
@@ -122,6 +143,14 @@ class App extends React.Component {
122143 </ div >
123144 </ footer >
124145
146+ < SavePatchModal
147+ isOpen = { this . state . isSavePatchModalOpen }
148+ onClose = { this . onCloseSavePatchModal . bind ( this ) } />
149+
150+ < AboutModal
151+ isOpen = { this . state . isAboutModalOpen }
152+ onClose = { this . onCloseAboutModal . bind ( this ) } />
153+
125154 < Synth
126155 store = { this . props . store }
127156 eventEmitter = { eventEmitter }
0 commit comments