fix: Templatize spuriously appearing in collection menu

This commit is contained in:
Tom Moor
2024-06-24 18:08:30 -04:00
parent 142493ddcc
commit 07a805696d
5 changed files with 43 additions and 25 deletions

View File

@@ -4,6 +4,7 @@ import {
PadlockIcon,
PlusIcon,
SearchIcon,
ShapesIcon,
StarredIcon,
TrashIcon,
UnstarredIcon,
@@ -21,7 +22,7 @@ import { createAction } from "~/actions";
import { CollectionSection } from "~/actions/sections";
import { setPersistedState } from "~/hooks/usePersistedState";
import history from "~/utils/history";
import { searchPath } from "~/utils/routeHelpers";
import { newTemplatePath, searchPath } from "~/utils/routeHelpers";
const ColorCollectionIcon = ({ collection }: { collection: Collection }) => (
<DynamicCollectionIcon collection={collection} />
@@ -220,6 +221,27 @@ export const deleteCollection = createAction({
},
});
export const createTemplate = createAction({
name: ({ t }) => t("New template"),
analyticsName: "New template",
section: CollectionSection,
icon: <ShapesIcon />,
keywords: "new create template",
visible: ({ activeCollectionId, stores }) =>
!!(
!!activeCollectionId &&
stores.policies.abilities(activeCollectionId).update
),
perform: ({ activeCollectionId, event }) => {
if (!activeCollectionId) {
return;
}
event?.preventDefault();
event?.stopPropagation();
history.push(newTemplatePath(activeCollectionId));
},
});
export const rootCollectionActions = [
openCollection,
createCollection,

View File

@@ -56,7 +56,6 @@ import {
documentPath,
urlify,
trashPath,
newTemplatePath,
} from "~/utils/routeHelpers";
export const openDocument = createAction({
@@ -673,37 +672,34 @@ export const importDocument = createAction({
},
});
export const createTemplate = createAction({
name: ({ t, activeDocumentId }) =>
activeDocumentId ? t("Templatize") : t("New template"),
export const createTemplateFromDocument = createAction({
name: ({ t }) => t("Templatize"),
analyticsName: "Templatize document",
section: DocumentSection,
icon: <ShapesIcon />,
keywords: "new create template",
visible: ({ activeCollectionId, activeDocumentId, stores }) => {
if (activeDocumentId) {
const document = stores.documents.get(activeDocumentId);
if (document?.isTemplate || !document?.isActive) {
return false;
}
const document = activeDocumentId
? stores.documents.get(activeDocumentId)
: undefined;
if (document?.isTemplate || !document?.isActive) {
return false;
}
return !!(
!!activeCollectionId &&
stores.policies.abilities(activeCollectionId).update
);
},
perform: ({ activeCollectionId, activeDocumentId, stores, t, event }) => {
perform: ({ activeDocumentId, stores, t, event }) => {
if (!activeDocumentId) {
return;
}
event?.preventDefault();
event?.stopPropagation();
if (activeDocumentId) {
stores.dialogs.openModal({
title: t("Create template"),
content: <DocumentTemplatizeDialog documentId={activeDocumentId} />,
});
} else if (activeCollectionId) {
history.push(newTemplatePath(activeCollectionId));
}
stores.dialogs.openModal({
title: t("Create template"),
content: <DocumentTemplatizeDialog documentId={activeDocumentId} />,
});
},
});
@@ -987,7 +983,7 @@ export const rootDocumentActions = [
openDocument,
archiveDocument,
createDocument,
createTemplate,
createTemplateFromDocument,
deleteDocument,
importDocument,
downloadDocument,

View File

@@ -27,8 +27,8 @@ import {
starCollection,
unstarCollection,
searchInCollection,
createTemplate,
} from "~/actions/definitions/collections";
import { createTemplate } from "~/actions/definitions/documents";
import useActionContext from "~/hooks/useActionContext";
import useCurrentTeam from "~/hooks/useCurrentTeam";
import usePolicy from "~/hooks/usePolicy";

View File

@@ -21,7 +21,7 @@ import Switch from "~/components/Switch";
import { actionToMenuItem } from "~/actions";
import {
pinDocument,
createTemplate,
createTemplateFromDocument,
subscribeDocument,
unsubscribeDocument,
moveDocument,
@@ -284,7 +284,7 @@ function DocumentMenu({
},
actionToMenuItem(createNestedDocument, context),
actionToMenuItem(importDocument, context),
actionToMenuItem(createTemplate, context),
actionToMenuItem(createTemplateFromDocument, context),
actionToMenuItem(duplicateDocument, context),
actionToMenuItem(publishDocument, context),
actionToMenuItem(unpublishDocument, context),

View File

@@ -13,6 +13,7 @@
"Unstar": "Unstar",
"Delete": "Delete",
"Delete collection": "Delete collection",
"New template": "New template",
"Copy ID": "Copy ID",
"Clear IndexedDB cache": "Clear IndexedDB cache",
"IndexedDB cache cleared": "IndexedDB cache cleared",
@@ -60,7 +61,6 @@
"Print document": "Print document",
"Import document": "Import document",
"Templatize": "Templatize",
"New template": "New template",
"Create template": "Create template",
"Open random document": "Open random document",
"Search documents for \"{{searchQuery}}\"": "Search documents for \"{{searchQuery}}\"",