Takayuki Tamura 4 лет назад
Родитель
Сommit
a82b1bb709

+ 35 - 1
packages/app/src/components/Sidebar/PageTree/Item.tsx

@@ -25,6 +25,37 @@ const markTarget = (children: ItemNode[], targetId: string): void => {
   return;
 };
 
+const ItemContol: FC = () => {
+  return (
+    <>
+      <button
+        type="button"
+        className="btn-link nav-link dropdown-toggle dropdown-toggle-no-caret border-0 rounded grw-btn-page-management py-0"
+        data-toggle="dropdown"
+      >
+        <i className="fa fa-ellipsis-v text-muted"></i>
+      </button>
+      <button
+        type="button"
+        className="btn-link nav-link dropdown-toggle dropdown-toggle-no-caret border-0 rounded grw-btn-page-management py-0"
+        data-toggle="dropdown"
+      >
+        <i className="fa fa-plus-circle text-muted"></i>
+      </button>
+    </>
+  );
+};
+
+const ItemCount: FC = () => {
+  return (
+    <>
+      <span className="badge badge-pill badge-light">
+        10
+      </span>
+    </>
+  );
+};
+
 const Item: FC<ItemProps> = (props: ItemProps) => {
   const { itemNode, isOpen: _isOpen = false } = props;
 
@@ -89,8 +120,11 @@ const Item: FC<ItemProps> = (props: ItemProps) => {
         <a href={page._id} className="flex-grow-1">
           <p className="grw-pagetree-title m-auto">{nodePath.basename(page.path as string) || '/'}</p>
         </a>
+        <div className="grw-pagetree-count">
+          <ItemCount />
+        </div>
         <div className="grw-pagetree-control">
-          Ctrl
+          <ItemContol />
         </div>
       </div>
       {

+ 28 - 3
packages/app/src/styles/_page-tree.scss

@@ -7,6 +7,14 @@
   .grw-pagetree-item {
     &:hover {
       opacity: 0.7;
+
+      .grw-pagetree-control {
+        display: flex;
+      }
+
+      .grw-pagetree-count {
+        display: none;
+      }
     }
 
     .grw-pagetree-button {
@@ -17,13 +25,30 @@
       }
     }
 
-    .grw-pagetree-title {
-      font-size: medium;
+    a {
+      width: 100%;
+      overflow: hidden;
+
+      .grw-pagetree-title {
+        overflow: hidden;
+        font-size: medium;
+        text-overflow: ellipsis;
+      }
     }
 
     .grw-pagetree-control {
+      display: none;
+    }
+
+    .grw-pagetree-count {
+      display: inline-block;
+
       &:hover {
-        display: inline-block;
+        display: none;
+      }
+
+      span {
+        padding: 0.3rem 1rem;
       }
     }
   }