From f759041ed9ed0a955e7cfb34a65511b009923374 Mon Sep 17 00:00:00 2001 From: Nishant | Js <69218488+NishantCoder108@users.noreply.github.com> Date: Sun, 3 Mar 2024 17:56:33 +0530 Subject: [PATCH] Open ai slice implemented --- src/app/store.ts | 2 ++ src/components/CredentilsFormForAi.tsx | 12 +++++++++++- src/components/SearchByAi.tsx | 2 +- src/features/aiCredentialSlice.ts | 18 ++++++++++++++++++ 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/features/aiCredentialSlice.ts diff --git a/src/app/store.ts b/src/app/store.ts index e1f6f4e..1a0714d 100644 --- a/src/app/store.ts +++ b/src/app/store.ts @@ -1,11 +1,13 @@ import { configureStore } from "@reduxjs/toolkit"; import authReducer from "../features/authSlice"; import bookReducer from "../features/bookSlice"; +import aiCredentialReducer from "../features/aiCredentialSlice"; export const store = configureStore({ reducer: { auth: authReducer, books: bookReducer, + aiCredential: aiCredentialReducer, }, devTools: process.env.NODE_ENV !== "production", }); diff --git a/src/components/CredentilsFormForAi.tsx b/src/components/CredentilsFormForAi.tsx index 10bbc88..032e336 100644 --- a/src/components/CredentilsFormForAi.tsx +++ b/src/components/CredentilsFormForAi.tsx @@ -1,18 +1,28 @@ import { Button, Input } from "@nextui-org/react"; import { useForm } from "react-hook-form"; +import { useAppDispatch } from "../app/hooks"; +import { addAiCredential } from "../features/aiCredentialSlice"; interface ICredentialsForAi { openAiKey: string; } -const CredentilsFormForAi = () => { +interface IProps { + onClose: () => void; +} +const CredentilsFormForAi = ({ onClose }: IProps) => { const { register, handleSubmit, formState: { errors }, } = useForm(); + const dispatch = useAppDispatch(); + const handleFormSubmit = handleSubmit((data) => { console.log("Credential Form Data", data); + const trimData = data.openAiKey.trim(); + dispatch(addAiCredential(trimData)); + onClose(); }); console.log(errors); diff --git a/src/components/SearchByAi.tsx b/src/components/SearchByAi.tsx index 494beb1..f26d55e 100644 --- a/src/components/SearchByAi.tsx +++ b/src/components/SearchByAi.tsx @@ -13,7 +13,7 @@ const SearchByAi = () => { return (
} + modalBody={} title={"Integrate Your App With Ai"} isOpen={isOpen} onClose={onClose} diff --git a/src/features/aiCredentialSlice.ts b/src/features/aiCredentialSlice.ts new file mode 100644 index 0000000..4bf6400 --- /dev/null +++ b/src/features/aiCredentialSlice.ts @@ -0,0 +1,18 @@ +import { createSlice } from "@reduxjs/toolkit"; + +const openAiKey: string | null = null; + +export const aiCredentialSlice = createSlice({ + name: "aiCredential", + initialState: openAiKey, + reducers: { + addAiCredential: (_, action) => { + return action.payload; + }, + }, +}); + +// Action creators are generated for each case reducer function +export const { addAiCredential } = aiCredentialSlice.actions; + +export default aiCredentialSlice.reducer;