@@ -12,14 +12,14 @@ import {
1212 Table ,
1313 Typography ,
1414} from '@mui/joy' ;
15+ import { ReactElement , useState } from 'react' ;
1516import {
1617 FileTextIcon ,
1718 PlayIcon ,
1819 PlusCircleIcon ,
1920 Trash2Icon ,
2021} from 'lucide-react' ;
2122import * as chatAPI from 'renderer/lib/transformerlab-api-sdk' ;
22- import { useState } from 'react' ;
2323import useSWR from 'swr' ;
2424import { useAnalytics } from 'renderer/components/Shared/analytics/AnalyticsContext' ;
2525import GenerateModal from './GenerateModal' ;
@@ -29,12 +29,30 @@ const fetcher = (url) => fetch(url).then((res) => res.json());
2929function listGenerations ( generationString ) {
3030 let result = [ ] ;
3131 if ( generationString ) {
32- result = JSON . parse ( generationString ) ;
32+ try {
33+ result =
34+ typeof generationString === 'string'
35+ ? JSON . parse ( generationString )
36+ : generationString ;
37+ } catch ( error ) {
38+ // eslint-disable-next-line no-console
39+ console . error (
40+ 'Error parsing generation string:' ,
41+ error ,
42+ generationString ,
43+ ) ;
44+ result = [ ] ;
45+ }
3346 }
3447 return result ;
3548}
3649
3750function formatTemplateConfig ( scriptParameters ) : ReactElement {
51+ // Safety check for valid input
52+ if ( ! scriptParameters || typeof scriptParameters !== 'object' ) {
53+ return < span > No configuration available</ span > ;
54+ }
55+
3856 const mainTask = scriptParameters ?. generation_type ;
3957 let docsFileNameActual = '' ;
4058
@@ -192,7 +210,23 @@ export default function GenerateTasksTable({
192210 { generations . name }
193211 </ td >
194212 < td style = { { overflow : 'hidden' } } >
195- { formatTemplateConfig ( JSON . parse ( generations . config ) ) }
213+ { ( ( ) => {
214+ try {
215+ const config =
216+ typeof generations . config === 'string'
217+ ? JSON . parse ( generations . config )
218+ : generations . config ;
219+ return formatTemplateConfig ( config ) ;
220+ } catch ( parseError ) {
221+ // eslint-disable-next-line no-console
222+ console . error (
223+ 'Error parsing config:' ,
224+ parseError ,
225+ generations . config ,
226+ ) ;
227+ return 'Invalid configuration' ;
228+ }
229+ } ) ( ) }
196230 </ td >
197231 < td > { generations . plugin } </ td >
198232 < td style = { { textAlign : 'right' } } >
0 commit comments