Skip to content

Commit f919029

Browse files
patconclaude
andcommitted
feat: include manual_painted column in CSV download
Adds a 'manual_painted' column (palette index, blank if unpainted) to the exported participants.csv. Also fixes a redundant inner findIndex that was O(n²) — the outer map index is used directly instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent a78007e commit f919029

File tree

1 file changed

+7
-7
lines changed
  • src/components/convo-explorer

1 file changed

+7
-7
lines changed

src/components/convo-explorer/App.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -753,15 +753,15 @@ export const App: React.FC<AppProps> = ({ testAnimation = false, kedroBaseUrl, i
753753
if (!obsColumns || dataset.length === 0) return;
754754

755755
const columnNames = Object.keys(obsColumns);
756-
const header = ['participant_id', ...columnNames];
757-
const rows = dataset.map(([participantId]) => {
756+
const header = ['participant_id', 'manual_painted', ...columnNames];
757+
const rows = dataset.map(([participantId], idx) => {
758+
const painted = pointGroups[idx];
759+
const paintedValue = painted === UNPAINTED_VALUE ? '' : String(painted);
758760
const values = columnNames.map(col => {
759-
const colInfo = obsColumns[col];
760-
const idx = dataset.findIndex(([id]) => id === participantId);
761-
const val = colInfo.values[idx];
761+
const val = obsColumns[col].values[idx];
762762
return val === null || val === undefined ? '' : String(val);
763763
});
764-
return [participantId, ...values];
764+
return [participantId, paintedValue, ...values];
765765
});
766766

767767
const csvContent = [header, ...rows]
@@ -778,7 +778,7 @@ export const App: React.FC<AppProps> = ({ testAnimation = false, kedroBaseUrl, i
778778
link.download = 'participants.csv';
779779
link.click();
780780
URL.revokeObjectURL(url);
781-
}, [dataset, preloadedData?.obsColumns]);
781+
}, [dataset, pointGroups, preloadedData?.obsColumns]);
782782

783783
const handleClearAllColors = React.useCallback(() => {
784784
setPointGroups(Array(dataset.length).fill(UNPAINTED_VALUE));

0 commit comments

Comments
 (0)