Skip to content

Commit 7f349d3

Browse files
committed
show error when uploaded contains more then 8 columns
1 parent 15741e2 commit 7f349d3

File tree

4 files changed

+31
-8
lines changed

4 files changed

+31
-8
lines changed

src/components/CSVReader.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ export interface csvReader {
1111
data: Record<string, string>[],
1212
stringified: string,
1313
fileName: string,
14-
demo?: boolean
14+
demo?: boolean,
15+
columnsCount?: number
1516
) => void;
1617
}
1718

@@ -30,10 +31,13 @@ export default function CSVReader({ onChange }: csvReader) {
3031
dynamicTyping: true,
3132

3233
complete: function (results) {
34+
const columns = (results?.data as unknown as [][])[0];
3335
onChange(
3436
results.data as Record<string, string>[],
3537
Papa.unparse(results.data),
36-
file.name
38+
file.name,
39+
false,
40+
Object.keys(columns).length
3741
);
3842
},
3943
error: function (error) {

src/components/SyntheticDataSettings.tsx

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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')

src/locales/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@
6767
"form": {
6868
"errors": {
6969
"csvRequired": "Please upload a csv file.",
70-
"analysisError": "Error while analysing"
70+
"analysisError": "Error while analysing",
71+
"columnsCountError": "File may contain a maximum of 8 columns."
7172
},
7273
"fieldset": {
7374
"sourceDataset": "Source dataset",

src/locales/nl.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@
6767
"form": {
6868
"errors": {
6969
"csvRequired": "Upload een csv-bestand.",
70-
"analysisError": "Fout tijdens analyse"
70+
"analysisError": "Fout tijdens analyse",
71+
"columnsCountError": "File mag maximaal 8 kolommen bevatten."
7172
},
7273
"fieldset": {
7374
"sourceDataset": "Brondataset",

0 commit comments

Comments
 (0)