import { __ } from "@wordpress/i18n";
import { useEffect } from "@wordpress/element";
import { select } from "@wordpress/data";
import { useBlockProps } from "@wordpress/block-editor";
import Inspector from "./inspector";
import { DOC_CONTENT_MARGIN, DOC_CONTENT_PADDING } from "./constants";
import { PrintIcon } from "../icons/PrintIcon";
import { typoPrefix_Doc_content } from "./typographyPrefixConstants";
import {
duplicateBlockIdFix,
generateTypographyStyles,
softMinifyCssStrings,
isCssExists,
generateDimensionsControlStyles,
} from "../../../util/helpers";
import { usePreviewDeviceType } from "../../../hooks";
const edit = ({ attributes, setAttributes, isSelected, clientId }) => {
const {
resOption,
blockId,
blockMeta,
doc_content_color,
} = attributes;
const blockProps = useBlockProps({
className: `bd-guten-block-main-parent-wrapper`,
});
const {
typoStylesDesktop: docContentTypoDesk,
typoStylesTab: docContentTypoTab,
typoStylesMobile: docContentTypoMob,
} = generateTypographyStyles({
prefixConstant: typoPrefix_Doc_content,
attributes: attributes,
});
const {
dimensionStylesDesktop: docContentPadDesk,
dimensionStylesTab: docContentPadTab,
dimensionStylesMobile: docContentPadMob,
} = generateDimensionsControlStyles({
controlName: DOC_CONTENT_PADDING,
styleFor: "padding",
attributes: attributes,
});
const {
dimensionStylesDesktop: docContentMarDesk,
dimensionStylesTab: docContentMarTab,
dimensionStylesMobile: docContentMarMob,
} = generateDimensionsControlStyles({
controlName: DOC_CONTENT_MARGIN,
styleFor: "margin",
attributes: attributes,
});
const desktopStyles = `
.betterdocs-entry-content.${blockId}{
${docContentPadDesk}
${docContentMarDesk}
}
.betterdocs-entry-content.${blockId} #betterdocs-single-content{
${docContentTypoDesk}
color:${doc_content_color};
}
`;
const tabStyles = `
.betterdocs-entry-content.${blockId}{
${docContentPadTab}
${docContentMarTab}
}
.betterdocs-entry-content.${blockId} #betterdocs-single-content{
${docContentTypoTab}
${docContentPadTab}
color:${doc_content_color};
}
`;
const mobileStyles = `
.betterdocs-entry-content.${blockId}{
${docContentPadMob}
${docContentMarMob}
}
.betterdocs-entry-content.${blockId} #betterdocs-single-content{
${docContentPadMob}
${docContentTypoMob}
color:${doc_content_color};
}
`;
// all css styles for large screen width (desktop/laptop) in strings ⬇
const desktopAllStyles = softMinifyCssStrings(`
${isCssExists(desktopStyles) ? desktopStyles : " "}
`);
// all css styles for Tab in strings ⬇
const tabAllStyles = softMinifyCssStrings(`
${isCssExists(tabStyles) ? tabStyles : " "}
`);
// all css styles for Mobile in strings ⬇
const mobileAllStyles = softMinifyCssStrings(`
${isCssExists(mobileStyles) ? mobileStyles : " "}
`);
useEffect(() => {
const styleObject = {
desktop: desktopAllStyles,
tab: tabAllStyles,
mobile: mobileAllStyles,
};
if (JSON.stringify(blockMeta) != JSON.stringify(styleObject)) {
setAttributes({ blockMeta: styleObject });
}
}, [attributes]);
/**
* resOption: __experimentalPreviewDeviceType()
* Set Responsive Option
*/
usePreviewDeviceType(setAttributes);
//Generate Unique Block ID For Every Block Instance
useEffect(() => {
const BLOCK_PREFIX = "single-doc-content";
duplicateBlockIdFix({
BLOCK_PREFIX,
blockId,
setAttributes,
select,
clientId,
});
});
return (
<>
{isSelected && (
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at augue a arcu efficitur interdum.