diff options
Diffstat (limited to 'extension/react-app/src/redux/slices')
| -rw-r--r-- | extension/react-app/src/redux/slices/debugContexSlice.ts | 149 | ||||
| -rw-r--r-- | extension/react-app/src/redux/slices/serverStateReducer.ts | 53 | 
2 files changed, 53 insertions, 149 deletions
diff --git a/extension/react-app/src/redux/slices/debugContexSlice.ts b/extension/react-app/src/redux/slices/debugContexSlice.ts deleted file mode 100644 index 647440d5..00000000 --- a/extension/react-app/src/redux/slices/debugContexSlice.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { createSlice } from "@reduxjs/toolkit"; -import { RangeInFile, SerializedDebugContext } from "../../../../src/client"; -import { RootStore } from "../store"; - -export const debugStateSlice = createSlice({ -  name: "debugState", -  initialState: { -    debugContext: { -      rangesInFiles: [], -      filesystem: {}, -      traceback: undefined, -      description: undefined, -    }, -    rangesMask: [], -  } as RootStore["debugState"], -  reducers: { -    updateValue: ( -      state: RootStore["debugState"], -      action: { -        type: string; -        payload: { key: keyof SerializedDebugContext; value: any }; -      } -    ) => { -      return { -        ...state, -        debugContext: { -          ...state.debugContext, -          [action.payload.key]: action.payload.value, -        }, -      }; -    }, -    addRangeInFile: ( -      state: RootStore["debugState"], -      action: { -        type: string; -        payload: { -          rangeInFile: RangeInFile; -          canUpdateLast: boolean; -        }; -      } -    ) => { -      let rangesInFiles = state.debugContext.rangesInFiles; -      // If identical to existing range, don't add. Ideally you check for overlap of ranges. -      for (let range of rangesInFiles) { -        if ( -          range.filepath === action.payload.rangeInFile.filepath && -          range.range.start.line === -            action.payload.rangeInFile.range.start.line && -          range.range.end.line === action.payload.rangeInFile.range.end.line -        ) { -          return state; -        } -      } - -      if ( -        action.payload.canUpdateLast && -        rangesInFiles.length > 0 && -        rangesInFiles[rangesInFiles.length - 1].filepath === -          action.payload.rangeInFile.filepath -      ) { -        return { -          ...state, -          debugContext: { -            ...state.debugContext, -            rangesInFiles: [ -              ...rangesInFiles.slice(0, rangesInFiles.length - 1), -              action.payload.rangeInFile, -            ], -          }, -        }; -      } else { -        return { -          ...state, -          debugContext: { -            ...state.debugContext, -            rangesInFiles: [ -              ...state.debugContext.rangesInFiles, -              action.payload.rangeInFile, -            ], -          }, -          rangesMask: [...state.rangesMask, true], -        }; -      } -    }, -    deleteRangeInFileAt: ( -      state: RootStore["debugState"], -      action: { -        type: string; -        payload: number; -      } -    ) => { -      return { -        ...state, -        debugContext: { -          ...state.debugContext, -          rangesInFiles: state.debugContext.rangesInFiles.filter( -            (_, index) => index !== action.payload -          ), -        }, -        rangesMask: state.rangesMask.filter( -          (_, index) => index !== action.payload -        ), -      }; -    }, -    toggleSelectionAt: ( -      state: RootStore["debugState"], -      action: { -        type: string; -        payload: number; -      } -    ) => { -      return { -        ...state, -        rangesMask: state.rangesMask.map((_, index) => -          index === action.payload -            ? !state.rangesMask[index] -            : state.rangesMask[index] -        ), -      }; -    }, -    updateFileSystem: ( -      state: RootStore["debugState"], -      action: { -        type: string; -        payload: { [filepath: string]: string }; -      } -    ) => { -      return { -        ...state, -        debugContext: { -          ...state.debugContext, -          filesystem: { -            ...state.debugContext.filesystem, -            ...action.payload, -          }, -        }, -      }; -    }, -  }, -}); - -export const { -  updateValue, -  updateFileSystem, -  addRangeInFile, -  deleteRangeInFileAt, -  toggleSelectionAt, -} = debugStateSlice.actions; -export default debugStateSlice.reducer; diff --git a/extension/react-app/src/redux/slices/serverStateReducer.ts b/extension/react-app/src/redux/slices/serverStateReducer.ts new file mode 100644 index 00000000..4d9dc326 --- /dev/null +++ b/extension/react-app/src/redux/slices/serverStateReducer.ts @@ -0,0 +1,53 @@ +import { createSlice } from "@reduxjs/toolkit"; +import { FullState } from "../../../../schema/FullState"; + +const initialState: FullState = { +  history: { +    timeline: [ +      { +        step: { +          name: "Welcome to Continue", +          hide: false, +          description: `- Highlight code section and ask a question or give instructions +    - Use \`cmd+m\` (Mac) / \`ctrl+m\` (Windows) to open Continue +    - Use \`/help\` to ask questions about how to use Continue`, +          system_message: null, +          chat_context: [], +          manage_own_chat_context: false, +          message: "", +        }, +        depth: 0, +        deleted: false, +        active: false, +      }, +    ], +    current_index: 3, +  } as any, +  user_input_queue: [], +  active: false, +  slash_commands: [], +  adding_highlighted_code: false, +  selected_context_items: [], +}; + +export const serverStateSlice = createSlice({ +  name: "serverState", +  initialState, +  reducers: { +    setServerState: (state, action) => { +      return { +        ...action.payload, +        selected_context_items: action.payload.selected_context_items || [], +        user_input_queue: action.payload.user_input_queue || [], +        slash_commands: action.payload.slash_commands || [], +      }; +    }, +    temporarilySetUserInputQueue: (state, action) => { +      state.user_input_queue = action.payload; +    }, +  }, +}); + +export const { setServerState, temporarilySetUserInputQueue } = +  serverStateSlice.actions; +export default serverStateSlice.reducer;  | 
