From ab54afc1e0a2a583102e2db3f8a547d57f654007 Mon Sep 17 00:00:00 2001
From: nizune <9-nizune@users.noreply.gitlab.insrt.uk>
Date: Mon, 2 Aug 2021 12:22:39 +0200
Subject: [PATCH] Small update for desktop app

---
 .../navigation/left/ServerListSidebar.tsx     | 14 +++++
 src/pages/settings/GenericSettings.tsx        | 56 ++++++++++---------
 src/pages/settings/Settings.module.scss       | 25 ++++++++-
 3 files changed, 66 insertions(+), 29 deletions(-)

diff --git a/src/components/navigation/left/ServerListSidebar.tsx b/src/components/navigation/left/ServerListSidebar.tsx
index 3079fea..f3c8ba0 100644
--- a/src/components/navigation/left/ServerListSidebar.tsx
+++ b/src/components/navigation/left/ServerListSidebar.tsx
@@ -1,4 +1,5 @@
 import { Plus } from "@styled-icons/boxicons-regular";
+import { Compass } from "@styled-icons/boxicons-solid";
 import { observer } from "mobx-react-lite";
 import { useLocation, useParams } from "react-router-dom";
 import { RelationshipStatus } from "revolt-api/types/Users";
@@ -94,6 +95,10 @@ const ServerEntry = styled.div<{ active: boolean; home?: boolean }>`
     display: flex;
     align-items: center;
 
+    :focus {
+        outline: 3px solid blue;
+      }
+
     > div {
         height: 42px;
         padding-inline-start: 6px;
@@ -299,6 +304,15 @@ export const ServerListSidebar = observer(({ unreads, lastOpened }: Props) => {
                     }>
                     <Plus size={36} />
                 </IconButton>
+                {/*<IconButton
+                    onClick={() =>
+                        openScreen({
+                            id: "special_input",
+                            type: "create_server",
+                        })
+                    }>
+                    <Compass size={36} />
+                </IconButton>*/}
                 <PaintCounter small />
             </ServerList>
         </ServersBase>
diff --git a/src/pages/settings/GenericSettings.tsx b/src/pages/settings/GenericSettings.tsx
index c2b0dfe..d672a69 100644
--- a/src/pages/settings/GenericSettings.tsx
+++ b/src/pages/settings/GenericSettings.tsx
@@ -122,37 +122,40 @@ export function GenericSettings({
             )}
             {(!isTouchscreenDevice || typeof page === "undefined") && (
                 <div className={styles.sidebar}>
-                    <div className={styles.container}>
-                        {pages.map((entry, i) =>
-                            entry.hidden ? undefined : (
-                                <>
-                                    {entry.category && (
-                                        <Category
-                                            variant="uniform"
-                                            text={entry.category}
-                                        />
-                                    )}
-                                    <ButtonItem
-                                        active={
-                                            page === entry.id ||
-                                            (i === 0 &&
-                                                !isTouchscreenDevice &&
-                                                typeof page === "undefined")
-                                        }
-                                        onClick={() => switchPage(entry.id)}
-                                        compact>
-                                        {entry.icon} {entry.title}
-                                    </ButtonItem>
-                                    {entry.divider && <LineDivider />}
-                                </>
-                            ),
-                        )}
-                        {custom}
+                    <div className={styles.scrollbox}>
+                        <div className={styles.container}>
+                            {pages.map((entry, i) =>
+                                entry.hidden ? undefined : (
+                                    <>
+                                        {entry.category && (
+                                            <Category
+                                                variant="uniform"
+                                                text={entry.category}
+                                            />
+                                        )}
+                                        <ButtonItem
+                                            active={
+                                                page === entry.id ||
+                                                (i === 0 &&
+                                                    !isTouchscreenDevice &&
+                                                    typeof page === "undefined")
+                                            }
+                                            onClick={() => switchPage(entry.id)}
+                                            compact>
+                                            {entry.icon} {entry.title}
+                                        </ButtonItem>
+                                        {entry.divider && <LineDivider />}
+                                    </>
+                                ),
+                            )}
+                            {custom}
+                        </div>
                     </div>
                 </div>
             )}
             {(!isTouchscreenDevice || typeof page === "string") && (
                 <div className={styles.content}>
+                    {/*<div className={styles.scrollbox}>*/}
                     {!isTouchscreenDevice &&
                         !pages.find((x) => x.id === page && x.hideTitle) && (
                             <h1>
@@ -164,6 +167,7 @@ export function GenericSettings({
                             </h1>
                         )}
                     <Switch>{children}</Switch>
+                    {/*</div>*/}
                 </div>
             )}
             {!isTouchscreenDevice && (
diff --git a/src/pages/settings/Settings.module.scss b/src/pages/settings/Settings.module.scss
index 7dc73b2..7ca5058 100644
--- a/src/pages/settings/Settings.module.scss
+++ b/src/pages/settings/Settings.module.scss
@@ -83,6 +83,24 @@
     justify-content: center;
     background: var(--primary-background);
 
+    .scrollbox {
+        overflow: auto;
+        visibility: hidden;
+
+        transition: visibility 0.2s;
+    }
+
+    .container,
+    .scrollbox:hover,
+    .scrollbox:focus {
+    visibility: visible;
+    }
+    
+    ::-webkit-scrollbar-thumb {
+        background-clip: content-box;
+        border-top: 80px solid transparent;
+    }
+
     .sidebar {
         flex: 1 0 218px;
         display: flex;
@@ -93,11 +111,12 @@
 
         .container {
             width: 218px;
-            padding: 60px 8px;
+            padding: 80px 8px;
             height: fit-content;
             display: flex;
             gap: 2px;
             flex-direction: column;
+            visibility: visible;
         }
 
         .divider {
@@ -139,7 +158,7 @@
     .content {
         flex: 3;
         max-width: 740px;
-        padding: 60px 2em;
+        padding: 80px 2em;
         overflow-y: scroll;
         overflow-x: hidden;
 
@@ -186,7 +205,7 @@
     .action {
         flex: 1;
         flex-shrink: 0;
-        padding: 60px 8px;
+        padding: 80px 8px;
         color: var(--tertiary-background);
 
         &:after {
-- 
GitLab