Skip to content

Commit 61e5dae

Browse files
author
weinStag
committed
Fix time charts
1 parent 5d84516 commit 61e5dae

File tree

2 files changed

+30
-12
lines changed

2 files changed

+30
-12
lines changed

src/components/ChartVisualization/ChartVisualization.react.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ const ChartVisualization = ({
4141
selectedData,
4242
selectedCells,
4343
data,
44-
order
44+
order,
45+
columns
4546
}) => {
4647
const [chartType, setChartType] = useState('bar');
4748

@@ -64,9 +65,11 @@ const ChartVisualization = ({
6465
let isTimeSeries = false;
6566

6667
// Só considerar time series se temos múltiplas colunas E a primeira coluna é explicitamente data/datetime
67-
if (colEnd > colStart && firstColumnName) {
68-
// Verificar se o nome da coluna sugere data
69-
const isDateColumn = /^(date|time|created|updated|when|at)$/i.test(firstColumnName) ||
68+
if (colEnd > colStart && firstColumnName && columns) {
69+
// Verificar primeiro o tipo da coluna no schema
70+
const firstColumnType = columns[firstColumnName]?.type;
71+
const isDateColumn = firstColumnType === 'Date' ||
72+
/^(date|time|created|updated|when|at)$/i.test(firstColumnName) ||
7073
firstColumnName.toLowerCase().includes('date') ||
7174
firstColumnName.toLowerCase().includes('time');
7275

@@ -83,13 +86,10 @@ const ChartVisualization = ({
8386
}
8487
}
8588

86-
isTimeSeries = dateCount >= totalRows * 0.8; // 80% devem ser datas válidas
89+
isTimeSeries = dateCount >= totalRows * 0.6; // 60% devem ser datas válidas (mais permissivo)
8790
}
8891
}
8992

90-
// Forçar number series se não temos evidências claras de time series
91-
isTimeSeries = false; // TEMPORÁRIO: forçar number series para debug
92-
9393
if (isTimeSeries && colEnd > colStart) {
9494
// Time Series: primeira coluna é data, outras são números
9595
const datasets = [];
@@ -324,7 +324,7 @@ const ChartVisualization = ({
324324
};
325325
}
326326
}
327-
}, [selectedData, selectedCells, data, order]);
327+
}, [selectedData, selectedCells, data, order, columns]);
328328

329329
const renderChart = () => {
330330
if (chartData.type === 'timeSeries') {

src/dashboard/Data/Browser/DataBrowser.react.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,9 @@ export default class DataBrowser extends React.Component {
571571
let validColumns = true;
572572
for (let i = colStart; i <= colEnd; i++) {
573573
const name = this.state.order[i].name;
574-
if (this.props.columns[name].type !== 'Number') {
574+
const columnType = this.props.columns[name].type;
575+
// Permitir Number, Date, String (que pode conter números) para visualização
576+
if (columnType !== 'Number' && columnType !== 'Date' && columnType !== 'String') {
575577
validColumns = false;
576578
break;
577579
}
@@ -587,8 +589,23 @@ export default class DataBrowser extends React.Component {
587589
for (let y = colStart; y <= colEnd; y++) {
588590
if (rowData) {
589591
const value = rowData.attributes[this.state.order[y].name];
590-
if (typeof value === 'number' && !isNaN(value)) {
591-
selectedData.push(rowData.attributes[this.state.order[y].name]);
592+
const columnType = this.props.columns[this.state.order[y].name].type;
593+
594+
// Incluir diferentes tipos de dados para visualização
595+
if (columnType === 'Number' && typeof value === 'number' && !isNaN(value)) {
596+
selectedData.push(value);
597+
} else if (columnType === 'Date' && value instanceof Date) {
598+
selectedData.push(value);
599+
} else if (columnType === 'Date' && typeof value === 'string' && !isNaN(Date.parse(value))) {
600+
selectedData.push(new Date(value));
601+
} else if (columnType === 'String' && typeof value === 'string') {
602+
// Para strings, incluir apenas se puderem ser interpretadas como números
603+
const numValue = parseFloat(value);
604+
if (!isNaN(numValue)) {
605+
selectedData.push(numValue);
606+
} else {
607+
selectedData.push(value); // Incluir strings para labels em time series
608+
}
592609
}
593610
}
594611
newSelection.add(`${x}-${y}`);
@@ -711,6 +728,7 @@ export default class DataBrowser extends React.Component {
711728
selectedCells={this.state.selectedCells}
712729
data={this.props.data}
713730
order={this.state.order}
731+
columns={this.props.columns}
714732
/>
715733
</div>
716734
</ResizableBox>

0 commit comments

Comments
 (0)