dont check erros with string 'error', remove unnecessary optional chaining

This commit is contained in:
shamoon
2024-07-01 17:00:09 -07:00
parent a3b4032cb5
commit a2a617b319
3 changed files with 40 additions and 37 deletions

View File

@@ -44,41 +44,44 @@ export default function Widget({ options }) {
>
<FaChartLine className="flex-none w-5 h-5 text-theme-800 dark:text-theme-200 mr-2" />
<div className="flex flex-wrap items-center gap-0.5">
{data.stocks.map((stock) => (
<div
key={stock.ticker}
className="rounded h-full text-xs px-1 w-[4.75rem] flex flex-col items-center justify-center"
>
<span className="text-theme-800 dark:text-theme-200 text-xs">{stock.ticker}</span>
{!viewingPercentChange ? (
<span
className={
color !== false
? `text-xs ${stock?.percentChange < 0 ? "text-rose-300/70" : "text-emerald-300/70"}`
: "text-theme-800/70 dark:text-theme-200/50 text-xs"
}
{data.stocks.map(
(stock) =>
stock && (
<div
key={stock.ticker}
className="rounded h-full text-xs px-1 w-[4.75rem] flex flex-col items-center justify-center"
>
{stock?.currentPrice !== "error"
? t("common.number", {
value: stock.currentPrice,
style: "currency",
currency: "USD",
})
: t("widget.api_error")}
</span>
) : (
<span
className={
color !== false
? `text-xs ${stock?.percentChange < 0 ? "text-rose-300/70" : "text-emerald-300/70"}`
: "text-theme-800/70 dark:text-theme-200/70 text-xs"
}
>
{stock?.percentChange !== "error" ? `${stock.percentChange}%` : t("widget.api_error")}
</span>
)}
</div>
))}
<span className="text-theme-800 dark:text-theme-200 text-xs">{stock.ticker}</span>
{!viewingPercentChange ? (
<span
className={
color !== false
? `text-xs ${stock.percentChange < 0 ? "text-rose-300/70" : "text-emerald-300/70"}`
: "text-theme-800/70 dark:text-theme-200/50 text-xs"
}
>
{stock.currentPrice !== null
? t("common.number", {
value: stock.currentPrice,
style: "currency",
currency: "USD",
})
: t("widget.api_error")}
</span>
) : (
<span
className={
color !== false
? `text-xs ${stock.percentChange < 0 ? "text-rose-300/70" : "text-emerald-300/70"}`
: "text-theme-800/70 dark:text-theme-200/70 text-xs"
}
>
{stock.percentChange !== null ? `${stock.percentChange}%` : t("widget.api_error")}
</span>
)}
</div>
),
)}
</div>
</button>
</Raw>

View File

@@ -56,7 +56,7 @@ export default async function handler(req, res) {
// API sometimes returns 200, but values returned are `null`
if (c === null || dp === null) {
return { ticker: ticker || "error", currentPrice: "error", percentChange: "error" };
return { ticker: ticker, currentPrice: null, percentChange: null };
}
// Rounding percentage, but we want it back to a number for comparison

View File

@@ -64,8 +64,8 @@ function StockItem({ service, ticker }) {
<div className="bg-theme-200/50 dark:bg-theme-900/20 rounded flex flex-1 items-center justify-between m-1 p-1 text-xs">
<span className="font-thin ml-2 flex-none">{ticker}</span>
<div className="flex items-center flex-row-reverse mr-2 text-right">
<span className={`font-bold ml-2 w-10 ${data?.dp > 0 ? "text-emerald-300" : "text-rose-300"}`}>
{data?.dp?.toFixed(2) ? `${data?.dp?.toFixed(2)}%` : t("widget.api_error")}
<span className={`font-bold ml-2 w-10 ${data.dp > 0 ? "text-emerald-300" : "text-rose-300"}`}>
{data.dp?.toFixed(2) ? `${data.dp?.toFixed(2)}%` : t("widget.api_error")}
</span>
<span className="font-bold">
{data.c