diff --git a/src/components/Contribute/Knowledge/KnowledgeSeedExamples/KnowledgeSeedExamples.tsx b/src/components/Contribute/Knowledge/KnowledgeSeedExamples/KnowledgeSeedExamples.tsx index 889b998d..59555fbe 100644 --- a/src/components/Contribute/Knowledge/KnowledgeSeedExamples/KnowledgeSeedExamples.tsx +++ b/src/components/Contribute/Knowledge/KnowledgeSeedExamples/KnowledgeSeedExamples.tsx @@ -68,7 +68,7 @@ const KnowledgeSeedExamples: React.FC = ({ isGithubMode, seedExamples, on } }; - if (fileSelectIndex > 0 && !knowledgeFiles.length) { + if (fileSelectIndex >= 0 && !knowledgeFiles.length) { fetchKnowledgeFiles(); } }, [fileSelectIndex, isGithubMode, knowledgeFiles.length]); @@ -78,7 +78,7 @@ const KnowledgeSeedExamples: React.FC = ({ isGithubMode, seedExamples, on }; const handleSelectContextInput = (contextValue: string) => { - handleKnowledgeSeedExamplesContextInputChange(seedExamples, fileSelectIndex, contextValue, true); + onUpdateSeedExamples(handleKnowledgeSeedExamplesContextInputChange(seedExamples, fileSelectIndex, contextValue, true)); }; const handleContextBlur = (seedExampleIndex: number): void => { diff --git a/src/components/Contribute/Knowledge/KnowledgeWizard/KnowledgeWizard.tsx b/src/components/Contribute/Knowledge/KnowledgeWizard/KnowledgeWizard.tsx index 45330b09..60d72bab 100644 --- a/src/components/Contribute/Knowledge/KnowledgeWizard/KnowledgeWizard.tsx +++ b/src/components/Contribute/Knowledge/KnowledgeWizard/KnowledgeWizard.tsx @@ -67,37 +67,32 @@ const STEP_IDS = ['author-info', 'knowledge-info', 'file-path-info', 'document-i export const KnowledgeWizard: React.FunctionComponent = ({ knowledgeEditFormData, isGithubMode }) => { const { data: session } = useSession(); - const [knowledgeFormData, setKnowledgeFormData] = React.useState(knowledgeEditFormData?.formData || DefaultKnowledgeFormData); + const [knowledgeFormData, setKnowledgeFormData] = React.useState( + knowledgeEditFormData?.formData + ? { + ...knowledgeEditFormData.formData, + seedExamples: knowledgeEditFormData.formData.seedExamples.map((example) => ({ + ...example, + immutable: example.immutable !== undefined ? example.immutable : true, // Ensure immutable is set + isContextValid: example.isContextValid || ValidatedOptions.default, + validationError: example.validationError || '', + questionAndAnswers: example.questionAndAnswers.map((qa) => ({ + ...qa, + immutable: qa.immutable !== undefined ? qa.immutable : true, // Ensure immutable is set + isQuestionValid: qa.isQuestionValid || ValidatedOptions.default, + questionValidationError: qa.questionValidationError || '', + isAnswerValid: qa.isAnswerValid || ValidatedOptions.default, + answerValidationError: qa.answerValidationError || '' + })) + })) + } + : DefaultKnowledgeFormData + ); const [actionGroupAlertContent, setActionGroupAlertContent] = useState(); const [isYamlModalOpen, setIsYamlModalOpen] = useState(false); // **New State Added** const router = useRouter(); - useEffect(() => { - // Set all elements from the knowledgeFormData to the state - if (knowledgeEditFormData) { - setKnowledgeFormData({ - ...knowledgeEditFormData.formData, - seedExamples: knowledgeEditFormData.formData.seedExamples.map((example) => ({ - ...example, - immutable: example.immutable !== undefined ? example.immutable : true, // Ensure immutable is set - isContextValid: example.isContextValid || ValidatedOptions.default, - validationError: example.validationError || '', - questionAndAnswers: example.questionAndAnswers.map((qa) => ({ - ...qa, - immutable: qa.immutable !== undefined ? qa.immutable : true, // Ensure immutable is set - isQuestionValid: qa.isQuestionValid || ValidatedOptions.default, - questionValidationError: qa.questionValidationError || '', - isAnswerValid: qa.isAnswerValid || ValidatedOptions.default, - answerValidationError: qa.answerValidationError || '' - })) - })) - }); - - devLog('Seed Examples Set from Edit Form Data:', knowledgeEditFormData.formData.seedExamples); - } - }, [knowledgeEditFormData]); - // Function to append document information (Updated for single repositoryUrl and commitSha) // Within src/components/Contribute/Native/index.tsx const addDocumentInfoHandler = React.useCallback( diff --git a/src/components/Contribute/Skill/SkillWizard/SkillWizard.tsx b/src/components/Contribute/Skill/SkillWizard/SkillWizard.tsx index 9da39be0..81a0f248 100644 --- a/src/components/Contribute/Skill/SkillWizard/SkillWizard.tsx +++ b/src/components/Contribute/Skill/SkillWizard/SkillWizard.tsx @@ -57,36 +57,32 @@ const STEP_IDS = ['author-info', 'skill-info', 'file-path-info', 'document-info' export const SkillWizard: React.FunctionComponent = ({ skillEditFormData, isGithubMode }) => { const { data: session } = useSession(); - const [skillFormData, setSkillFormData] = React.useState(skillEditFormData?.formData || DefaultSkillFormData); + const [skillFormData, setSkillFormData] = React.useState( + skillEditFormData?.formData + ? { + ...skillEditFormData.formData, + seedExamples: skillEditFormData.formData.seedExamples.map((example) => ({ + ...example, + immutable: example.immutable !== undefined ? example.immutable : true, // Ensure immutable is set + isContextValid: example.isContextValid || ValidatedOptions.default, + validationError: example.validationError || '', + questionAndAnswer: { + ...example.questionAndAnswer, + immutable: example.questionAndAnswer.immutable !== undefined ? example.questionAndAnswer.immutable : true, // Ensure immutable is set + isQuestionValid: example.questionAndAnswer.isQuestionValid || ValidatedOptions.default, + questionValidationError: example.questionAndAnswer.questionValidationError || '', + isAnswerValid: example.questionAndAnswer.isAnswerValid || ValidatedOptions.default, + answerValidationError: example.questionAndAnswer.answerValidationError || '' + } + })) + } + : DefaultSkillFormData + ); const [actionGroupAlertContent, setActionGroupAlertContent] = useState(); const [isYamlModalOpen, setIsYamlModalOpen] = useState(false); const router = useRouter(); - useEffect(() => { - if (skillEditFormData) { - setSkillFormData({ - ...skillEditFormData.formData, - seedExamples: skillEditFormData.formData.seedExamples.map((example) => ({ - ...example, - immutable: example.immutable !== undefined ? example.immutable : true, // Ensure immutable is set - isContextValid: example.isContextValid || ValidatedOptions.default, - validationError: example.validationError || '', - questionAndAnswer: { - ...example.questionAndAnswer, - immutable: example.questionAndAnswer.immutable !== undefined ? example.questionAndAnswer.immutable : true, // Ensure immutable is set - isQuestionValid: example.questionAndAnswer.isQuestionValid || ValidatedOptions.default, - questionValidationError: example.questionAndAnswer.questionValidationError || '', - isAnswerValid: example.questionAndAnswer.isAnswerValid || ValidatedOptions.default, - answerValidationError: example.questionAndAnswer.answerValidationError || '' - } - })) - }); - - devLog('Seed Examples Set from Edit Form Data:', skillEditFormData.formData.seedExamples); - } - }, [skillEditFormData]); - const setFilePath = React.useCallback((filePath: string) => setSkillFormData((prev) => ({ ...prev, filePath })), []); const onCloseActionGroupAlert = () => { diff --git a/src/components/Contribute/Utils/seedExampleUtils.ts b/src/components/Contribute/Utils/seedExampleUtils.ts index 14e9b333..7e6e7006 100644 --- a/src/components/Contribute/Utils/seedExampleUtils.ts +++ b/src/components/Contribute/Utils/seedExampleUtils.ts @@ -130,7 +130,7 @@ export const handleKnowledgeSeedExamplesContextInputChange = ( contextValue: string, validate = false ): KnowledgeSeedExample[] => { - const { msg, status } = validateContext(seedExamples[seedExampleIndex].context); + const { msg, status } = validateContext(contextValue); return seedExamples.map((seedExample: KnowledgeSeedExample, index: number) => index === seedExampleIndex ? {