파일 에러 수정

This commit is contained in:
dohyeons 2025-10-27 13:24:25 +09:00
parent 4bbe29e18e
commit cc4dd5ffdc
1 changed files with 31 additions and 28 deletions

View File

@ -56,6 +56,7 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
// 자동 새로고침 (30초마다) // 자동 새로고침 (30초마다)
const interval = setInterval(loadData, 30000); const interval = setInterval(loadData, 30000);
return () => clearInterval(interval); return () => clearInterval(interval);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [element]); }, [element]);
const loadData = async () => { const loadData = async () => {
@ -101,7 +102,7 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
body: JSON.stringify({ body: JSON.stringify({
query: groupByDS.query, query: groupByDS.query,
connectionType: groupByDS.connectionType || "current", connectionType: groupByDS.connectionType || "current",
connectionId: groupByDS.connectionId, connectionId: (groupByDS as any).connectionId,
}), }),
}); });
@ -116,7 +117,7 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
const labelColumn = columns[0]; const labelColumn = columns[0];
const valueColumn = columns[1]; const valueColumn = columns[1];
const cards = rows.map((row) => ({ const cards = rows.map((row: any) => ({
label: String(row[labelColumn] || ""), label: String(row[labelColumn] || ""),
value: parseFloat(row[valueColumn]) || 0, value: parseFloat(row[valueColumn]) || 0,
})); }));
@ -137,12 +138,12 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
Authorization: `Bearer ${token}`, Authorization: `Bearer ${token}`,
}, },
body: JSON.stringify({ body: JSON.stringify({
method: groupByDS.method || "GET", method: (groupByDS as any).method || "GET",
url: groupByDS.endpoint, url: groupByDS.endpoint,
headers: groupByDS.headers || {}, headers: (groupByDS as any).headers || {},
body: groupByDS.body, body: (groupByDS as any).body,
authType: groupByDS.authType, authType: (groupByDS as any).authType,
authConfig: groupByDS.authConfig, authConfig: (groupByDS as any).authConfig,
}), }),
}); });
@ -169,7 +170,7 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
const labelColumn = columns[0]; const labelColumn = columns[0];
const valueColumn = columns[1]; const valueColumn = columns[1];
const cards = rows.map((row) => ({ const cards = rows.map((row: any) => ({
label: String(row[labelColumn] || ""), label: String(row[labelColumn] || ""),
value: parseFloat(row[valueColumn]) || 0, value: parseFloat(row[valueColumn]) || 0,
})); }));
@ -201,7 +202,7 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
body: JSON.stringify({ body: JSON.stringify({
query: element.dataSource.query, query: element.dataSource.query,
connectionType: element.dataSource.connectionType || "current", connectionType: element.dataSource.connectionType || "current",
connectionId: element.dataSource.connectionId, connectionId: (element.dataSource as any).connectionId,
}), }),
}); });
@ -212,13 +213,14 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
if (result.success && result.data?.rows) { if (result.success && result.data?.rows) {
const rows = result.data.rows; const rows = result.data.rows;
const calculatedMetrics = element.customMetricConfig.metrics.map((metric) => { const calculatedMetrics =
const value = calculateMetric(rows, metric.field, metric.aggregation); element.customMetricConfig?.metrics.map((metric) => {
return { const value = calculateMetric(rows, metric.field, metric.aggregation);
...metric, return {
calculatedValue: value, ...metric,
}; calculatedValue: value,
}); };
}) || [];
setMetrics(calculatedMetrics); setMetrics(calculatedMetrics);
} else { } else {
@ -240,12 +242,12 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
Authorization: `Bearer ${token}`, Authorization: `Bearer ${token}`,
}, },
body: JSON.stringify({ body: JSON.stringify({
method: element.dataSource.method || "GET", method: (element.dataSource as any).method || "GET",
url: element.dataSource.endpoint, url: element.dataSource.endpoint,
headers: element.dataSource.headers || {}, headers: (element.dataSource as any).headers || {},
body: element.dataSource.body, body: (element.dataSource as any).body,
authType: element.dataSource.authType, authType: (element.dataSource as any).authType,
authConfig: element.dataSource.authConfig, authConfig: (element.dataSource as any).authConfig,
}), }),
}); });
@ -278,13 +280,14 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
rows = [result.data]; rows = [result.data];
} }
const calculatedMetrics = element.customMetricConfig.metrics.map((metric) => { const calculatedMetrics =
const value = calculateMetric(rows, metric.field, metric.aggregation); element.customMetricConfig?.metrics.map((metric) => {
return { const value = calculateMetric(rows, metric.field, metric.aggregation);
...metric, return {
calculatedValue: value, ...metric,
}; calculatedValue: value,
}); };
}) || [];
setMetrics(calculatedMetrics); setMetrics(calculatedMetrics);
} else { } else {