import InputField from "@/components/form/InputField"; import TexteAreaInput from "@/components/form/TexteAreaInput"; import React, {ChangeEvent, Dispatch, SetStateAction, useContext, useEffect} from "react"; import {faGuilded} from "@fortawesome/free-brands-svg-icons"; import {AlertContext} from "@/context/AlertContext"; import System from "@/lib/models/System"; import {SessionContext} from "@/context/SessionContext"; import {BookContext} from "@/context/BookContext"; import {LangContext, LangContextProps} from "@/context/LangContext"; import {useTranslations} from "next-intl"; interface GhostWriterSettingsProps { advancedPrompt: string; setAdvancedPrompt: Dispatch>; } export default function GhostWriterSettings( { advancedPrompt, setAdvancedPrompt }: GhostWriterSettingsProps) { const {errorMessage} = useContext(AlertContext); const {session} = useContext(SessionContext); const t = useTranslations(); const {lang} = useContext(LangContext) const {book} = useContext(BookContext); useEffect((): void => { getAdvancedSettings().catch(); }, []); async function getAdvancedSettings(): Promise { try { const setting: string = await System.authGetQueryToServer(`quillsense/ghostwriter/advanced-settings`, session.accessToken, lang, { bookId: book?.bookId }); if (setting) { setAdvancedPrompt(setting); } } catch (e: unknown) { if (e instanceof Error) { errorMessage(e.message); } else { errorMessage(t('ghostwriter.settings.unknownError')); } } } return (
): void => setAdvancedPrompt(e.target.value)} placeholder={`Information complémentaire pour la génération...`} maxLength={600}/>} fieldName={`Prompt additionnel`} icon={faGuilded}/>
); }