diff options
| author | bndw <ben@bdw.to> | 2023-05-10 20:57:34 -0700 |
|---|---|---|
| committer | bndw <ben@bdw.to> | 2023-05-10 20:57:34 -0700 |
| commit | b61f7caaa13b86afc012ca0dcb7d4a6b4cabcdf5 (patch) | |
| tree | 9ef7b94f8e75e524094dd7b75b53d4e3785752b8 /app/components | |
| parent | 3a2dff306f81f7ccaa93e6dc0458aa1b848836fb (diff) | |
feat: support values in query params
Diffstat (limited to 'app/components')
| -rw-r--r-- | app/components/calculator.tsx | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/app/components/calculator.tsx b/app/components/calculator.tsx index 3ce91e7..12e4ad3 100644 --- a/app/components/calculator.tsx +++ b/app/components/calculator.tsx | |||
| @@ -5,6 +5,10 @@ import styles from "./calculator.module.css"; | |||
| 5 | import { BitcoinPrice } from "../utils/bitcoin-price"; | 5 | import { BitcoinPrice } from "../utils/bitcoin-price"; |
| 6 | 6 | ||
| 7 | export const Calculator = () => { | 7 | export const Calculator = () => { |
| 8 | const [querySats, setQuerySats] = useState(""); | ||
| 9 | const [queryBtc, setQueryBtc] = useState(""); | ||
| 10 | const [queryUsd, setQueryUsd] = useState(""); | ||
| 11 | |||
| 8 | const [sats, setSats] = useState(""); | 12 | const [sats, setSats] = useState(""); |
| 9 | const [btc, setBtc] = useState(""); | 13 | const [btc, setBtc] = useState(""); |
| 10 | const [usd, setUsd] = useState(""); | 14 | const [usd, setUsd] = useState(""); |
| @@ -67,9 +71,23 @@ export const Calculator = () => { | |||
| 67 | }; | 71 | }; |
| 68 | 72 | ||
| 69 | useEffect(() => { | 73 | useEffect(() => { |
| 70 | // Initialize the calculator with some numbers | 74 | // Initialize the calculator with any query params |
| 71 | handleUpdate("sats", "1000"); | 75 | querySats && handleUpdate("sats", querySats); |
| 72 | }, [btcPrice]); | 76 | queryBtc && handleUpdate("btc", queryBtc); |
| 77 | queryUsd && handleUpdate("usd", queryUsd); | ||
| 78 | |||
| 79 | // Otherwise set default values | ||
| 80 | if (!(querySats || queryBtc || queryUsd) && btcPrice) { | ||
| 81 | handleUpdate("sats", "1000"); | ||
| 82 | } | ||
| 83 | }, [btcPrice, querySats, queryBtc]); | ||
| 84 | |||
| 85 | useEffect(() => { | ||
| 86 | const params = new URLSearchParams(window.location.search); | ||
| 87 | setQuerySats(params.get("sats") || ""); | ||
| 88 | setQueryBtc(params.get("btc") || ""); | ||
| 89 | setQueryUsd(params.get("usd") || ""); | ||
| 90 | }, []); | ||
| 73 | 91 | ||
| 74 | return ( | 92 | return ( |
| 75 | <form className="flex flex-col"> | 93 | <form className="flex flex-col"> |
