UNPKG

@cranberry-money/shared-utils

Version:

Shared utility functions for Blueberry platform

111 lines 6.45 kB
import { TRADE_STATUS_EXECUTED, TRADE_STATUS_SETTLED, TRADE_STATUS_CANCELLED, TRADE_STATUS_FAILED, TRADE_STATUS_LABEL_EXECUTED, TRADE_STATUS_LABEL_SETTLED, TRADE_STATUS_LABEL_CANCELLED, TRADE_STATUS_LABEL_FAILED, TARGET_TRADE_STATUS_PENDING, TARGET_TRADE_STATUS_APPROVED, TARGET_TRADE_STATUS_SUBMITTED, TARGET_TRADE_STATUS_CANCELLED, TARGET_TRADE_STATUS_EXPIRED, TARGET_TRADE_STATUS_LABEL_PENDING, TARGET_TRADE_STATUS_LABEL_APPROVED, TARGET_TRADE_STATUS_LABEL_SUBMITTED, TARGET_TRADE_STATUS_LABEL_CANCELLED, TARGET_TRADE_STATUS_LABEL_EXPIRED, WITHDRAWAL_STATUS_PENDING_REVIEW, WITHDRAWAL_STATUS_APPROVED, WITHDRAWAL_STATUS_REJECTED, WITHDRAWAL_STATUS_PROCESSING, WITHDRAWAL_STATUS_AWAITING_LIQUIDATION, WITHDRAWAL_STATUS_LIQUIDATION_IN_PROGRESS, WITHDRAWAL_STATUS_COMPLETED, WITHDRAWAL_STATUS_CANCELLED, WITHDRAWAL_STATUS_FAILED, WITHDRAWAL_STATUS_LABEL_PENDING_REVIEW, WITHDRAWAL_STATUS_LABEL_APPROVED, WITHDRAWAL_STATUS_LABEL_REJECTED, WITHDRAWAL_STATUS_LABEL_PROCESSING, WITHDRAWAL_STATUS_LABEL_AWAITING_LIQUIDATION, WITHDRAWAL_STATUS_LABEL_LIQUIDATION_IN_PROGRESS, WITHDRAWAL_STATUS_LABEL_COMPLETED, WITHDRAWAL_STATUS_LABEL_CANCELLED, WITHDRAWAL_STATUS_LABEL_FAILED, LIQUIDATION_STATUS_PENDING, LIQUIDATION_STATUS_TRADES_CREATED, LIQUIDATION_STATUS_EXECUTED, LIQUIDATION_STATUS_SETTLED, LIQUIDATION_STATUS_FAILED, LIQUIDATION_STATUS_LABEL_PENDING, LIQUIDATION_STATUS_LABEL_TRADES_CREATED, LIQUIDATION_STATUS_LABEL_EXECUTED, LIQUIDATION_STATUS_LABEL_SETTLED, LIQUIDATION_STATUS_LABEL_FAILED, } from '@cranberry-money/shared-constants'; import { createBadge } from './badge'; const TRADE_STATUS_MAPPING = { [TRADE_STATUS_EXECUTED]: 'primary', [TRADE_STATUS_SETTLED]: 'success', [TRADE_STATUS_CANCELLED]: 'error', [TRADE_STATUS_FAILED]: 'error', [TARGET_TRADE_STATUS_PENDING]: 'warning', [TARGET_TRADE_STATUS_SUBMITTED]: 'primary', [TARGET_TRADE_STATUS_EXPIRED]: 'neutral', }; const WITHDRAWAL_STATUS_MAPPING = { [WITHDRAWAL_STATUS_PENDING_REVIEW]: 'warning', [WITHDRAWAL_STATUS_APPROVED]: 'success', [WITHDRAWAL_STATUS_REJECTED]: 'error', [WITHDRAWAL_STATUS_PROCESSING]: 'primary', [WITHDRAWAL_STATUS_AWAITING_LIQUIDATION]: 'warning', [WITHDRAWAL_STATUS_LIQUIDATION_IN_PROGRESS]: 'primary', [WITHDRAWAL_STATUS_COMPLETED]: 'success', [WITHDRAWAL_STATUS_CANCELLED]: 'neutral', [WITHDRAWAL_STATUS_FAILED]: 'error', }; const LIQUIDATION_STATUS_MAPPING = { [LIQUIDATION_STATUS_PENDING]: 'warning', [LIQUIDATION_STATUS_TRADES_CREATED]: 'primary', [LIQUIDATION_STATUS_EXECUTED]: 'primary', [LIQUIDATION_STATUS_SETTLED]: 'success', [LIQUIDATION_STATUS_FAILED]: 'error', }; const TARGET_TRADE_STATUS_MAPPING = { [TARGET_TRADE_STATUS_PENDING]: 'warning', [TARGET_TRADE_STATUS_APPROVED]: 'success', [TARGET_TRADE_STATUS_SUBMITTED]: 'primary', [TARGET_TRADE_STATUS_CANCELLED]: 'error', [TARGET_TRADE_STATUS_EXPIRED]: 'neutral', }; const TRADE_STATUS_LABELS = { [TRADE_STATUS_EXECUTED]: TRADE_STATUS_LABEL_EXECUTED, [TRADE_STATUS_SETTLED]: TRADE_STATUS_LABEL_SETTLED, [TRADE_STATUS_CANCELLED]: TRADE_STATUS_LABEL_CANCELLED, [TRADE_STATUS_FAILED]: TRADE_STATUS_LABEL_FAILED, [TARGET_TRADE_STATUS_PENDING]: TARGET_TRADE_STATUS_LABEL_PENDING, [TARGET_TRADE_STATUS_SUBMITTED]: TARGET_TRADE_STATUS_LABEL_SUBMITTED, [TARGET_TRADE_STATUS_EXPIRED]: TARGET_TRADE_STATUS_LABEL_EXPIRED, }; const WITHDRAWAL_STATUS_LABELS = { [WITHDRAWAL_STATUS_PENDING_REVIEW]: WITHDRAWAL_STATUS_LABEL_PENDING_REVIEW, [WITHDRAWAL_STATUS_APPROVED]: WITHDRAWAL_STATUS_LABEL_APPROVED, [WITHDRAWAL_STATUS_REJECTED]: WITHDRAWAL_STATUS_LABEL_REJECTED, [WITHDRAWAL_STATUS_PROCESSING]: WITHDRAWAL_STATUS_LABEL_PROCESSING, [WITHDRAWAL_STATUS_AWAITING_LIQUIDATION]: WITHDRAWAL_STATUS_LABEL_AWAITING_LIQUIDATION, [WITHDRAWAL_STATUS_LIQUIDATION_IN_PROGRESS]: WITHDRAWAL_STATUS_LABEL_LIQUIDATION_IN_PROGRESS, [WITHDRAWAL_STATUS_COMPLETED]: WITHDRAWAL_STATUS_LABEL_COMPLETED, [WITHDRAWAL_STATUS_CANCELLED]: WITHDRAWAL_STATUS_LABEL_CANCELLED, [WITHDRAWAL_STATUS_FAILED]: WITHDRAWAL_STATUS_LABEL_FAILED, }; const LIQUIDATION_STATUS_LABELS = { [LIQUIDATION_STATUS_PENDING]: LIQUIDATION_STATUS_LABEL_PENDING, [LIQUIDATION_STATUS_TRADES_CREATED]: LIQUIDATION_STATUS_LABEL_TRADES_CREATED, [LIQUIDATION_STATUS_EXECUTED]: LIQUIDATION_STATUS_LABEL_EXECUTED, [LIQUIDATION_STATUS_SETTLED]: LIQUIDATION_STATUS_LABEL_SETTLED, [LIQUIDATION_STATUS_FAILED]: LIQUIDATION_STATUS_LABEL_FAILED, }; const TARGET_TRADE_STATUS_LABELS = { [TARGET_TRADE_STATUS_PENDING]: TARGET_TRADE_STATUS_LABEL_PENDING, [TARGET_TRADE_STATUS_APPROVED]: TARGET_TRADE_STATUS_LABEL_APPROVED, [TARGET_TRADE_STATUS_SUBMITTED]: TARGET_TRADE_STATUS_LABEL_SUBMITTED, [TARGET_TRADE_STATUS_CANCELLED]: TARGET_TRADE_STATUS_LABEL_CANCELLED, [TARGET_TRADE_STATUS_EXPIRED]: TARGET_TRADE_STATUS_LABEL_EXPIRED, }; export function getTradeStatusBadge(status, size = 'md') { const variant = TRADE_STATUS_MAPPING[status] || 'neutral'; const badge = createBadge({ variant, size }); const displayText = TRADE_STATUS_LABELS[status] || status.charAt(0) + status.slice(1).toLowerCase(); return { ...badge, displayText, ariaLabel: `Trade status: ${displayText}`, }; } export function getWithdrawalStatusBadge(status, size = 'md') { const variant = WITHDRAWAL_STATUS_MAPPING[status] || 'neutral'; const badge = createBadge({ variant, size }); const displayText = WITHDRAWAL_STATUS_LABELS[status] || status; return { ...badge, displayText, ariaLabel: `Withdrawal status: ${displayText}`, }; } export function getLiquidationStatusBadge(status, size = 'md') { const variant = LIQUIDATION_STATUS_MAPPING[status] || 'neutral'; const badge = createBadge({ variant, size }); const displayText = LIQUIDATION_STATUS_LABELS[status] || status; return { ...badge, displayText, ariaLabel: `Liquidation status: ${displayText}`, }; } export function getTargetTradeStatusBadge(status, size = 'md') { const variant = TARGET_TRADE_STATUS_MAPPING[status] || 'neutral'; const badge = createBadge({ variant, size }); const displayText = TARGET_TRADE_STATUS_LABELS[status] || status; return { ...badge, displayText, ariaLabel: `Target trade status: ${displayText}`, }; } //# sourceMappingURL=badge-status.js.map