chore: Quick refactor to usePolicy hook (#3161)

This commit is contained in:
Tom Moor
2022-02-23 21:33:18 -08:00
committed by GitHub
parent 4c95674ef0
commit a3b8e7a65e
29 changed files with 90 additions and 64 deletions

View File

@@ -7,7 +7,7 @@ import { light } from "@shared/theme";
import Document from "~/models/Document";
import ContentEditable from "~/components/ContentEditable";
import Star, { AnimatedStar } from "~/components/Star";
import useStores from "~/hooks/useStores";
import usePolicy from "~/hooks/usePolicy";
import { isModKey } from "~/utils/keyboard";
type Props = {
@@ -43,8 +43,7 @@ const EditableTitle = React.forwardRef(
}: Props,
ref: React.RefObject<HTMLSpanElement>
) => {
const { policies } = useStores();
const can = policies.abilities(document.id);
const can = usePolicy(document.id);
const normalizedTitle =
!value && readOnly ? document.titleWithDefault : value;

View File

@@ -21,6 +21,7 @@ import DocumentBreadcrumb from "~/components/DocumentBreadcrumb";
import Header from "~/components/Header";
import Tooltip from "~/components/Tooltip";
import useMobile from "~/hooks/useMobile";
import usePolicy from "~/hooks/usePolicy";
import useStores from "~/hooks/useStores";
import DocumentMenu from "~/menus/DocumentMenu";
import NewChildDocumentMenu from "~/menus/NewChildDocumentMenu";
@@ -73,7 +74,7 @@ function DocumentHeader({
headings,
}: Props) {
const { t } = useTranslation();
const { ui, policies, auth } = useStores();
const { ui, auth } = useStores();
const { resolvedTheme } = ui;
const { team } = auth;
const isMobile = useMobile();
@@ -97,7 +98,7 @@ function DocumentHeader({
}, [onSave]);
const { isDeleted, isTemplate } = document;
const can = policies.abilities(document.id);
const can = usePolicy(document.id);
const canToggleEmbeds = team?.documentEmbeds;
const canEdit = can.update && !isEditing;
const toc = (

View File

@@ -15,6 +15,7 @@ import Notice from "~/components/Notice";
import Switch from "~/components/Switch";
import Text from "~/components/Text";
import useKeyDown from "~/hooks/useKeyDown";
import usePolicy from "~/hooks/usePolicy";
import useStores from "~/hooks/useStores";
import useToasts from "~/hooks/useToasts";
@@ -34,13 +35,13 @@ function SharePopover({
visible,
}: Props) {
const { t } = useTranslation();
const { policies, shares, auth } = useStores();
const { shares, auth } = useStores();
const { showToast } = useToasts();
const [isCopied, setIsCopied] = React.useState(false);
const timeout = React.useRef<ReturnType<typeof setTimeout>>();
const buttonRef = React.useRef<HTMLButtonElement>(null);
const can = policies.abilities(share ? share.id : "");
const documentAbilities = policies.abilities(document.id);
const can = usePolicy(share ? share.id : "");
const documentAbilities = usePolicy(document.id);
const canPublish =
can.update &&
!document.isTemplate &&