mitai-jinkendo/.claude/commands/ui-page.md
Lars 7940dc7560 docs: Struktur .claude/docs versionieren, working/, Gitea-Index, Regeln
- .gitignore: .claude/docs, rules, commands tracken; settings.local weiter ignorieren
- DOCUMENTATION.md: verbindliche Ablage functional/technical/working/issues
- .claude/README.md: Agent-Einstieg; GITEA_ISSUES_INDEX aus MCP (Stand 2026-04-08)
- Arbeitspapiere von docs/ nach .claude/docs/working/ verschoben
- docs/MEMBERSHIP_SYSTEM.md als Stub; kanonisch technical/MEMBERSHIP_SYSTEM.md
- CLAUDE.md Pflichtlektüre und Links angepasst; docs/README.md vereinfacht

Made-with: Cursor
2026-04-08 13:01:49 +02:00

1.4 KiB

UI Page

Erstelle eine neue vollständige Seite für Mitai Jinkendo.

Seiten-Struktur:

import { useState, useEffect } from 'react'
import { api } from '../utils/api'
import { useAuth } from '../context/AuthContext'

export default function MeineSeite() {
  const { session } = useAuth()
  const [data, setData] = useState([])
  const [loading, setLoading] = useState(true)
  const [error, setError] = useState(null)

  useEffect(() => { load() }, [])

  const load = async () => {
    try {
      setLoading(true)
      const result = await api.meinEndpoint()
      setData(result)
    } catch(e) {
      setError(e.message)
    } finally {
      setLoading(false)
    }
  }

  if (loading) return <div className="spinner"/>
  if (error) return <div style={{color:'var(--danger)'}}>{error}</div>

  return (
    <div style={{padding:'0 0 80px'}}>
      {/* Titelzeile */}
      <div style={{display:'flex',alignItems:'center',
        justifyContent:'space-between',marginBottom:20}}>
        <div style={{fontSize:20,fontWeight:700}}>Seitentitel</div>
      </div>
      
      {/* Inhalt */}
    </div>
  )
}

Navigation einbinden:

In App.jsx unter den bestehenden Routen hinzufügen.

Backend-Endpoint:

Neuen Endpoint in backend/main.py mit:

@app.get("/api/mein-endpoint")
def mein_endpoint(session: dict = Depends(require_auth)):
    pid = session['profile_id']
    with get_db() as conn:
        ...