@@ -29,7 +29,7 @@ interface DemoDataColumns {
2929 bar : string ;
3030}
3131
32- export default function BiasSettings ( {
32+ export default function SyntheticDataSettings ( {
3333 onRun,
3434 onDataLoad,
3535 isLoading,
@@ -51,7 +51,7 @@ export default function BiasSettings({
5151 sdgMethod : 'gc' ,
5252 } ,
5353 } ) ;
54-
54+ const [ columnsCountError , setColumnsCountError ] = useState ( false ) ;
5555 const [ outputSamples , setOutputSamples ] = useState ( [ 1000 ] ) ;
5656 const [ dataKey , setDataKey ] = useState < string > ( new Date ( ) . toISOString ( ) ) ;
5757 const [ data , setData ] = useState < {
@@ -63,13 +63,20 @@ export default function BiasSettings({
6363 const onFileLoad = (
6464 data : Record < string , string > [ ] ,
6565 stringified : string ,
66- fileName : string
66+ fileName : string ,
67+ isDemo ?: boolean ,
68+ columnsCount ?: number
6769 ) => {
6870 if ( stringified . length === 0 ) {
71+ setColumnsCountError ( false ) ;
6972 form . reset ( ) ;
7073 } else {
7174 form . setValue ( 'file' , stringified ) ;
75+ if ( ! isDemo && columnsCount && columnsCount > 8 ) {
76+ setColumnsCountError ( true ) ;
77+ }
7278 }
79+
7380 setData ( { data, stringified, fileName } ) ;
7481 setDataKey ( new Date ( ) . toISOString ( ) ) ;
7582 } ;
@@ -89,6 +96,7 @@ export default function BiasSettings({
8996 ugpa : ( row as DemoDataColumns ) [ 'ugpa' ] ,
9097 bar : ( row as DemoDataColumns ) [ 'bar' ] ,
9198 } ) ) ;
99+
92100 onDataLoad (
93101 demoData as Record < string , string > [ ] ,
94102 Papa . unparse ( demoData ) ,
@@ -125,6 +133,15 @@ export default function BiasSettings({
125133 ) }
126134 />
127135 </ div >
136+ < div className = "flex flex-row gap-2 justify-start" >
137+ { columnsCountError && (
138+ < div className = "text-red-500" >
139+ { t (
140+ 'syntheticData.form.errors.columnsCountError'
141+ ) }
142+ </ div >
143+ ) }
144+ </ div >
128145
129146 < div className = "flex flex-col gap-3" >
130147 < label className = "text-sm font-medium" >
@@ -211,7 +228,7 @@ export default function BiasSettings({
211228 type = "submit"
212229 size = "sm"
213230 className = "gap-1.5"
214- disabled = { isLoading }
231+ disabled = { isLoading || columnsCountError }
215232 >
216233 { ! isLoading
217234 ? t ( 'syntheticData.form.actions.runGeneration' )
0 commit comments