Rename timbre to editor, remove outdated tabs

This commit is contained in:
Aoife
2021-04-06 13:37:15 -04:00
parent addfb3b8ec
commit 5ccb28dc64
24 changed files with 40 additions and 65 deletions
+1 -6
View File
@@ -4,12 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" /> <meta name="description" content="Alapatch - A microKORG patch editor" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<link rel="preconnect" href="https://fonts.gstatic.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" />
<link <link
href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;0,700;0,900;1,400&display=swap" href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;0,700;0,900;1,400&display=swap"
+2 -2
View File
@@ -1,12 +1,12 @@
import React from 'react'; import React from 'react';
import Menu from './features/menu'; import Menu from './features/menu';
import TimbreSwitcher from './features/timbre/timbreSwitcher'; import Editor from './features/editor';
function App() { function App() {
return ( return (
<div className='grid grid-cols-6 grid-rows-1 gap-4 h-screen'> <div className='grid grid-cols-6 grid-rows-1 gap-4 h-screen'>
<Menu className='col-span-1' /> <Menu className='col-span-1' />
<TimbreSwitcher className='col-span-5' /> <Editor className='col-span-5' />
</div> </div>
); );
} }
+2 -2
View File
@@ -1,6 +1,6 @@
import { configureStore } from '@reduxjs/toolkit'; import { configureStore } from '@reduxjs/toolkit';
import timbreReducer from '../features/timbre/timbreSlice'; import timbreReducer from '../features/editor/timbreSlice';
import parameterReducer from '../features/timbre/parameters/parameterSlice'; import parameterReducer from '../features/editor/parameters/parameterSlice';
export default configureStore({ export default configureStore({
reducer: { reducer: {
+20
View File
@@ -0,0 +1,20 @@
import Timbre from './Timbre';
import Vocoder from './Vocoder';
import Effects from './Effects';
import Arpeggio from './Arpeggio';
import { useSelector } from 'react-redux';
const Editor = () => {
const activeTab = useSelector((state) => state.parameters.activeTab);
return (
<div>
{activeTab === 'Timbre1' ? <Timbre id='timbre1' /> : null}
{activeTab === 'Timbre2' ? <Timbre id='timbre2' /> : null}
{activeTab === 'Vocoder' ? <Vocoder id='vocoder' /> : null}
{activeTab === 'Effects' ? <Effects id='effects' /> : null}
{activeTab === 'Arpeggio' ? <Arpeggio id='arpeggio' /> : null}
</div>
);
};
export default Editor;
@@ -425,7 +425,7 @@ const defaultState = {
}, },
}, },
unsaved: false, unsaved: false,
tabIndex: 0, activeTab: 'Timbre1',
}; };
const parametersAdapter = createEntityAdapter({}); const parametersAdapter = createEntityAdapter({});
@@ -442,8 +442,8 @@ const parametersSlice = createSlice({
parameterFlipUnsaved(state) { parameterFlipUnsaved(state) {
state.unsaved = !state.unsaved; state.unsaved = !state.unsaved;
}, },
parameterUpdateIndex(state, action) { parameterUpdateTab(state, action) {
state.tabIndex = action.payload; state.activeTab = action.payload;
}, },
parameterFromFile(state, action) { parameterFromFile(state, action) {
parametersAdapter.upsertMany(state, action.payload); parametersAdapter.upsertMany(state, action.payload);
@@ -464,7 +464,7 @@ export const {
parameterRefreshAll, parameterRefreshAll,
parameterFlipUnsaved, parameterFlipUnsaved,
parameterFromFile, parameterFromFile,
parameterUpdateIndex, parameterUpdateTab,
} = parametersSlice.actions; } = parametersSlice.actions;
export default parametersSlice.reducer; export default parametersSlice.reducer;
+7 -7
View File
@@ -2,12 +2,12 @@ import { useRef, useState, useEffect } from 'react';
import { Select } from '../utils/components'; import { Select } from '../utils/components';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { import {
parameterUpdateIndex, parameterUpdateTab,
parameterUpdated, parameterUpdated,
parameterFromFile, parameterFromFile,
parameterRefreshAll, parameterRefreshAll,
selectEntities, selectEntities,
} from '../timbre/parameters/parameterSlice'; // probably temporarily here } from '../editor/parameters/parameterSlice'; // probably temporarily here
import { return_store_from_file, return_file_from_store } from '../io'; import { return_store_from_file, return_file_from_store } from '../io';
export default function Menu() { export default function Menu() {
@@ -106,7 +106,7 @@ export default function Menu() {
disabled={state.patch.mode === 'Vocoder'} disabled={state.patch.mode === 'Vocoder'}
className='btn' className='btn'
onClick={() => { onClick={() => {
dispatch(parameterUpdateIndex(0)); dispatch(parameterUpdateTab('Timbre1'));
}}> }}>
Timbre 1 Timbre 1
</button> </button>
@@ -114,7 +114,7 @@ export default function Menu() {
disabled={state.patch.mode !== 'Multiple'} disabled={state.patch.mode !== 'Multiple'}
className='btn' className='btn'
onClick={() => { onClick={() => {
dispatch(parameterUpdateIndex(1)); dispatch(parameterUpdateTab('Timbre2'));
}}> }}>
Timbre 2 Timbre 2
</button> </button>
@@ -122,21 +122,21 @@ export default function Menu() {
disabled={state.patch.mode !== 'Vocoder'} disabled={state.patch.mode !== 'Vocoder'}
className='btn' className='btn'
onClick={() => { onClick={() => {
dispatch(parameterUpdateIndex(2)); dispatch(parameterUpdateTab('Vocoder'));
}}> }}>
Vocoder Vocoder
</button> </button>
<button <button
className='btn' className='btn'
onClick={() => { onClick={() => {
dispatch(parameterUpdateIndex(3)); dispatch(parameterUpdateTab('Effects'));
}}> }}>
Effects Effects
</button> </button>
<button <button
className='btn' className='btn'
onClick={() => { onClick={() => {
dispatch(parameterUpdateIndex(4)); dispatch(parameterUpdateTab('Arpeggio'));
}}> }}>
Arpeggio Arpeggio
</button> </button>
-40
View File
@@ -1,40 +0,0 @@
import React from 'react';
import Timbre from './Timbre';
import Vocoder from './Vocoder';
import Effects from './Effects';
import Arpeggio from './Arpeggio';
import { Tab, Tabs, TabList, TabPanel } from 'react-tabs';
import { useSelector } from 'react-redux';
export default function TimbreSwitcher() {
const index = useSelector((state) => state.parameters.tabIndex);
return (
<div>
<Tabs selectedIndex={index} onSelect={() => {}}>
<TabList>
<Tab>Timbre 1</Tab>
<Tab>Timbre 2</Tab>
<Tab>Vocoder</Tab>
<Tab>Effects</Tab>
<Tab>Arpeggio</Tab>
</TabList>
<TabPanel>
<Timbre id='timbre1' />
</TabPanel>
<TabPanel>
<Timbre id='timbre2' />
</TabPanel>
<TabPanel>
<Vocoder id='vocoder' />
</TabPanel>
<TabPanel>
<Effects id='effects' />
</TabPanel>
<TabPanel>
<Arpeggio id='arpeggio' />
</TabPanel>
</Tabs>
</div>
);
}