From 609135b800c48cc41300ad9659b02671fcec7e59 Mon Sep 17 00:00:00 2001 From: Morten Moe Date: Tue, 16 Jul 2024 13:13:17 +0200 Subject: [PATCH] Fixes bug not being able to omit heading1 Build Removed build in package json --- src/controls/MenuSelectHeading.tsx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/controls/MenuSelectHeading.tsx b/src/controls/MenuSelectHeading.tsx index e6970c4..c847dd2 100644 --- a/src/controls/MenuSelectHeading.tsx +++ b/src/controls/MenuSelectHeading.tsx @@ -185,12 +185,6 @@ export default function MenuSelectHeading({ const isCurrentlyParagraphOrHeading = selectedValue !== ""; const canSetParagraph = !!editor?.can().setParagraph(); - // We have to pass a level when running `can`, so this is just an arbitrary - // one. And we have to check `currentLevel` to prevent all other heading - // levels from being disabled when Heading 1 is selected (see - // https://github.com/sjdemartini/mui-tiptap/issues/197). - const canSetHeading = - currentLevel === 1 || !!editor?.can().setHeading({ level: 1 }); // Figure out which settings the user has enabled with the heading extension const enabledHeadingLevels: Set = useMemo(() => { @@ -200,6 +194,17 @@ export default function MenuSelectHeading({ return new Set(headingExtension?.options.levels ?? []); }, [editor]); + // We have to pass a level when running `can`, so this is just an arbitrary + // one that is enabled. And we have to check `currentLevel` to prevent all other heading + // levels from being disabled when Heading 1 is selected (see + // https://github.com/sjdemartini/mui-tiptap/issues/197). + const firstEnabledHeading = enabledHeadingLevels.values().next() + .value as Level; + const canSetHeading = + enabledHeadingLevels.size > 0 && + (currentLevel === firstEnabledHeading || + !!editor?.can().setHeading({ level: firstEnabledHeading })); + return ( // We currently have to specify that the value is of type // `HeadingOptionValue | ""` rather than just `HeadingOptionValue` due to