)}
{loadingThread && !outcome && (
@@ -254,7 +255,7 @@ export function MakeOfferDialog({ listing, currentUserId, currencyLabel }: MakeO
{!outcome && !loadingThread && (
<>
-
+
-
+
@@ -179,7 +181,7 @@ export function MarketView({
key={listing.id}
listing={listing}
currentUserId={currentUserId}
- currencyLabel={currencyLabel}
+ currencyConfig={currencyConfig}
canManage={isManager}
/>
))}
@@ -190,7 +192,7 @@ export function MarketView({
{myListings.length > 0 && (
@@ -207,7 +209,7 @@ export function MarketView({
key={listing.id}
listing={listing}
currentUserId={currentUserId}
- currencyLabel={currencyLabel}
+ currencyConfig={currencyConfig}
canManage={isManager}
/>
))}
diff --git a/src/components/frontend/market/NegotiationHistoryDialog.tsx b/src/components/frontend/market/NegotiationHistoryDialog.tsx
index fc783ca..9abd337 100644
--- a/src/components/frontend/market/NegotiationHistoryDialog.tsx
+++ b/src/components/frontend/market/NegotiationHistoryDialog.tsx
@@ -14,7 +14,7 @@ import {
DialogTrigger,
} from "@/components/ui/dialog";
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible";
-import { formatAmount } from "@/lib/banking/format";
+import { currencyLabel, formatAmount, type CurrencyConfig } from "@/lib/banking/format";
import { buildChatBubbles } from "@/lib/market/chatBubbles";
import { ChatBubbleList } from "@/components/frontend/market/ChatBubbleList";
import { ChevronDownIcon, HistoryIcon } from "lucide-react";
@@ -71,15 +71,15 @@ function counterpartyLabel(negotiation: MarketNegotiation, role: "buyer" | "sell
function HistoryRow({
negotiation,
role,
- currencyLabel,
+ currencyConfig,
}: {
negotiation: MarketNegotiation;
role: "buyer" | "seller";
- currencyLabel: string | null;
+ currencyConfig: CurrencyConfig;
}) {
const [expanded, setExpanded] = useState(false);
const listing = listingOf(negotiation);
- const fmt = (n: number) => formatAmount(n, { name: currencyLabel ?? undefined });
+ const fmt = (n: number) => formatAmount(n, currencyConfig);
const buyerLabel = role === "buyer" ? "You" : counterpartyLabel(negotiation, "buyer");
const sellerLabel = role === "seller" ? "You" : counterpartyLabel(negotiation, "seller");
@@ -112,7 +112,7 @@ function HistoryRow({
{listing && (
);
})
diff --git a/src/lib/market/npcDialogue.ts b/src/lib/market/npcDialogue.ts
index 38f5fee..32fca40 100644
--- a/src/lib/market/npcDialogue.ts
+++ b/src/lib/market/npcDialogue.ts
@@ -1,13 +1,5 @@
export type NpcDialogueKind =
- | "firm"
- | "lowball"
- | "backward"
- | "stall"
- | "concede"
- | "good"
- | "overpay"
- | "closed"
- | "accept";
+ "firm" | "lowball" | "backward" | "stall" | "concede" | "good" | "overpay" | "closed" | "accept";
type DialogueLine = (amount: string, asking: string) => string;
@@ -18,8 +10,8 @@ const LINES: Record = {
(amount) => `I'm holding at ${amount}. My prices are already fair.`,
],
lowball: [
- (amount) => `That's an insult! I'll come down to ${amount} — not a unit less.`,
- (amount) => `You're joking, right? ${amount} and not a unit less.`,
+ (amount) => `That's an insult! I'll come down to ${amount} — not a fraction less.`,
+ (amount) => `You're joking, right? ${amount} and not a fraction less.`,
(amount) => `I paid more than that for lunch! ${amount} — final offer.`,
],
backward: [
@@ -28,8 +20,8 @@ const LINES: Record = {
],
stall: [
() => "Really? That's hardly different. Negotiate like you mean it.",
- () => "A whole dollar more? That's not negotiating, that's teasing. Come back with a real number.",
- () => "You're just wearing me down with pennies now. Bring something meaningful.",
+ () => "That tiny increase isn't negotiating. Come back with a real number.",
+ () => "You're just inching up now. Bring something meaningful.",
],
concede: [
(amount) => `Hmm, not sure about that... how about ${amount}?`,