From 435a59e647ff37d01966b7627e94ade80f7bce77 Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Mon, 16 Mar 2026 23:10:27 +0100 Subject: [PATCH] Improve mod tools UI layout and usability - Fix icon alignment using flexbox instead of absolute positioning - Add active state indicators on buttons when sub-panels are open - Add min-width constraints to prevent cramped layouts - Improve user button with placeholder text and truncated username - Improve room info panel with better spacing, clickable owner, colored owner status - Improve chatlog with scrollable container, alternating row colors, compact headers - Clean up room info header and room name display --- src/components/mod-tools/ModToolsView.tsx | 28 +++++++----- .../mod-tools/views/chatlog/ChatlogView.tsx | 19 ++++---- .../views/room/ModToolsChatlogView.tsx | 6 +-- .../mod-tools/views/room/ModToolsRoomView.tsx | 45 ++++++++++--------- 4 files changed, 54 insertions(+), 44 deletions(-) diff --git a/src/components/mod-tools/ModToolsView.tsx b/src/components/mod-tools/ModToolsView.tsx index 2d7c5c0..d42381d 100644 --- a/src/components/mod-tools/ModToolsView.tsx +++ b/src/components/mod-tools/ModToolsView.tsx @@ -117,23 +117,31 @@ export const ModToolsView: FC<{}> = props => return () => RemoveLinkEventTracker(linkTracker); }, [ openRoomInfo, closeRoomInfo, toggleRoomInfo, openRoomChatlog, closeRoomChatlog, toggleRoomChatlog, openUserInfo, closeUserInfo, toggleUserInfo, openUserChatlog, closeUserChatlog, toggleUserChatlog ]); + const isRoomInfoOpen = currentRoomId > 0 && openRooms.includes(currentRoomId); + const isRoomChatlogOpen = currentRoomId > 0 && openRoomChatlogs.includes(currentRoomId); + const isUserInfoOpen = selectedUser && openUserInfos.includes(selectedUser.userId); + return ( <> { isVisible && - + setIsVisible(false) } /> - - - - - } diff --git a/src/components/mod-tools/views/chatlog/ChatlogView.tsx b/src/components/mod-tools/views/chatlog/ChatlogView.tsx index 3aa8650..63e5201 100644 --- a/src/components/mod-tools/views/chatlog/ChatlogView.tsx +++ b/src/components/mod-tools/views/chatlog/ChatlogView.tsx @@ -46,14 +46,11 @@ export const ChatlogView: FC = props => const RoomInfo = (props: { roomId: number, roomName: string }) => { return ( - -
- Room name: - { props.roomName } -
-
- - + + { props.roomName } +
+ +
); @@ -63,7 +60,7 @@ export const ChatlogView: FC = props => <> - +
Time
User
Message
@@ -77,8 +74,8 @@ export const ChatlogView: FC = props => { row.isRoomInfo && } { !row.isRoomInfo && - - { row.timestamp } + + { row.timestamp } CreateLinkEvent(`mod-tools/open-user-info/${ row.habboId }`) }>{ row.username } { row.message } } diff --git a/src/components/mod-tools/views/room/ModToolsChatlogView.tsx b/src/components/mod-tools/views/room/ModToolsChatlogView.tsx index 394633d..c42320d 100644 --- a/src/components/mod-tools/views/room/ModToolsChatlogView.tsx +++ b/src/components/mod-tools/views/room/ModToolsChatlogView.tsx @@ -33,9 +33,9 @@ export const ModToolsChatlogView: FC = props => if(!roomChatlog) return null; return ( - - - + + + { roomChatlog && } diff --git a/src/components/mod-tools/views/room/ModToolsRoomView.tsx b/src/components/mod-tools/views/room/ModToolsRoomView.tsx index 5793ea7..37d9fc5 100644 --- a/src/components/mod-tools/views/room/ModToolsRoomView.tsx +++ b/src/components/mod-tools/views/room/ModToolsRoomView.tsx @@ -69,47 +69,52 @@ export const ModToolsRoomView: FC = props => }, [ roomId, infoRequested, setInfoRequested ]); return ( - - onCloseClick() } /> - + + onCloseClick() } /> + + { name && +
+ { name } +
+ }
- -
- Room Owner: - { ownerName } + +
+ Owner: + CreateLinkEvent(`mod-tools/open-user-info/${ ownerId }`) }>{ ownerName }
-
- Users in room: +
+ Users in room: { usersInRoom }
-
- Owner in room: - { ownerInRoom ? 'Yes' : 'No' } +
+ Owner here: + { ownerInRoom ? 'Yes' : 'No' }
-
+
-
+
setKickUsers(event.target.checked) } /> Kick everyone out
-
+
setLockRoom(event.target.checked) } /> Enable the doorbell
-
+
setChangeRoomName(event.target.checked) } /> Change room name
- -
- - + +
+ +