From fab58aead0e45b3f100d359549e4461a5237c619 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Fri, 5 Dec 2025 22:51:58 -0800 Subject: [PATCH] fix: correct networking imports and API response format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix useSession → useAuth import (matches actual export) - Fix GraphEdge properties: source/target instead of fromUserId/toUserId - Add missing trustLevel, effectiveTrustLevel to edge response - Add myConnections to NetworkGraph type - Prefix unused myConnections param with underscore 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/components/networking/NetworkGraphMinimap.tsx | 2 +- src/components/networking/NetworkGraphPanel.tsx | 4 ++-- src/components/networking/useNetworkGraph.ts | 4 ++-- src/lib/networking/connectionService.ts | 6 ++++-- src/lib/networking/types.ts | 1 + worker/networkingApi.ts | 10 ++++++---- worker/worker.ts | 2 +- 7 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/components/networking/NetworkGraphMinimap.tsx b/src/components/networking/NetworkGraphMinimap.tsx index 5c82256..5efd7d1 100644 --- a/src/components/networking/NetworkGraphMinimap.tsx +++ b/src/components/networking/NetworkGraphMinimap.tsx @@ -154,7 +154,7 @@ const styles = { export function NetworkGraphMinimap({ nodes, edges, - myConnections, + myConnections: _myConnections, currentUserId, onConnect, onDisconnect, diff --git a/src/components/networking/NetworkGraphPanel.tsx b/src/components/networking/NetworkGraphPanel.tsx index 6a4ed53..7c52cb4 100644 --- a/src/components/networking/NetworkGraphPanel.tsx +++ b/src/components/networking/NetworkGraphPanel.tsx @@ -9,7 +9,7 @@ import React, { useState, useCallback, useMemo } from 'react'; import { useEditor, useValue } from 'tldraw'; import { NetworkGraphMinimap } from './NetworkGraphMinimap'; import { useNetworkGraph } from './useNetworkGraph'; -import { useSession } from '../../context/AuthContext'; +import { useAuth } from '../../context/AuthContext'; import type { GraphEdge, TrustLevel } from '../../lib/networking'; // ============================================================================= @@ -26,7 +26,7 @@ interface NetworkGraphPanelProps { export function NetworkGraphPanel({ onExpand }: NetworkGraphPanelProps) { const editor = useEditor(); - const { session } = useSession(); + const { session } = useAuth(); const [isCollapsed, setIsCollapsed] = useState(false); const [selectedEdge, setSelectedEdge] = useState(null); diff --git a/src/components/networking/useNetworkGraph.ts b/src/components/networking/useNetworkGraph.ts index cd2a9a0..82fdcc4 100644 --- a/src/components/networking/useNetworkGraph.ts +++ b/src/components/networking/useNetworkGraph.ts @@ -9,7 +9,7 @@ */ import { useState, useEffect, useCallback, useMemo } from 'react'; -import { useSession } from '../../context/AuthContext'; +import { useAuth } from '../../context/AuthContext'; import { getMyNetworkGraph, getRoomNetworkGraph, @@ -80,7 +80,7 @@ export function useNetworkGraph(options: UseNetworkGraphOptions = {}): UseNetwor useCache = true, } = options; - const { session } = useSession(); + const { session } = useAuth(); const [state, setState] = useState({ nodes: [], edges: [], diff --git a/src/lib/networking/connectionService.ts b/src/lib/networking/connectionService.ts index 796a0c2..c273497 100644 --- a/src/lib/networking/connectionService.ts +++ b/src/lib/networking/connectionService.ts @@ -40,8 +40,8 @@ async function fetchJson(url: string, options?: RequestInit): Promise { }); if (!response.ok) { - const error = await response.json().catch(() => ({ message: response.statusText })); - throw new Error(error.message || `HTTP ${response.status}`); + const errorData = await response.json().catch(() => ({ message: response.statusText })) as { message?: string }; + throw new Error(errorData.message || `HTTP ${response.status}`); } return response.json(); @@ -278,6 +278,8 @@ export function buildGraphEdge( id: connection.id, source: connection.fromUserId, target: connection.toUserId, + trustLevel: connection.trustLevel, + effectiveTrustLevel: connection.effectiveTrustLevel, isMutual: connection.isMutual, metadata: isOnEdge ? connection.metadata : undefined, isVisible: true, diff --git a/src/lib/networking/types.ts b/src/lib/networking/types.ts index 32f8075..0804f70 100644 --- a/src/lib/networking/types.ts +++ b/src/lib/networking/types.ts @@ -144,6 +144,7 @@ export interface GraphEdge { export interface NetworkGraph { nodes: GraphNode[]; edges: GraphEdge[]; + myConnections: string[]; // User IDs the current user is connected to } /** diff --git a/worker/networkingApi.ts b/worker/networkingApi.ts index 676cada..46edad5 100644 --- a/worker/networkingApi.ts +++ b/worker/networkingApi.ts @@ -185,7 +185,7 @@ export async function updateMyProfile(request: IRequest, env: Environment): Prom `).bind(userId, body.displayName || null, body.bio || null, body.avatarColor || null).run(); // Return updated profile - return getUserProfile({ ...request, params: { userId } } as IRequest, env); + return getUserProfile({ ...request, params: { userId } } as unknown as IRequest, env); } catch (error) { console.error('Update profile error:', error); return errorResponse('Failed to update profile', 500); @@ -712,10 +712,12 @@ export async function getNetworkGraph(request: IRequest, env: Environment): Prom const graphEdges: GraphEdge[] = (edges.results || []).map((e: any) => ({ id: e.id, - fromUserId: e.fromUserId, - toUserId: e.toUserId, - createdAt: e.createdAt, + source: e.fromUserId, + target: e.toUserId, + trustLevel: e.trustLevel || 'connected', + effectiveTrustLevel: e.isMutual ? (e.trustLevel || 'connected') : null, isMutual: !!e.isMutual, + isVisible: true, metadata: (e.fromUserId === userId || e.toUserId === userId) && (e.label || e.notes || e.color || e.strength) ? { label: e.label, notes: e.notes, diff --git a/worker/worker.ts b/worker/worker.ts index b710b9f..8a20e55 100644 --- a/worker/worker.ts +++ b/worker/worker.ts @@ -832,7 +832,7 @@ const router = AutoRouter({ // User search and profiles .get("/api/networking/users/search", searchUsers) - .get("/api/networking/users/me", (req, env) => getUserProfile({ ...req, params: { userId: req.headers.get('X-User-Id') || '' } } as IRequest, env)) + .get("/api/networking/users/me", (req, env) => getUserProfile({ ...req, params: { userId: req.headers.get('X-User-Id') || '' } } as unknown as IRequest, env)) .put("/api/networking/users/me", updateMyProfile) .get("/api/networking/users/:userId", getUserProfile)