Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x | import { createAsyncThunk } from "@reduxjs/toolkit";
import {
QuantizeSnapSetting,
actions as reducerActions,
SubpatternEditorMode,
TrackerViewType,
} from "./trackerState";
import API from "renderer/lib/api";
const initViewFromSaved = createAsyncThunk(
"tracker/initView",
async (_, thunkApi) => {
const view = await API.settings.getString("trackerView", "roll");
Iif (view === "tracker" || view === "roll") {
thunkApi.dispatch(actions.setView(view));
}
const subpatternEditorMode = await API.settings.getString(
"subpatternEditorMode",
"script",
);
Iif (
subpatternEditorMode === "script" ||
subpatternEditorMode === "tracker"
) {
thunkApi.dispatch(actions.setSubpatternEditorMode(subpatternEditorMode));
}
const metronomeEnabled = await API.settings.get("trackerMetronomeEnabled");
Iif (typeof metronomeEnabled === "boolean") {
thunkApi.dispatch(actions.setMetronomeEnabled(metronomeEnabled));
}
const quantizeSnap = await API.settings.get("trackerQuantizeSnap");
Iif (
quantizeSnap === "none" ||
quantizeSnap === "halfbeat" ||
quantizeSnap === "beat"
) {
thunkApi.dispatch(actions.setQuantizeSnap(quantizeSnap));
}
},
);
const setViewAndSave = createAsyncThunk<void, TrackerViewType>(
"tracker/setViewAndSave",
async (payload, thunkApi) => {
thunkApi.dispatch(actions.setView(payload));
await API.settings.set("trackerView", payload);
},
);
const setSubpatternEditorModeAndSave = createAsyncThunk<
void,
SubpatternEditorMode
>("tracker/setSubpatternEditorModeAndSave", async (payload, thunkApi) => {
thunkApi.dispatch(actions.setSubpatternEditorMode(payload));
await API.settings.set("subpatternEditorMode", payload);
});
const setMetronomeEnabledAndSave = createAsyncThunk<void, boolean>(
"tracker/setMetronomeEnabledAndSave",
async (payload, thunkApi) => {
thunkApi.dispatch(actions.setMetronomeEnabled(payload));
await API.settings.set("trackerMetronomeEnabled", payload);
},
);
const setQuantizeSnapAndSave = createAsyncThunk<void, QuantizeSnapSetting>(
"tracker/setQuantizeSnapAndSave",
async (payload, thunkApi) => {
thunkApi.dispatch(actions.setQuantizeSnap(payload));
await API.settings.set("trackerQuantizeSnap", payload);
},
);
const actions = {
...reducerActions,
initViewFromSaved,
setViewAndSave,
setSubpatternEditorModeAndSave,
setMetronomeEnabledAndSave,
setQuantizeSnapAndSave,
};
export default actions;
|