Skip to content

Commit 1abe7f4

Browse files
committed
[edit] darken terminal background, refactor pagination rendering with ANSI colors, code cleanup
1 parent 47e6d87 commit 1abe7f4

2 files changed

Lines changed: 22 additions & 13 deletions

File tree

src/EtcdTerminal.App/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Simplify.DI;
44
using Spectre.Console;
55

6-
const string SetBgCommand = "\x1b]11;#100b09\x07";
6+
const string SetBgCommand = "\x1b]11;#0a0a0a\x07";
77
const string ResetBgCommand = "\x1b]111\x07";
88
const string PressAnyKeyRestart = "\n[grey]Press any key to restart...[/]";
99

src/EtcdTerminal.App/Screens/KeyBrowseScreen.cs

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,7 @@ async Task<List<EtcdKeyValue>> LoadAllKeysAsync()
8484
var user = await _etcdClient.GetUserAsync(username);
8585

8686
if (user is null || user.Roles.Count == 0 || user.Roles.Contains("root"))
87-
{
8887
_allKeys = await LoadAllKeysAsync();
89-
}
9088
else
9189
{
9290
var keys = new List<EtcdKeyValue>();
@@ -236,15 +234,20 @@ private void RenderSearchBar()
236234
Console.WriteLine();
237235

238236
Console.Write(bgSeq);
237+
239238
if (_searchQuery.Length == 0)
240239
AnsiConsole.Markup("[grey] \U0001f50d Type to search keys...[/]");
241240
else
242241
AnsiConsole.Markup($" \U0001f50d [white]{Markup.Escape(_searchQuery)}[/]");
242+
243243
_searchEndCol = Console.CursorLeft;
244244
_searchBarRow = Console.CursorTop;
245+
245246
var remaining = Console.WindowWidth - _searchEndCol;
247+
246248
if (remaining > 0)
247249
Console.Write(bgSeq + new string(' ', remaining) + resetSeq);
250+
248251
Console.WriteLine();
249252

250253
Console.Write(bgSeq + fill + resetSeq);
@@ -284,6 +287,8 @@ private void RenderKeyList()
284287
private void RenderPagination()
285288
{
286289
var bgSeq = "\x1b[48;2;27;28;30m";
290+
var greySeq = "\x1b[38;2;128;128;128m";
291+
var whiteSeq = "\x1b[38;2;255;255;255m";
287292
var resetSeq = "\x1b[0m";
288293
var fill = new string(' ', Console.WindowWidth);
289294

@@ -294,13 +299,13 @@ private void RenderPagination()
294299
Console.Write(bgSeq + fill + resetSeq);
295300
Console.WriteLine();
296301

297-
Console.Write(bgSeq);
298-
AnsiConsole.Markup($"[grey] Page {currentPageLabel}/{totalPages}{totalKeys} total keys[/]");
302+
Console.Write(bgSeq + greySeq + " Page " + whiteSeq + currentPageLabel + "/" + totalPages + greySeq + " • " + whiteSeq + totalKeys + greySeq + " total keys" + resetSeq);
299303
var remaining = Console.WindowWidth - Console.CursorLeft;
304+
300305
if (remaining > 0)
301306
Console.Write(bgSeq + new string(' ', remaining) + resetSeq);
302-
Console.WriteLine();
303307

308+
Console.WriteLine();
304309
Console.Write(bgSeq + fill + resetSeq);
305310
}
306311

@@ -328,7 +333,9 @@ private async Task EditKeyAsync()
328333

329334
AnsiConsole.Clear();
330335
Header.Render();
336+
331337
var savedTop = Console.CursorTop;
338+
332339
StatusBar.Render(_config);
333340
Console.CursorTop = savedTop;
334341
Console.CursorLeft = 0;
@@ -345,20 +352,21 @@ private async Task EditKeyAsync()
345352

346353
AnsiConsole.Clear();
347354
Header.Render();
355+
348356
savedTop = Console.CursorTop;
357+
349358
StatusBar.Render(_config);
350359
Console.CursorTop = savedTop;
351360
Console.CursorLeft = 0;
352361

353362
if (result)
354363
{
355364
AnsiConsole.MarkupLine(KeyUpdated);
365+
356366
await ReloadAsync();
357367
}
358368
else
359-
{
360369
AnsiConsole.MarkupLine(CouldNotUpdateKey);
361-
}
362370

363371
Console.WriteLine();
364372
AnsiConsole.Markup(Prompt.PressAnyKeyMarkup);
@@ -372,7 +380,9 @@ private async Task DeleteKeyAsync()
372380

373381
AnsiConsole.Clear();
374382
Header.Render();
383+
375384
var savedTop = Console.CursorTop;
385+
376386
StatusBar.Render(_config);
377387
Console.CursorTop = savedTop;
378388
Console.CursorLeft = 0;
@@ -388,20 +398,21 @@ private async Task DeleteKeyAsync()
388398

389399
AnsiConsole.Clear();
390400
Header.Render();
401+
391402
savedTop = Console.CursorTop;
403+
392404
StatusBar.Render(_config);
393405
Console.CursorTop = savedTop;
394406
Console.CursorLeft = 0;
395407

396408
if (result)
397409
{
398410
AnsiConsole.MarkupLine(KeyDeleted);
411+
399412
await ReloadAsync();
400413
}
401414
else
402-
{
403415
AnsiConsole.MarkupLine(KeyCouldNotBeDeleted);
404-
}
405416

406417
Console.WriteLine();
407418
AnsiConsole.Markup(Prompt.PressAnyKeyMarkup);
@@ -423,9 +434,7 @@ private async Task ReloadAsync()
423434
private void ApplyFilter()
424435
{
425436
if (string.IsNullOrEmpty(_searchQuery))
426-
{
427437
_filteredKeys = [.. _allKeys];
428-
}
429438
else
430439
{
431440
var query = _searchQuery;
@@ -444,7 +453,7 @@ private List<EtcdKeyValue> GetCurrentPageKeys()
444453
{
445454
var start = _currentPage * PageSize;
446455

447-
return _filteredKeys.Skip(start).Take(PageSize).ToList();
456+
return [.. _filteredKeys.Skip(start).Take(PageSize)];
448457
}
449458

450459
private EtcdKeyValue? GetCurrentPageKey()

0 commit comments

Comments
 (0)