Hotfix/ Candle --log (#5039)

* init... might break stuff

* fix

* clean up

* check if array for color keys
This commit is contained in:
teh_coderer
2023-05-18 11:24:29 -05:00
committed by GitHub
parent b54c47e2e9
commit a6a2268ddc
4 changed files with 11425 additions and 15178 deletions

View File

@@ -19,185 +19,186 @@ declare global {
}
function App() {
const [data, setData] = useState(
process.env.NODE_ENV === "production" ? null : candlestickMockup
);
const [options, setOptions] = useState({});
const [data, setData] = useState(
process.env.NODE_ENV === "production" ? null : candlestickMockup,
);
const [options, setOptions] = useState({});
useEffect(() => {
if (process.env.NODE_ENV === "production") {
const interval = setInterval(() => {
if (window.json_data) {
const data = window.json_data;
console.log(data);
setData(data);
clearInterval(interval);
}
}, 100);
return () => clearInterval(interval);
}
}, []);
useEffect(() => {
if (process.env.NODE_ENV === "production") {
const interval = setInterval(() => {
if (window.json_data) {
const data = window.json_data;
console.log(data);
setData(data);
clearInterval(interval);
}
}, 100);
return () => clearInterval(interval);
}
}, []);
const transformData = (data: any) => {
if (!data) return null;
let globals = {
added_traces: [],
csv_yaxis_id: null,
cmd_src_idx: null,
cmd_idx: null,
cmd_src: "",
old_margin: null,
title: "",
};
let filename = data.layout?.title?.text
.replace(/ -/g, "")
.replace(/-/g, "")
.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}`;
const transformData = (data: any) => {
if (!data) return null;
const globals = {
added_traces: [],
csv_yaxis_id: null,
cmd_src_idx: null,
cmd_idx: null,
cmd_src: "",
old_margin: null,
title: "",
};
const filename = data.layout?.title?.text
.replace(/ -/g, "")
.replace(/-/g, "")
.replace(/<b>|<\/b>/g, "")
.replace(/ /g, "_");
const date = new Date().toISOString().slice(0, 10).replace(/-/g, "");
const time = new Date().toISOString().slice(11, 19).replace(/:/g, "");
window.title = `openbb_${filename}_${date}_${time}`;
if (data.layout.annotations != undefined) {
data.layout.annotations.forEach(function (annotation) {
if (annotation.text != undefined)
if (annotation.text[0] == "/") {
globals.cmd_src = annotation.text;
globals.cmd_idx = data.layout.annotations.indexOf(annotation);
annotation.text = "";
if (data.layout.annotations !== undefined) {
data.layout.annotations.forEach(function (annotation) {
if (annotation.text !== undefined)
if (annotation.text[0] === "/") {
globals.cmd_src = annotation.text;
globals.cmd_idx = data.layout.annotations.indexOf(annotation);
annotation.text = "";
let margin = data.layout.margin;
globals.old_margin = { ...margin };
if (margin.t != undefined && margin.t > 40) margin.t = 40;
const margin = data.layout.margin;
globals.old_margin = { ...margin };
if (margin.t !== undefined && margin.t > 40) margin.t = 40;
if (data.cmd == "/stocks/candle") margin.r -= 50;
}
});
}
if (data.cmd === "/stocks/candle") margin.r -= 50;
}
});
}
// We add spaces to all trace names, due to Fira Code font width issues
// to make sure that the legend is not cut off
data.data.forEach(function (trace) {
if (trace.name != undefined) {
const name_length = trace.name.length;
trace.name = trace.name + " ";
trace.hoverlabel = {
namelength: name_length,
};
}
});
// We add spaces to all trace names, due to Fira Code font width issues
// to make sure that the legend is not cut off
data.data.forEach(function (trace) {
if (trace.name !== undefined) {
const name_length = trace.name.length;
trace.name = `${trace.name} `;
trace.hoverlabel = {
namelength: name_length,
};
}
});
let title = data.layout?.title?.text || "Interactive Chart";
globals.title = title;
return {
data: data,
date: new Date(),
globals: globals,
cmd: data.command_location,
posthog: data.posthog,
python_version: data.python_version,
pywry_version: data.pywry_version,
terminal_version: data.terminal_version,
theme: data.theme,
title,
};
};
const title = data.layout?.title?.text || "Interactive Chart";
globals.title = title;
return {
data: data,
date: new Date(),
globals: globals,
cmd: data.command_location,
posthog: data.posthog,
python_version: data.python_version,
pywry_version: data.pywry_version,
terminal_version: data.terminal_version,
theme: data.theme,
title,
};
};
const transformedData = transformData(data);
const transformedData = transformData(data);
if (transformedData) {
if (transformedData.posthog.collect_logs && !options) {
const opts = {
api_host: "https://app.posthog.com",
autocapture: {
css_selector_allowlist: [".ph-capture"],
},
capture_pageview: false,
loaded: function (posthog: any) {
const log_id = transformedData?.log_id || "";
if (transformedData) {
if (transformedData.posthog.collect_logs && !options) {
const opts = {
api_host: "https://app.posthog.com",
autocapture: {
css_selector_allowlist: [".ph-capture"],
},
capture_pageview: false,
loaded: function (posthog: any) {
const log_id = transformedData?.log_id || "";
if (log_id != "" && log_id != "REPLACE_ME") posthog.identify(log_id);
if (log_id !== "" && log_id !== "REPLACE_ME")
posthog.identify(log_id);
posthog.onFeatureFlags(function () {
if (
!posthog.isFeatureEnabled("record-pywry", { send_event: false })
)
posthog.stopSessionRecording();
posthog.onFeatureFlags(function () {
if (
!posthog.isFeatureEnabled("record-pywry", { send_event: false })
)
posthog.stopSessionRecording();
if (
!posthog.isFeatureEnabled("collect-logs-pywry", {
send_event: false,
})
)
posthog.opt_out_capturing();
else if (posthog.has_opted_out_capturing())
posthog.opt_in_capturing();
});
},
};
setOptions(opts);
}
if (
!posthog.isFeatureEnabled("collect-logs-pywry", {
send_event: false,
})
)
posthog.opt_out_capturing();
else if (posthog.has_opted_out_capturing())
posthog.opt_in_capturing();
});
},
};
setOptions(opts);
}
const info = {
INFO: {
command: transformedData.cmd,
title: transformedData.title,
date: transformedData.date,
python_version: transformedData.python_version,
pywry_version: transformedData.pywry_version,
terminal_version: transformedData.terminal_version,
},
};
const info = {
INFO: {
command: transformedData.cmd,
title: transformedData.title,
date: transformedData.date,
python_version: transformedData.python_version,
pywry_version: transformedData.pywry_version,
terminal_version: transformedData.terminal_version,
},
};
const chartDiv = (
<Chart
json={transformedData.data}
date={transformedData.date}
cmd={transformedData.cmd}
title={transformedData.title}
globals={transformedData.globals}
theme={transformedData.theme}
info={info}
/>
);
const chartDiv = (
<Chart
json={transformedData.data}
date={transformedData.date}
cmd={transformedData.cmd}
title={transformedData.title}
globals={transformedData.globals}
theme={transformedData.theme}
info={info}
/>
);
if (transformedData.posthog.collect_logs && options) {
return (
<PostHogProvider
apiKey="phc_vhssDAMod5qIplznQ75Kdgz4aB1qPFmeVmfEOZ4hkRw"
options={options}
>
{chartDiv}
</PostHogProvider>
);
}
if (transformedData.posthog.collect_logs && options) {
return (
<PostHogProvider
apiKey="phc_vhssDAMod5qIplznQ75Kdgz4aB1qPFmeVmfEOZ4hkRw"
options={options}
>
{chartDiv}
</PostHogProvider>
);
}
return chartDiv;
} else
return (
<div className="absolute inset-0 flex items-center justify-center z-[100]">
<svg
className="animate-spin h-20 w-20 text-white"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
>
<circle
className="opacity-25"
cx="12"
cy="12"
r="10"
stroke="currentColor"
strokeWidth="4"
></circle>
<path
className="opacity-75"
fill="currentColor"
d="M4 12a8 8 0 018-8v8z"
></path>
</svg>
</div>
);
return chartDiv;
} else
return (
<div className="absolute inset-0 flex items-center justify-center z-[100]">
<svg
className="animate-spin h-20 w-20 text-white"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
>
<circle
className="opacity-25"
cx="12"
cy="12"
r="10"
stroke="currentColor"
strokeWidth="4"
/>
<path
className="opacity-75"
fill="currentColor"
d="M4 12a8 8 0 018-8v8z"
/>
</svg>
</div>
);
}
export default App;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff