From 6a3aa1322354aef6f70ce89308806b24f2b1edc0 Mon Sep 17 00:00:00 2001 From: talksik Date: Wed, 18 May 2022 08:08:47 -0500 Subject: [PATCH] playing aroudn with scroll and overflow in the sidepanel --- .../src/providers/TerminalProvider.tsx | 20 +++++++------- packages/desktop/src/styles/index.css | 24 ++++++++++++++++- packages/desktop/src/tree/electronApp.tsx | 6 ++--- .../protected/terminal/panels/SidePanel.tsx | 26 +++++++++++-------- 4 files changed, 50 insertions(+), 26 deletions(-) diff --git a/packages/desktop/src/providers/TerminalProvider.tsx b/packages/desktop/src/providers/TerminalProvider.tsx index 88b6ba7..714ec58 100644 --- a/packages/desktop/src/providers/TerminalProvider.tsx +++ b/packages/desktop/src/providers/TerminalProvider.tsx @@ -51,7 +51,7 @@ type BroadcastersMap = { [lineId: string]: string[]; }; -interface IRealTimeRoomProvider { +interface ITerminalProvider { roomsMap: LineIdToMasterLine; selectedLineId?: string; @@ -63,7 +63,7 @@ interface IRealTimeRoomProvider { handleShowNewChannelForm?: (showOrHide: 'show' | 'hide') => void; } -const RealTimeRoomContext = React.createContext({ +const TerminalContext = React.createContext({ roomsMap: {}, showNewChannelForm: false, @@ -110,7 +110,7 @@ const RealTimeRoomContext = React.createContext({ // TODO: many of this can be done in a HOC like but it doesn't matter, they both just // re-render, just make sure to pass in lighter props to children like main panel or lineRow -export function RealTimeRoomProvider({ children }: { children: React.ReactChild }) { +export function TerminalProvider({ children }: { children: React.ReactChild }) { const { rooms } = useRooms(); const { user } = useAuth(); const { $ws } = useSockets(); @@ -348,7 +348,7 @@ export function RealTimeRoomProvider({ children }: { children: React.ReactChild useKeyPressEvent('Escape', clearMind); return ( - -
-
- +
+ - {desktopMode === 'mainApp' && } -
+ {desktopMode === 'mainApp' && }
{children} - + ); } export default function useTerminalProvider() { - return useContext(RealTimeRoomContext); + return useContext(TerminalContext); } diff --git a/packages/desktop/src/styles/index.css b/packages/desktop/src/styles/index.css index 6b846bd..e04f61c 100644 --- a/packages/desktop/src/styles/index.css +++ b/packages/desktop/src/styles/index.css @@ -11,7 +11,9 @@ body { } #root { - @apply flex flex-col flex-1; + height: inherit; + width: inherit; + display: flex; padding: 0 !important; font-family: 'IBM Plex Sans', sans-serif; } @@ -47,3 +49,23 @@ button { .ant-modal-footer { padding: 0 !important; } + +/* custom scrollbar */ +::-webkit-scrollbar { + width: 20px; +} + +::-webkit-scrollbar-track { + background-color: transparent; +} + +::-webkit-scrollbar-thumb { + background-color: #d6dee1; + border-radius: 20px; + border: 6px solid transparent; + background-clip: content-box; +} + +::-webkit-scrollbar-thumb:hover { + background-color: #a8bbbf; +} diff --git a/packages/desktop/src/tree/electronApp.tsx b/packages/desktop/src/tree/electronApp.tsx index 41481c0..52f2383 100644 --- a/packages/desktop/src/tree/electronApp.tsx +++ b/packages/desktop/src/tree/electronApp.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Toaster } from 'react-hot-toast'; import { RoomsProvider } from '../providers/RoomsProvider'; -import { RealTimeRoomProvider } from '../providers/TerminalProvider'; +import { TerminalProvider } from '../providers/TerminalProvider'; import { AuthProvider } from '../providers/AuthProvider'; import { ElectronProvider } from '../providers/ElectronProvider'; import { SocketProvider } from '../providers/SocketProvider'; @@ -16,9 +16,9 @@ export default function ElectronApp() { - + <> - + diff --git a/packages/desktop/src/tree/protected/terminal/panels/SidePanel.tsx b/packages/desktop/src/tree/protected/terminal/panels/SidePanel.tsx index bfc5270..e0e8e2e 100644 --- a/packages/desktop/src/tree/protected/terminal/panels/SidePanel.tsx +++ b/packages/desktop/src/tree/protected/terminal/panels/SidePanel.tsx @@ -49,7 +49,10 @@ export default function SidePanel() { }, [handleShowNewChannelForm]); return ( -
+
@@ -96,7 +99,7 @@ export default function SidePanel() { )} {/* rest of the lines */} -
+
{initialRoomsFetch.loading ? ( ) : ( @@ -112,17 +115,18 @@ export default function SidePanel() { )}
+ {/* user control panel */}
{ - // - }} - onClick={() => { - console.log('opening main app'); - }} - role="presentation" + className="bg-gray-100 + border-t border-t-gray-200 p-4 shadow-2xl z-50 w-full" > - +
);