diff --git a/Spike/Spike.csproj b/Spike/Spike.csproj new file mode 100644 index 0000000..64e34a8 --- /dev/null +++ b/Spike/Spike.csproj @@ -0,0 +1,8 @@ + + + Exe + net8.0 + enable + enable + + diff --git a/src/Predictalytics.Api/Endpoints/TraderEndpoints.cs b/src/Predictalytics.Api/Endpoints/TraderEndpoints.cs index 68d9360..6dbc75c 100644 --- a/src/Predictalytics.Api/Endpoints/TraderEndpoints.cs +++ b/src/Predictalytics.Api/Endpoints/TraderEndpoints.cs @@ -9,8 +9,8 @@ public static class TraderEndpoints { var group = app.MapGroup("/api/traders").WithTags("Traders"); - group.MapGet("/", async (IAnalyticsService svc, int? skip, int? take, string? platform, CancellationToken ct) => - Results.Ok(await svc.GetTradersAsync(skip ?? 0, take ?? 50, platform, ct))); + group.MapGet("/", async (IAnalyticsService svc, int? skip, int? take, string? platform, bool? highlyCopyable, CancellationToken ct) => + Results.Ok(await svc.GetTradersAsync(skip ?? 0, take ?? 50, platform, highlyCopyable ?? false, ct))); group.MapGet("/{id:int}", async (int id, IAnalyticsService svc, CancellationToken ct) => { diff --git a/src/Predictalytics.Api/wwwroot/css/style.css b/src/Predictalytics.Api/wwwroot/css/style.css index f0253f9..e4eeb33 100644 --- a/src/Predictalytics.Api/wwwroot/css/style.css +++ b/src/Predictalytics.Api/wwwroot/css/style.css @@ -437,6 +437,19 @@ body { .detail-grid { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: start; } .detail-sidebar { padding: 24px; } +.detail-main { min-width: 0; } +.trader-menubar { display: flex; justify-content: space-between; align-items: center; background: var(--bg-surface); padding: 16px 24px; border-radius: 8px; border: 1px solid var(--border); margin-bottom: 24px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); } +.trader-menubar-left { display: flex; align-items: center; gap: 16px; } +.trader-menubar-right { display: flex; gap: 12px; } +.menubar-divider { width: 1px; height: 24px; background: var(--border); } +.btn-outline { background: var(--bg-input); color: var(--text); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; font-weight: 500; transition: all 0.2s; } +.btn-outline:hover { background: var(--border); } +.btn-primary { background: var(--primary); color: #000; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; transition: all 0.2s; } +.btn-primary:hover { filter: brightness(1.1); } +.tabs-nav { display: flex; gap: 12px; margin-bottom: 24px; border-bottom: 1px solid var(--border); padding-bottom: 8px; flex-wrap: wrap; align-items: center; } +.btn-tab { white-space: nowrap; padding: 8px 16px; border-radius: 6px; font-size: 14px; transition: background 0.2s; } +.btn-tab:hover { background: var(--bg-input); } +.btn-tab.active { background: var(--bg-input); color: var(--primary) !important; border-bottom: 2px solid var(--primary) !important; } .stat-group { margin-bottom: 16px; } .stat-label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--text-muted); letter-spacing: 0.5px; margin-bottom: 4px; } .stat-value { font-size: 15px; font-weight: 600; color: var(--text-primary); } diff --git a/src/Predictalytics.Api/wwwroot/index.html b/src/Predictalytics.Api/wwwroot/index.html index 5d5417b..75e69d1 100644 --- a/src/Predictalytics.Api/wwwroot/index.html +++ b/src/Predictalytics.Api/wwwroot/index.html @@ -127,7 +127,12 @@
-

Traders

+
+

Traders

+ +
Add Trader: