From 791be77867a7f3564b6602a7e3e636b5bc25ac14 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sat, 18 Dec 2021 11:14:17 -0800 Subject: [PATCH] feat: Add '+' button to create new doc in sidebar (#2864) --- .../Sidebar/components/DocumentLink.tsx | 22 ++++++++++++++++++- shared/i18n/locales/en_US/translation.json | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/components/Sidebar/components/DocumentLink.tsx b/app/components/Sidebar/components/DocumentLink.tsx index f2258e545..0d25abbf0 100644 --- a/app/components/Sidebar/components/DocumentLink.tsx +++ b/app/components/Sidebar/components/DocumentLink.tsx @@ -1,17 +1,21 @@ import { observer } from "mobx-react"; +import { PlusIcon } from "outline-icons"; import * as React from "react"; import { useDrag, useDrop } from "react-dnd"; import { useTranslation } from "react-i18next"; +import { Link } from "react-router-dom"; import styled from "styled-components"; import { MAX_TITLE_LENGTH } from "@shared/constants"; import { sortNavigationNodes } from "@shared/utils/collections"; import Collection from "~/models/Collection"; import Document from "~/models/Document"; import Fade from "~/components/Fade"; +import NudeButton from "~/components/NudeButton"; import useBoolean from "~/hooks/useBoolean"; import useStores from "~/hooks/useStores"; import DocumentMenu from "~/menus/DocumentMenu"; import { NavigationNode } from "~/types"; +import { newDocumentPath } from "~/utils/routeHelpers"; import Disclosure from "./Disclosure"; import DropCursor from "./DropCursor"; import DropToImport from "./DropToImport"; @@ -255,6 +259,8 @@ function DocumentLink( (activeDocument?.id === node.id ? activeDocument.title : node.title) || t("Untitled"); + const can = policies.abilities(node.id); + return ( <> @@ -302,8 +308,22 @@ function DocumentLink( isDraft={isDraft} ref={ref} menu={ - document && !isMoving && !isEditing ? ( + document && + !isMoving && + !isEditing && + !isDraggingAnyDocument ? ( + {can.createChildDocument && ( + + + + )}