about summary refs log tree commit diff
path: root/website/habitgarden/src/store.ts
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2020-03-30T19·28+0100
committerWilliam Carroll <wpcarro@gmail.com>2020-03-30T19·28+0100
commitaf969a764141de5929086ffc09351b1bae3f2ed0 (patch)
tree53b758dab6dacfcedd332f7ecf3db69efa88fb22 /website/habitgarden/src/store.ts
parent8d36c6d00fc2abba9ac04e9e2d4cc620e375d770 (diff)
Prototype my digital habits journal
Trying to obviate my Google Sheets spreadsheet in favor of a more focused web
app.
Diffstat (limited to 'website/habitgarden/src/store.ts')
-rw-r--r--website/habitgarden/src/store.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/website/habitgarden/src/store.ts b/website/habitgarden/src/store.ts
new file mode 100644
index 000000000000..03e980a491cc
--- /dev/null
+++ b/website/habitgarden/src/store.ts
@@ -0,0 +1,26 @@
+import { createSlice, configureStore, PayloadAction } from "@reduxjs/toolkit";
+import { useSelector, TypedUseSelectorHook } from "react-redux";
+
+export interface State {
+  isLoading: boolean;
+}
+
+const initialState: State = {
+  isLoading: true,
+};
+
+export const { actions, reducer } = createSlice({
+  name: "application",
+  initialState,
+  reducers: {
+    toggleIsLoading: state => ({ ...state, isLoading: !state.isLoading }),
+  }
+});
+
+/**
+ * Defining and consuming this allows us to avoid annotating State in all of our
+ * selectors.
+ */
+export const useTypedSelector: TypedUseSelectorHook<State> = useSelector;
+
+export default configureStore({ reducer });