spb/vquant Public MIT
VibeQuant — AI-powered institutional-grade financial intelligence platform.
TypeScript 84.3%
Python 11.7%
JavaScript 1.6%
CSS 1.5%
HTML 0.7%
1/*2 * =============================================================================3 * VibeQuant (vquant) — AI-Powered Financial Intelligence Platform4 * -----------------------------------------------------------------------------5 * File: client/src/components/chat/error-state.tsx6 *7 * Author: Simon-Pierre Boucher8 * Contact: contact@spboucher.ai9 * Website: https://www.spboucher.ai10 * Demo: https://www.vquant.ai11 * License: MIT (see LICENSE)12 *13 * Copyright © 2026 Simon-Pierre Boucher. All rights reserved.14 * =============================================================================15 */1617import { motion } from "framer-motion";18import { AlertCircle, RefreshCw } from "lucide-react";19import { Button } from "@/components/ui/button";2021interface ErrorStateProps {22 error: string;23 onRetry?: () => void;24}2526export function ErrorState({ error, onRetry }: ErrorStateProps) {27 return (28 <motion.div29 initial={{ opacity: 0, y: 8 }}30 animate={{ opacity: 1, y: 0 }}31 className="w-full max-w-2xl mx-auto"32 data-testid="error-state"33 >34 <div className="bg-destructive/10 border border-destructive/30 rounded-xl p-8 text-center">35 <AlertCircle className="w-12 h-12 text-destructive mx-auto mb-4" />36 <h3 className="text-lg font-semibold text-destructive mb-2">37 Something went wrong38 </h3>39 <p className="text-sm text-muted-foreground mb-6">40 {error}41 </p>42 {onRetry && (43 <Button44 onClick={onRetry}45 variant="outline"46 className="hover-elevate active-elevate-2"47 data-testid="button-retry"48 >49 <RefreshCw className="w-4 h-4 mr-2" />50 Try Again51 </Button>52 )}53 </div>54 </motion.div>55 );56}57