From 64503b72817687f1328e2f10c434e616b10c2acd Mon Sep 17 00:00:00 2001 From: shinya Date: Tue, 19 Aug 2025 13:57:21 +0200 Subject: [PATCH] fix scrooling users issue and added some fixes --- configs/icon.png | Bin 0 -> 10854 bytes .../servers/default/users/bob/messages.json | 49 +++++++++--------- examples/config.json | 5 ++ .../config => examples}/configuration.go | 2 +- internal/tui/layout.go | 1 + internal/tui/sidebar.go | 10 ++-- 6 files changed, 36 insertions(+), 31 deletions(-) create mode 100644 configs/icon.png create mode 100644 examples/config.json rename {internal/config => examples}/configuration.go (93%) diff --git a/configs/icon.png b/configs/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d9df9206d60ba95a9bfcaa76a15c3d82ad4abbec GIT binary patch literal 10854 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 khyo#hC8rnK3GM2G{?Dx*O