Take a buffer ID in getBuffer

This commit is contained in:
Simon Ser 2021-01-21 22:02:53 +01:00
parent 50ea6e121e
commit dd35f1df95

View File

@ -99,16 +99,24 @@ function updateState(state, updater) {
return { ...state, ...updated }; return { ...state, ...updated };
} }
function getBuffer(state, network, name) { function getBuffer(state, id) {
if (!network) { switch (typeof id) {
network = state.activeNetwork; case "number":
} return state.buffers.get(id);
for (var buf of state.buffers.values()) { case "object":
if (buf.network === network && buf.name === name) { var network = id.network, name = id.name;
return buf; if (!network) {
network = state.activeNetwork;
} }
for (var buf of state.buffers.values()) {
if (buf.network === network && buf.name === name) {
return buf;
}
}
return null;
default:
throw new Error("Invalid buffer ID type: " + (typeof id));
} }
return null;
} }
export default class App extends Component { export default class App extends Component {
@ -217,17 +225,7 @@ export default class App extends Component {
setBufferState(id, updater, callback) { setBufferState(id, updater, callback) {
this.setState((state) => { this.setState((state) => {
var buf; var buf = getBuffer(state, id);
switch (typeof id) {
case "object":
buf = getBuffer(state, id.network, id.name);
break;
case "number":
buf = state.buffers.get(id);
break;
default:
throw new Error("Invalid buffer ID type: " + (typeof id));
}
if (!buf) { if (!buf) {
return; return;
} }
@ -246,7 +244,7 @@ export default class App extends Component {
createBuffer(netID, name, callback) { createBuffer(netID, name, callback) {
var id = null; var id = null;
this.setState((state) => { this.setState((state) => {
if (getBuffer(state, netID, name)) { if (getBuffer(state, { network: netID, name })) {
return; return;
} }
@ -295,7 +293,7 @@ export default class App extends Component {
}); });
var buf; var buf;
this.setState((state) => { this.setState((state) => {
buf = getBuffer(state, null, name); buf = getBuffer(state, { name });
if (!buf) { if (!buf) {
return; return;
} }