summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjose-donato <zmcdonato@gmail.com>2023-03-06 20:30:42 +0000
committerjose-donato <zmcdonato@gmail.com>2023-03-06 20:30:42 +0000
commit93eda269253bd0c8d3181e0d8a8e8efe3a4faebb (patch)
tree8896c7c866a8ad6e23e5bbae06f9d55f5e42d6c5
parent6ff255036a5620229ae040ce08c7e2ec954dbc16 (diff)
fix: ?!?!?
-rw-r--r--frontend-components/tables/src/App.tsx4
-rw-r--r--frontend-components/tables/src/components/Table.tsx62
2 files changed, 40 insertions, 26 deletions
diff --git a/frontend-components/tables/src/App.tsx b/frontend-components/tables/src/App.tsx
index 09ecf3e8124..5c5854092e7 100644
--- a/frontend-components/tables/src/App.tsx
+++ b/frontend-components/tables/src/App.tsx
@@ -32,10 +32,10 @@ function App() {
const transformData = (data: any) => {
if (!data) return null;
- let filename = data.title.replace(/<b>|<\/b>/g, "").replace(/ /g, "_");
+ let filename = data.title?.replace(/<b>|<\/b>/g, "").replace(/ /g, "_");
let date = new Date().toISOString().slice(0, 10).replace(/-/g, "");
let time = new Date().toISOString().slice(11, 19).replace(/:/g, "");
- window.title = `openbb_${filename}_${date}_${time}`
+ window.title = `openbb_${filename}_${date}_${time}`;
const columns = data.columns;
const index = data.index;
diff --git a/frontend-components/tables/src/components/Table.tsx b/frontend-components/tables/src/components/Table.tsx
index 4db2d61e0ab..f7300d18304 100644
--- a/frontend-components/tables/src/components/Table.tsx
+++ b/frontend-components/tables/src/components/Table.tsx
@@ -208,8 +208,11 @@ export default function Table({ data, columns }: any) {
cell: ({ row }: any) => {
const value = row.original[column];
const valueType = typeof value;
- const probablyDate = column.toLowerCase().includes("date") || column.toLowerCase() === "index";
- const probablyLink = valueType === "string" && value.startsWith("http");
+ const probablyDate =
+ column.toLowerCase().includes("date") ||
+ column.toLowerCase() === "index";
+ const probablyLink =
+ valueType === "string" && value.startsWith("http");
//TODO - Parse as HTML to make links work if string doesn't start with http
//TODO - Max Column Size
@@ -230,18 +233,19 @@ export default function Table({ data, columns }: any) {
return <p>{value}</p>;
}
- try{
- var dateFormatted = new Date(value).toISOString()
+ try {
+ var dateFormatted = new Date(value).toISOString();
// TODO - Remove 00:00:00 from date
-
- dateFormatted = dateFormatted.split('T')[0] + ' ' + dateFormatted.split('T')[1].split('.')[0]
+ dateFormatted =
+ dateFormatted.split("T")[0] +
+ " " +
+ dateFormatted.split("T")[1].split(".")[0];
return <p>{dateFormatted}</p>;
} catch (e) {
return <p>{value}</p>;
}
-
}
const valueFormatted =
valueType === "number" ? formatNumberMagnitude(value) : value;
@@ -323,12 +327,12 @@ export default function Table({ data, columns }: any) {
if (type === "csv") {
const csvContent = csvData.map((e) => e.join(",")).join("\n");
const blob = new Blob([csvContent], { type: "text/csv;charset=utf-8;" });
- saveToFile(blob, `${window.title}.csv`);
+ saveToFile(blob, `${window.title}.csv`);
} else {
const wb = utils.book_new();
const ws = utils.aoa_to_sheet(csvData);
utils.book_append_sheet(wb, ws, "Sheet1");
- writeFile(wb, `${window.title}.xlsx`);
+ writeFile(wb, `${window.title}.xlsx`);
}
};
@@ -686,32 +690,42 @@ function Filter({
const columnFilterValue = column.getFilterValue();
- const isProbablyDate = column.id.toLowerCase().includes("date") || column.id.toLowerCase() === "index";
+ const isProbablyDate =
+ column.id.toLowerCase().includes("date") ||
+ column.id.toLowerCase() === "index";
if (isProbablyDate) {
+ function getTime(value) {
+ if (!value) return null;
+ const date = new Date(value);
+ const year = date.getFullYear();
+ const month =
+ date.getMonth() + 1 > 9
+ ? date.getMonth() + 1
+ : `0${date.getMonth() + 1}`;
+ const day = date.getDate() > 9 ? date.getDate() : `0${date.getDate()}`;
+ return `${year}-${month}-${day}`;
+ }
+
return (
<div className="flex space-x-2">
<input
type="date"
- value={(columnFilterValue as [string, string])?.[0] ?? ""}
- onChange={(e) =>
- column.setFilterValue((old: [string, string]) => [
- e.target.value,
- old?.[1],
- ])
- }
+ value={getTime((columnFilterValue as [string, string])?.[0]) ?? ""}
+ onChange={(e) => {
+ const value = new Date(e.target.value).getTime();
+ column.setFilterValue((old: [string, string]) => [value, old?.[1]]);
+ }}
placeholder={`Start date`}
className="_input"
/>
<input
type="date"
- value={(columnFilterValue as [string, string])?.[1] ?? ""}
- onChange={(e) =>
- column.setFilterValue((old: [string, string]) => [
- old?.[0],
- e.target.value,
- ])
- }
+ value={getTime((columnFilterValue as [string, string])?.[1]) ?? ""}
+ onChange={(e) => {
+ const value = new Date(e.target.value).getTime();
+ column.setFilterValue((old: [string, string]) => [old?.[0], value]);
+ }}
placeholder={`End date`}
className="_input"
/>