import React, { useCallback, useEffect, useState } from 'react'; import { Link } from 'react-router-dom'; import { ArrowLeft, Info, Sparkles } from 'lucide-react'; import { api } from '@/api'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import ReactMarkdown from 'react-markdown'; import rehypeSanitize from 'rehype-sanitize'; export default function AboutPage({ admin = false }) { const [about, setAbout] = useState(null); const [loading, setLoading] = useState(true); const load = useCallback(async () => { setLoading(true); try { setAbout(admin ? await api.aboutAdmin() : await api.about()); } finally { setLoading(false); } }, [admin]); useEffect(() => { load(); }, [load]); const stack = about?.stack || {}; return (
{about?.name || 'BillTracker'} {about?.description || ''}

Version

v{about?.version || '...'}

Backend

{about?.stack?.backend || 'Node.js / Express'}

Storage

{about?.stack?.database || 'SQLite'}

{/* Admin Content Display */} {admin && about?.future && ( <>

FUTURE.md

{about.future}

DEVELOPMENT_LOG.md

{about.developmentLog}
)}

Produced with AI assistance

BillTracker is self-hosted software for personal bill planning and history. This product was produced with the assistance of AI.

); }