-
+
+
Under Construction
+
This tab is currently under development.
);
}
- // ── Outgoing ──────────────────────────────────────────────────────────
- if (activeTab === "outgoing") {
- const activeOutgoing = snapshot!.outgoingStreams.filter(
- (s) => s.status === "Active",
+ // Pass required props to each tab component
+ if (activeTab === "incoming") {
+ return (
+
);
- if (activeOutgoing.length === 0) {
- return (
-
}
- title="No active outgoing streams"
- description="You don't have any active outgoing payment streams. Create one to start streaming tokens to a recipient."
- action={
-
- }
- />
- );
- }
+ }
+
+ if (activeTab === "outgoing") {
return (
-
- {renderStreams(
- { ...snapshot!, outgoingStreams: activeOutgoing },
- (s) => setModal({ type: "topup", stream: s }),
- (s) => setModal({ type: "cancel", stream: s }),
- (s) => setModal({ type: "details", stream: s }),
- )}
-
+
setModal({ type: "topup", stream: s })}
+ onCancel={(s) => setModal({ type: "cancel", stream: s })}
+ onShowDetails={(s) => setModal({ type: "details", stream: s })}
+ />
);
}
- // ── Paused ────────────────────────────────────────────────────────────
if (activeTab === "paused") {
- const pausedStreams = [
- ...snapshot!.outgoingStreams.filter((s) => s.status === "Paused"),
- ...snapshot!.incomingStreams.filter((s) => s.status === "Paused"),
- ];
- if (pausedStreams.length === 0) {
- return (
-
- No paused streams found.
-
- );
- }
return (
-
-
-
-
- | Stream ID |
- Counterparty |
- Token |
- Status |
-
-
-
- {pausedStreams.map((s) => (
-
- | #{s.id} |
- {s.recipient} |
- {s.token} |
-
-
- Paused
-
- |
-
- ))}
-
-
-
+
);
}
- // ── Activity ──────────────────────────────────────────────────────────
if (activeTab === "activity") {
return (
-
- {renderRecentActivity(snapshot, () => setShowWizard(true))}
-
+ setShowWizard(true)}
+ />
);
}
- // ── Settings ──────────────────────────────────────────────────────────
if (activeTab === "settings") {
return (
-
-
-
-
Create Stream
- Save and reuse recurring configurations
-
-
- {streamFormMessage ? (
-
- {streamFormMessage.text}
-
- ) : null}
-
-
-
-
Template Library
-
- Save recurring stream settings once, apply instantly, then
- override before submitting.
-
-
-
-
setTemplateNameInput(e.target.value)}
- placeholder="e.g. Monthly Contributor Payroll"
- aria-label="Template name"
- />
-
-
- {editingTemplateId ? (
-
- ) : null}
-
-
-
- {templates.length === 0 ? (
-
-
No templates yet. Save your first stream setup.
-
- ) : (
-
- )}
-
-
-
-
-
-
+
);
}
@@ -1466,4 +1203,4 @@ export function DashboardView({ session, onDisconnect }: DashboardViewProps) {
)}
);
-}
+}
\ No newline at end of file