AI Review Center
Commit Review Workspace ?
Select a commit on the left to inspect quality, security, business value, findings, and suggested code changes.
Project AI Score
?
72%
Quality Avg
?
77%
Security Avg
?
64%
Reviews
?
91
Review Result ?
solutionbowl/super-admin · 8b2d033e
This commit adds UI improvements and a refresh button feature to the bet list route, along with enhancements to date validations on other routes. The use of React hooks and proper state management for refresh countdown is well done. Validation for date inputs helps prevent user errors. Minor improvements could be made in code clarity and handling edge cases more explicitly.
Quality
?
85%
Security
?
90%
Business Value
?
90%
Maintainability
?
85%
Issues & Suggested Fixes
?
1AI detects the issue
2Shows file, line, or evidence
3Suggests the fix to apply
Magic Number For Refresh Interval
Where
src/routes/bet-list.tsx:54
Issue / Evidence
magic number for refresh interval
Suggested Fix
define as a configurable constant or prop
Useeffect Dependency Array
Where
src/routes/bet-list.tsx:126
Issue / Evidence
useEffect dependency array
Suggested Fix
ensure all needed dependencies are listed to avoid stale closures
Handle Manual Refresh
Where
src/routes/bet-list.tsx:164
Issue / Evidence
handleManualRefresh
Suggested Fix
add error handling for refetch failures to improve robustness
Profit/Loss Display
Where
src/routes/bet-list.tsx:468
Issue / Evidence
profit/loss display
Suggested Fix
consider extracting repeated logic to a helper function for clarity
Vague Description
Where
commit message
Issue / Evidence
vague description
Suggested Fix
enhance commit message to clearly specify UI changes and refresh feature details for better traceability
Code Change Preview · src/routes/bet-list.tsx
?
Removed / Before Commit
- diff --git a/src/routes/bet-list.tsx b/src/routes/bet-list.tsx - index 94f8630..2defb98 100644 - import { format } from "date-fns"; - import { Download, Eye } from "lucide-react"; - import DateRangePicker from "@/components/common/DateRangePicker"; - import { useMemo, useState } from "react"; - import type { DateRange } from "react-day-picker"; - import { Button } from "@/components/ui/button"; - import { Input } from "@/components/ui/input"; - export const Route = createFileRoute("/bet-list")({ - component: BetListPage, - head: () => ({ meta: [{ title: "Bets List - B2B-B2C Panel" }] }), - validateSearch: (search: Record<string, unknown>): { market_id?: string; race_id?: string; agent_id?: string } => ({ - market_id: typeof search.market_id === "string" ? search.market_id : undefined, - race_id: typeof search.race_id === "string" ? search.race_id : undefined, - agent_id: typeof search.agent_id === "string" ? search.agent_id : undefined, - const tableColumns = [ - "Legs",
Added / After Commit
+ diff --git a/src/routes/bet-list.tsx b/src/routes/bet-list.tsx + index 94f8630..2defb98 100644 + import { format } from "date-fns"; + import { Download, Eye } from "lucide-react"; + import DateRangePicker from "@/components/common/DateRangePicker"; + import { useEffect, useMemo, useState } from "react"; + import type { DateRange } from "react-day-picker"; + import { Button } from "@/components/ui/button"; + import { Input } from "@/components/ui/input"; + export const Route = createFileRoute("/bet-list")({ + component: BetListPage, + head: () => ({ meta: [{ title: "Bets List - B2B-B2C Panel" }] }), + validateSearch: ( + search: Record<string, unknown>, + ): { market_id?: string; race_id?: string; agent_id?: string } => ({ + market_id: typeof search.market_id === "string" ? search.market_id : undefined, + race_id: typeof search.race_id === "string" ? search.race_id : undefined, + agent_id: typeof search.agent_id === "string" ? search.agent_id : undefined,
Removed / Before Commit
- diff --git a/src/routes/pl-by-agent.tsx b/src/routes/pl-by-agent.tsx - index f288a31..1682a5f 100644 - import { useEffect, useMemo, useState } from "react"; - import { motion } from "motion/react"; - import { format } from "date-fns"; - import { Download, RefreshCw } from "lucide-react"; - import { toast } from "sonner"; - import type { DateRange } from "react-day-picker"; - import { Card } from "@/components/ui/card"; - import { Button } from "@/components/ui/button"; - import DateRangePicker from "@/components/common/DateRangePicker"; - import { cn } from "@/lib/utils"; - import { - Table, - TableBody, - const applyFilters = () => { - const from = dateRange?.from ? format(dateRange.from, "yyyy-MM-dd") : defaultFilters.fromDate; - const to = dateRange?.to ? format(dateRange.to, "yyyy-MM-dd") : defaultFilters.toDate;
Added / After Commit
+ diff --git a/src/routes/pl-by-agent.tsx b/src/routes/pl-by-agent.tsx + index f288a31..1682a5f 100644 + import { useEffect, useMemo, useState } from "react"; + import { motion } from "motion/react"; + import { format } from "date-fns"; + import { Download } from "lucide-react"; + import { toast } from "sonner"; + import type { DateRange } from "react-day-picker"; + import { Card } from "@/components/ui/card"; + import { Button } from "@/components/ui/button"; + import DateRangePicker from "@/components/common/DateRangePicker"; + import { + Table, + TableBody, + const applyFilters = () => { + const from = dateRange?.from ? format(dateRange.from, "yyyy-MM-dd") : defaultFilters.fromDate; + const to = dateRange?.to ? format(dateRange.to, "yyyy-MM-dd") : defaultFilters.toDate; + if (!from || !to) {
Removed / Before Commit
- diff --git a/src/routes/pl-by-market.tsx b/src/routes/pl-by-market.tsx - index a249724..3cec7b7 100644 - import { useEffect, useMemo, useState } from "react"; - import { motion } from "motion/react"; - import { format } from "date-fns"; - import { Download, RefreshCw } from "lucide-react"; - import { toast } from "sonner"; - import type { DateRange } from "react-day-picker"; - import { Card } from "@/components/ui/card"; - import { Button } from "@/components/ui/button"; - import DateRangePicker from "@/components/common/DateRangePicker"; - import { cn } from "@/lib/utils"; - import { - Table, - TableBody, - const [appliedFilters, setAppliedFilters] = useState(defaultFilters); - const [refreshCountdown, setRefreshCountdown] = useState(refreshIntervalSeconds); -
Added / After Commit
+ diff --git a/src/routes/pl-by-market.tsx b/src/routes/pl-by-market.tsx + index a249724..3cec7b7 100644 + import { useEffect, useMemo, useState } from "react"; + import { motion } from "motion/react"; + import { format } from "date-fns"; + import { Download } from "lucide-react"; + import { toast } from "sonner"; + import type { DateRange } from "react-day-picker"; + import { Card } from "@/components/ui/card"; + import { Button } from "@/components/ui/button"; + import DateRangePicker from "@/components/common/DateRangePicker"; + import { + Table, + TableBody, + const [appliedFilters, setAppliedFilters] = useState(defaultFilters); + const [refreshCountdown, setRefreshCountdown] = useState(refreshIntervalSeconds); + + const reportQuery = useQuery({
Removed / Before Commit
- diff --git a/src/routes/statement.tsx b/src/routes/statement.tsx - index 5848682..17f4d1a 100644 - </div> - </TableCell> - <TableCell className={cn("whitespace-nowrap font-bold tabular-nums", amountColorClass)}> - {formatStatementAmount(amount, isDebitAmount)} - </TableCell> - <TableCell className="whitespace-nowrap font-semibold tabular-nums text-green-400"> - {formatAmount(transaction.availableCredit)}
Added / After Commit
+ diff --git a/src/routes/statement.tsx b/src/routes/statement.tsx + index 5848682..17f4d1a 100644 + </div> + </TableCell> + <TableCell className={cn("whitespace-nowrap font-bold tabular-nums", amountColorClass)}> + {formatStatementAmount(amount, isDebitAmount)} + </TableCell> + <TableCell className="whitespace-nowrap font-semibold tabular-nums text-green-400"> + {formatAmount(transaction.availableCredit)}