Skip to content

Commit 9743f95

Browse files
committed
feat: add spliter function, now group and subject id in two separate columns
1 parent b61559c commit 9743f95

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

apps/web/src/hooks/useInstrumentVisualization.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,15 @@ export function useInstrumentVisualization({ params }: UseInstrumentVisualizatio
3636
const [minDate, setMinDate] = useState<Date | null>(null);
3737
const [instrumentId, setInstrumentId] = useState<null | string>(null);
3838

39+
function splitFirstDollar(str: string) {
40+
const match = /^(.*?)\$(.*)$/.exec(str);
41+
if (!match) {
42+
return [str, str];
43+
}
44+
const [, before, after] = match;
45+
return [before, after];
46+
}
47+
3948
const instrument = useInstrument(instrumentId) as AnyUnilingualScalarInstrument;
4049

4150
const instrumentInfoQuery = useInstrumentInfoQuery({
@@ -70,7 +79,10 @@ export function useInstrumentVisualization({ params }: UseInstrumentVisualizatio
7079
const makeWideRows = () => {
7180
const columnNames = Object.keys(exportRecords[0]!);
7281
return exportRecords.map((item) => {
73-
const obj: { [key: string]: any } = { subjectId: params.subjectId };
82+
const obj: { [key: string]: any } = {
83+
GroupID: splitFirstDollar(params.subjectId)[0],
84+
subjectId: splitFirstDollar(params.subjectId)[1]
85+
};
7486
for (const key of columnNames) {
7587
const val = item[key];
7688
if (key === '__date__') {
@@ -99,8 +111,10 @@ export function useInstrumentVisualization({ params }: UseInstrumentVisualizatio
99111
objVal.forEach((arrayItem) => {
100112
Object.entries(arrayItem as object).forEach(([arrKey, arrItem]) => {
101113
longRecord.push({
114+
GroupID: splitFirstDollar(params.subjectId)[0],
115+
// eslint-disable-next-line perfectionist/sort-objects
102116
Date: toBasicISOString(date),
103-
SubjectID: params.subjectId,
117+
SubjectID: splitFirstDollar(params.subjectId)[1],
104118
Variable: `${objKey}-${arrKey}`,
105119
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, perfectionist/sort-objects
106120
Value: arrItem
@@ -109,8 +123,10 @@ export function useInstrumentVisualization({ params }: UseInstrumentVisualizatio
109123
});
110124
} else {
111125
longRecord.push({
126+
GroupID: splitFirstDollar(params.subjectId)[0],
127+
// eslint-disable-next-line perfectionist/sort-objects
112128
Date: toBasicISOString(date),
113-
SubjectID: params.subjectId,
129+
SubjectID: splitFirstDollar(params.subjectId)[1],
114130
Value: objVal,
115131
Variable: objKey
116132
});

0 commit comments

Comments
 (0)