mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-01 06:51:38 +00:00
* init * fix tables * add shortcuts * handle svgs * test * test2 * test3 * Update loggers.py * Update sdk_helpers.py * Update loggers.py * Update loggers.py * updates * updates * update * handle add text high/low for candlestick traces when updating * adding save overlay to tables * maybe fix * prints * asdf * working * working * removing prints * update * fix no figure title text * add trace labels space * download finished popup for MacOS * bump pywry * update * update table * Update plotly_helper.py * only format numbers over 10_000 on tables * Delete generate_index.py * turn off logs in generations * update tables * bump pywry, fix tables, added ichimoku ta indicator * Update backend.py * mypy * update tables * updates * juan more * tables * test * bump pywry * bump pywry * Update loggers.py * test * fixing some formatting * add update button to indicators dashboard * fix oecd dates to be full dates * prepare charts/tables for pywry update * Update poetry.lock * Update finviz_view.py * tests * tests * tests * tests * testss? * tests * Create test_call_func[call_sec-nasdaq_view.sec_filings-other_args37-called_with37].yaml * testtss please * Update loggers.py * testss * `with open(newline="\n")` * tests * tests -__- * why * Revert "`with open(newline="\n")`" This reverts commit554e0f53f4. * Revert "why" This reverts commit89f1d9b823. * Revert "tests -__-" This reverts commita9c694ae96. * Revert "tests" This reverts commit5463249498. * whelp * . * rename `streamlit.py` -> `streamlit_run.py`, bump pywry/finviz/streamlit * Update backend.py * update * Revert "update file" --------- Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> Co-authored-by: James Maslek <jmaslek11@gmail.com>
43 lines
1.4 KiB
TypeScript
Vendored
43 lines
1.4 KiB
TypeScript
Vendored
import { RefObject, useEffect } from "react";
|
|
|
|
export default function useOnClickOutside(
|
|
ref: RefObject<HTMLElement>,
|
|
handler: (event: MouseEvent | TouchEvent) => void
|
|
) {
|
|
useEffect(() => {
|
|
const listener = (event: MouseEvent | TouchEvent) => {
|
|
// Do nothing if clicking ref's element or descendent elements
|
|
if (!ref.current || ref.current.contains(event.target as Node)) {
|
|
return;
|
|
}
|
|
handler(event);
|
|
};
|
|
document.addEventListener("mousedown", listener);
|
|
document.addEventListener("touchstart", listener);
|
|
return () => {
|
|
document.removeEventListener("mousedown", listener);
|
|
document.removeEventListener("touchstart", listener);
|
|
};
|
|
}, [ref, handler]);
|
|
}
|
|
|
|
export function useOnClickInside(
|
|
ref: RefObject<HTMLElement>,
|
|
handler: (event: MouseEvent | TouchEvent) => void
|
|
) {
|
|
useEffect(() => {
|
|
const listener = (event: MouseEvent | TouchEvent) => {
|
|
// Do nothing if clicking ref's element or descendent elements
|
|
if (ref.current && ref.current.contains(event.target as Node)) {
|
|
handler(event);
|
|
}
|
|
};
|
|
document.addEventListener("mousedown", listener);
|
|
document.addEventListener("touchstart", listener);
|
|
return () => {
|
|
document.removeEventListener("mousedown", listener);
|
|
document.removeEventListener("touchstart", listener);
|
|
};
|
|
}, [ref, handler]);
|
|
}
|