- project.yml mit Bundle ev.mana.zitare + Widget + ShareExt-Targets - ManaSwiftCore (ManaCore + ManaTokens) + ManaSwiftUI (ManaAuthUI) als Package-Dependencies via path: - Pure SwiftUI für Native-Surfaces, WKWebView nur für Lese-Tabs (Hybrid-Sonderfall vs cards/memoro/manaspur, dokumentiert im Playbook ZITARE_NATIVE_GREENFIELD.md) - Theme: paper-Variant aus @mana/themes - ZitareAPI.healthCheck via direct URLSession (öffentlicher Endpoint, kein AuthenticatedTransport-Gate) - 6/6 AppConfigTests + 1/1 UI-Smoke grün auf iPhone 16e Simulator - Live: zitare-api.mana.how/healthz → HTTP/2 200 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
32 lines
1.3 KiB
Swift
32 lines
1.3 KiB
Swift
import SwiftUI
|
|
|
|
/// Phase ζ-3 Placeholder — native Submit-View für Quote-Drafts.
|
|
///
|
|
/// Aufgabenliste in ζ-3:
|
|
///
|
|
/// - SwiftUI-Form mit Feldern: text (TextEditor), attribution (Author-
|
|
/// Name mit Auto-Complete aus lokalem Snapshot), language (Picker),
|
|
/// optional source (Werk, Jahr, URL), optional theme-Chips.
|
|
/// - `ManaAuthGate`-Wrap: nicht-eingeloggter Tap auf „Einreichen"
|
|
/// öffnet `ManaAuthUI`-Login-Sheet.
|
|
/// - `POST /api/v1/quotes` mit `status: 'draft'` (Endpoint existiert
|
|
/// schon, Phase 2.A im Web-Repo).
|
|
/// - Offline-Queue: bei Network-Failure Draft in SwiftData
|
|
/// `PendingSubmission` persistieren, beim Reconnect retry.
|
|
/// - Erfolg: Toast + Link „Im Web ansehen" (öffnet WebView auf
|
|
/// `zitare.mana.how/me` bzw. `/admin/queue` wenn Moderator).
|
|
struct SubmitQuoteView: View {
|
|
var body: some View {
|
|
VStack(spacing: 12) {
|
|
Image(systemName: "square.and.pencil")
|
|
.font(.system(size: 36))
|
|
.foregroundStyle(ZitareTheme.primary)
|
|
Text("Quote vorschlagen")
|
|
.font(.headline)
|
|
Text("ζ-3 — TODO: SwiftUI-Form + ManaAuthGate")
|
|
.font(.caption)
|
|
.foregroundStyle(.secondary)
|
|
}
|
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
|
}
|
|
}
|