diff --git a/src/qqq/components/widgets/CompositeWidget.tsx b/src/qqq/components/widgets/CompositeWidget.tsx
index b345487..0834268 100644
--- a/src/qqq/components/widgets/CompositeWidget.tsx
+++ b/src/qqq/components/widgets/CompositeWidget.tsx
@@ -27,7 +27,7 @@ import WidgetBlock from "qqq/components/widgets/WidgetBlock";
import React from "react";
-interface CompositeData
+export interface CompositeData
{
blocks: BlockData[];
styleOverrides?: any;
diff --git a/src/qqq/components/widgets/blocks/BlockElementWrapper.tsx b/src/qqq/components/widgets/blocks/BlockElementWrapper.tsx
index dbfcce2..4ae8d7d 100644
--- a/src/qqq/components/widgets/blocks/BlockElementWrapper.tsx
+++ b/src/qqq/components/widgets/blocks/BlockElementWrapper.tsx
@@ -21,18 +21,19 @@
import {QWidgetMetaData} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QWidgetMetaData";
-import {Tooltip} from "@mui/material";
-import React, {ReactElement, useContext} from "react";
-import {Link} from "react-router-dom";
+import {Box, Tooltip} from "@mui/material";
import QContext from "QContext";
import HelpContent, {hasHelpContent} from "qqq/components/misc/HelpContent";
import {BlockData, BlockLink, BlockTooltip} from "qqq/components/widgets/blocks/BlockModels";
+import CompositeWidget from "qqq/components/widgets/CompositeWidget";
+import React, {ReactElement, useContext} from "react";
+import {Link} from "react-router-dom";
interface BlockElementWrapperProps
{
data: BlockData;
metaData: QWidgetMetaData;
- slot: string
+ slot: string;
linkProps?: any;
children: ReactElement;
}
@@ -47,16 +48,16 @@ export default function BlockElementWrapper({data, metaData, slot, linkProps, ch
let link: BlockLink;
let tooltip: BlockTooltip;
- if(slot)
+ if (slot)
{
link = data.linkMap && data.linkMap[slot.toUpperCase()];
- if(!link)
+ if (!link)
{
link = data.link;
}
tooltip = data.tooltipMap && data.tooltipMap[slot.toUpperCase()];
- if(!tooltip)
+ if (!tooltip)
{
tooltip = data.tooltip;
}
@@ -67,9 +68,9 @@ export default function BlockElementWrapper({data, metaData, slot, linkProps, ch
tooltip = data.tooltip;
}
- if(!tooltip)
+ if (!tooltip)
{
- const helpRoles = ["ALL_SCREENS"]
+ const helpRoles = ["ALL_SCREENS"];
///////////////////////////////////////////////////////////////////////////////////////////////
// the full keys in the helpContent table will look like: //
@@ -80,26 +81,39 @@ export default function BlockElementWrapper({data, metaData, slot, linkProps, ch
const key = data.blockId ? `${data.blockId},${slot}` : slot;
const showHelp = helpHelpActive || hasHelpContent(metaData?.helpContent?.get(key), helpRoles);
- if(showHelp)
+ if (showHelp)
{
const formattedHelpContent = ;
- tooltip = {title: formattedHelpContent, placement: "bottom"}
+ tooltip = {title: formattedHelpContent, placement: "bottom"};
}
}
let rs = children;
- if(link)
+ if (link)
{
- rs = {rs}
+ rs = {rs};
}
- if(tooltip)
+ if (tooltip)
{
- let placement = tooltip.placement ? tooltip.placement.toLowerCase() : "bottom"
+ let placement = tooltip.placement ? tooltip.placement.toLowerCase() : "bottom";
// @ts-ignore - placement possible values
- rs = {rs}
+ if (tooltip.blockData)
+ {
+ // @ts-ignore - special case for composite type block...
+ rs =
+
+
+ }>{rs};
+ }
+ else
+ {
+ // @ts-ignore - placement possible values
+ rs = {rs};
+ }
}
return (rs);
diff --git a/src/qqq/components/widgets/blocks/BlockModels.ts b/src/qqq/components/widgets/blocks/BlockModels.ts
index 22a7c1e..c29f77c 100644
--- a/src/qqq/components/widgets/blocks/BlockModels.ts
+++ b/src/qqq/components/widgets/blocks/BlockModels.ts
@@ -20,6 +20,7 @@
*/
import {QWidgetMetaData} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QWidgetMetaData";
+import {CompositeData} from "qqq/components/widgets/CompositeWidget";
export interface BlockData
@@ -29,8 +30,8 @@ export interface BlockData
tooltip?: BlockTooltip;
link?: BlockLink;
- tooltipMap?: {[slot: string]: BlockTooltip};
- linkMap?: {[slot: string]: BlockLink};
+ tooltipMap?: { [slot: string]: BlockTooltip };
+ linkMap?: { [slot: string]: BlockLink };
values: any;
styles?: any;
@@ -39,6 +40,7 @@ export interface BlockData
export interface BlockTooltip
{
+ blockData?: CompositeData;
title: string | JSX.Element;
placement: string;
}