From 60fb303915ee121b4f6b869aaa7e3607ed713652 Mon Sep 17 00:00:00 2001 From: catloversg <152669316+catloversg@users.noreply.github.com> Date: Tue, 28 Apr 2026 13:54:26 +0700 Subject: [PATCH] UI: Show effective amount of shared RAM when using UI (#2691) --- src/Faction/ui/ShareOption.tsx | 52 ++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/src/Faction/ui/ShareOption.tsx b/src/Faction/ui/ShareOption.tsx index 4c005925f..c13ef1bb5 100644 --- a/src/Faction/ui/ShareOption.tsx +++ b/src/Faction/ui/ShareOption.tsx @@ -4,6 +4,8 @@ import { TextField } from "@mui/material"; import Button from "@mui/material/Button"; import Paper from "@mui/material/Paper"; import Typography from "@mui/material/Typography"; +import Tooltip from "@mui/material/Tooltip"; +import InfoIcon from "@mui/icons-material/Info"; import { Player } from "@player"; import { @@ -24,6 +26,7 @@ export function ShareOption({ rerender }: { rerender: () => void }): React.React const home = Player.getHomeComputer(); const threads = Math.floor(ram / 4); + const ramUsage = roundToTwo(4 * threads); function onShare(): void { if (threads === 0) { @@ -34,7 +37,6 @@ export function ShareOption({ rerender }: { rerender: () => void }): React.React return; } const freeRAM = home.maxRam - home.ramUsed; - const ramUsage = roundToTwo(4 * threads); if (ramUsage > freeRAM + 0.001) { dialogBoxCreate("Not enough RAM."); return; @@ -50,6 +52,7 @@ export function ShareOption({ rerender }: { rerender: () => void }): React.React rerender(); }, ShareBonusTime); pendingUIShareJobIds.push(jobId); + rerender(); } return ( @@ -62,27 +65,40 @@ export function ShareOption({ rerender }: { rerender: () => void }): React.React
Free RAM on home computer: {formatRam(home.maxRam - home.ramUsed)}.
- Current bonus: {formatNumber(calculateCurrentShareBonus(), 6)}. Bonus with {formatRam(ram)}:{" "} + Current bonus: {formatNumber(calculateCurrentShareBonus(), 6)}. Bonus with {formatRam(ramUsage)}:{" "} {formatNumber(calculateShareBonusWithAdditionalThreads(threads, home.cpuCores), 6)} - { - if (event.target.value === "") { - setRam(0); - return; + + { + if (event.target.value === "") { + setRam(0); + return; + } + const value = Number.parseFloat(event.target.value); + if (!Number.isFinite(value) || value < 0) { + return; + } + setRam(value); + }} + /> + + RAM shared via this tool is rounded down to the nearest multiple of 4. +
+ For example, a value of 18 GB results in 16 GB. +
} - const value = Number.parseFloat(event.target.value); - if (!Number.isFinite(value) || value < 0) { - return; - } - setRam(value); - }} - InputProps={{ - endAdornment: , - }} - /> + > + + + + + + ); }