Add getLocalPrompt and setLocalPrompt functions to preferenceApi.ts

This commit is contained in:
Alex 2023-12-04 11:23:51 +02:00
parent 453e507b89
commit f8f60c62fe
3 changed files with 24 additions and 1 deletions

View File

@ -66,10 +66,19 @@ export function getLocalRecentDocs(): string | null {
return doc;
}
export function getLocalPrompt(): string | null {
const prompt = localStorage.getItem('DocsGPTPrompt');
return prompt;
}
export function setLocalApiKey(key: string): void {
localStorage.setItem('DocsGPTApiKey', key);
}
export function setLocalPrompt(prompt: string): void {
localStorage.setItem('DocsGPTPrompt', prompt);
}
export function setLocalRecentDocs(doc: Doc): void {
localStorage.setItem('DocsGPTRecentDocs', JSON.stringify(doc));
let namePath = doc.name;

View File

@ -81,6 +81,16 @@ prefListenerMiddleware.startListening({
},
});
prefListenerMiddleware.startListening({
matcher: isAnyOf(setPrompt),
effect: (action, listenerApi) => {
localStorage.setItem(
'DocsGPTPrompt',
JSON.stringify((listenerApi.getState() as RootState).preference.prompt),
);
},
});
export const selectApiKey = (state: RootState) => state.preference.apiKey;
export const selectApiKeyStatus = (state: RootState) =>
!!state.preference.apiKey;

View File

@ -6,6 +6,7 @@ import {
} from './preferences/preferenceSlice';
const key = localStorage.getItem('DocsGPTApiKey');
const prompt = localStorage.getItem('DocsGPTPrompt');
const doc = localStorage.getItem('DocsGPTRecentDocs');
const store = configureStore({
@ -13,7 +14,10 @@ const store = configureStore({
preference: {
apiKey: key ?? '',
selectedDocs: doc !== null ? JSON.parse(doc) : null,
prompt: { name: 'default', id: 'default', type: 'private' },
prompt:
prompt !== null
? JSON.parse(prompt)
: { name: 'default', id: 'default', type: 'private' },
conversations: null,
sourceDocs: [
{