visuddhinanda пре 2 година
родитељ
комит
7afd87df47
1 измењених фајлова са 41 додато и 0 уклоњено
  1. 41 0
      dashboard/src/reducers/term-order.ts

+ 41 - 0
dashboard/src/reducers/term-order.ts

@@ -0,0 +1,41 @@
+/**
+ * 查字典,添加术语命令
+ */
+import { createSlice, PayloadAction } from "@reduxjs/toolkit";
+
+import type { RootState } from "../store";
+
+export interface ITermItem {
+  word: string;
+  channelId: string;
+  first: string;
+}
+interface IState {
+  order: ITermItem[];
+}
+
+const initialState: IState = { order: [] };
+
+export const slice = createSlice({
+  name: "term-order",
+  initialState,
+  reducers: {
+    push: (state, action: PayloadAction<ITermItem>) => {
+      const index = state.order.findIndex(
+        (value) =>
+          value.word === action.payload.word &&
+          value.channelId === action.payload.channelId
+      );
+      if (index === -1) {
+        state.order.push(action.payload);
+      }
+    },
+  },
+});
+
+export const { push } = slice.actions;
+
+export const order = (state: RootState): ITermItem[] | undefined =>
+  state.termOrder.order;
+
+export default slice.reducer;