defi-orderbook
dedevs-ui/defi-orderbookFreeComponent
Defi orderbook component
See it running
Open the demo on dedevs-ui
ui.dedevs.com/components/defi-orderbookInstall it
npx shadcn@latest add https://ui.dedevs.com/r/defi-orderbook.jsonSource
1"use client"23import { useState, useEffect } from "react"4import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"5import { Badge } from "@/components/ui/badge"6import { TrendingUp, TrendingDown, Activity } from 'lucide-react'78interface OrderBookEntry {9 price: number10 amount: number11 total: number12 change?: number13}1415interface OrderBookProps {16 pair?: string17 exchange?: string18 className?: string19}2021export function OrderBook({22 pair = "ETH/USD",23 exchange = "Coinbase",24 className = ""25}: OrderBookProps) {26 const [asks, setAsks] = useState<OrderBookEntry[]>([])27 const [bids, setBids] = useState<OrderBookEntry[]>([])28 const [spread, setSpread] = useState(0)29 const [spreadPercent, setSpreadPercent] = useState(0)30 const [lastPrice, setLastPrice] = useState(0)31 const [priceChange, setPriceChange] = useState(0)3233 // Simulate real-time order book data34 useEffect(() => {35 const generateOrderBook = () => {36 const basePrice = 2345.67 + (Math.random() - 0.5) * 1037 const newAsks: OrderBookEntry[] = []38 const newBids: OrderBookEntry[] = []3940 // Generate asks (sell orders) - sorted ascending41 for (let i = 0; i < 10; i++) {42 const price = basePrice + (i + 1) * (Math.random() * 1.5 + 0.3)43 const amount = Math.random() * 15 + 0.144 const change = (Math.random() - 0.5) * 0.145 newAsks.push({46 price: parseFloat(price.toFixed(2)),47 amount: parseFloat(amount.toFixed(4)),48 total: parseFloat((price * amount).toFixed(2)),49 change: parseFloat(change.toFixed(3))50 })51 }5253 // Generate bids (buy orders) - sorted descending54 for (let i = 0; i < 10; i++) {55 const price = basePrice - (i + 1) * (Math.random() * 1.5 + 0.3)56 const amount = Math.random() * 15 + 0.157 const change = (Math.random() - 0.5) * 0.158 newBids.push({59 price: parseFloat(price.toFixed(2)),60 amount: parseFloat(amount.toFixed(4)),61 total: parseFloat((price * amount).toFixed(2)),62 change: parseFloat(change.toFixed(3))63 })64 }6566 const currentSpread = newAsks[0]?.price - newBids[0]?.price || 067// … truncated
Files it writes
More from dedevs-ui
All 30 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| ai-branchai-branch | dedevs-ui | Components | Free | no deps | |
| ai-conversationai-conversation | dedevs-ui | Components | Free | no deps | |
| ai-inputai-input | dedevs-ui | Components | Free | no deps | |
| ai-messageai-message | dedevs-ui | Components | Free | no deps | |
| ai-reasoningai-reasoning | dedevs-ui | Components | Free | no deps | |
| ai-responseai-response | dedevs-ui | Components | Free | no deps | |
| ai-serverai-server | dedevs-ui | Components | Free | no deps | |
| ai-simpleai-simple | dedevs-ui | Components | Free | no deps |
