import React, { useState, useEffect } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from './ui/card'; import { Button } from './ui/button'; import { Badge } from './ui/badge'; import { Shuffle, Sparkles, Heart } from 'lucide-react'; interface OracleCard { name: string; category: string; border_color: string; yes_no_value?: string; time_window?: string; oracle_summary: string; nexus_mapping: { op_type?: string; signal?: string; effect?: string; time_gate?: string; probability?: number; action?: string; }; tags: string[]; } interface AngelOracleData { deck: { name: string; authors: string[]; total_cards: number; categories: Record; }; cards: OracleCard[]; } const AngelOracleReader: React.FC = () => { const [oracleData, setOracleData] = useState(null); const [selectedCard, setSelectedCard] = useState(null); const [isShuffling, setIsShuffling] = useState(false); const [question, setQuestion] = useState(''); const cardImages = [ 'https://d64gsuwffb70l.cloudfront.net/68b55da3cc8df3f651647221_1756765189840_0ddf4f37.webp', 'https://d64gsuwffb70l.cloudfront.net/68b55da3cc8df3f651647221_1756765195797_f583592d.webp', 'https://d64gsuwffb70l.cloudfront.net/68b55da3cc8df3f651647221_1756765199380_37d0f30a.webp' ]; const cardBackImage = 'https://d64gsuwffb70l.cloudfront.net/68b55da3cc8df3f651647221_1756765184037_5659355b.webp'; useEffect(() => { const loadOracleData = async () => { try { const response = await fetch('/angel-oracle-cards.json'); const data = await response.json(); setOracleData(data); } catch (error) { console.error('Failed to load oracle data:', error); } }; loadOracleData(); }, []); const drawCard = async () => { if (!oracleData) return; setIsShuffling(true); setSelectedCard(null); // Simulate shuffling animation await new Promise(resolve => setTimeout(resolve, 1500)); const allCards = oracleData.cards; const randomCard = allCards[Math.floor(Math.random() * allCards.length)]; setSelectedCard(randomCard); setIsShuffling(false); }; const getBorderColor = (color: string) => { switch (color) { case 'blue': return 'border-primary'; case 'gold': return 'border-warning'; case 'purple': return 'border-primary'; default: return 'border-gray-400'; } }; const getCategoryIcon = (category: string) => { switch (category) { case 'yes_no': return '💙'; case 'timing': return '⏰'; case 'angel_messages': return '💜'; default: return '✨'; } }; return (

Angel Answers Oracle

Ask a question and receive divine guidance from the angels. Focus on your question and draw a card for clear answers.

🙏 Ask Your Question