diff --git a/src/Blocks/EmbedEEATableauBlock/Edit.jsx b/src/Blocks/EmbedEEATableauBlock/Edit.jsx index 320cc52..be6df3e 100644 --- a/src/Blocks/EmbedEEATableauBlock/Edit.jsx +++ b/src/Blocks/EmbedEEATableauBlock/Edit.jsx @@ -4,11 +4,16 @@ import { SidebarPortal } from '@plone/volto/components'; import { getContent } from '@plone/volto/actions'; import View from './View'; import Schema from './schema'; + +import { BlockStyleWrapperEdit } from '@eeacms/volto-block-style/BlockStyleWrapper'; +import cx from 'classnames'; + import { connect } from 'react-redux'; import { compose } from 'redux'; const Edit = (props) => { - const { data, block, onChangeBlock, id } = props; + const { block, onChangeBlock, id } = props; + const data = React.useMemo(() => props.data || {}, [props.data]); const schema = React.useMemo(() => Schema(props), [props]); React.useEffect(() => { @@ -21,8 +26,21 @@ const Edit = (props) => { }, [block, data, onChangeBlock]); return ( - <> - + + { formData={data} /> - + ); }; @@ -51,4 +69,4 @@ export default compose( getContent, }, ), -)(Edit); +)(React.memo(Edit)); diff --git a/src/Blocks/EmbedEEATableauBlock/View.jsx b/src/Blocks/EmbedEEATableauBlock/View.jsx index 08defed..c3f8862 100644 --- a/src/Blocks/EmbedEEATableauBlock/View.jsx +++ b/src/Blocks/EmbedEEATableauBlock/View.jsx @@ -1,6 +1,10 @@ import React from 'react'; import ConnectedTableau from '../../ConnectedTableau/ConnectedTableau'; import { Sources } from '../../Sources'; +import { PrivacyProtection } from '@eeacms/volto-embed'; + +import { StyleWrapperView } from '@eeacms/volto-block-style/StyleWrapper'; +import cx from 'classnames'; import { getContent } from '@plone/volto/actions'; @@ -8,7 +12,8 @@ import { connect } from 'react-redux'; import { compose } from 'redux'; const View = (props) => { - const { data, data_provenance, tableau_visualization } = props || {}; + const { data_provenance, tableau_visualization } = props || {}; + const data = React.useMemo(() => props.data || {}, [props.data]); const { vis_url = '' } = data; const show_sources = data?.show_sources ?? false; @@ -20,25 +25,52 @@ const View = (props) => { }, [vis_url]); return ( - <> - {data?.vis_url ? ( - <> - - {show_sources && - data_provenance && - data_provenance?.data?.data_provenance && - tableau_visualization ? ( - - ) : show_sources ? ( -
Data provenance is not set in the visualization
- ) : ( - '' - )} - - ) : ( -
Please select a visualization from block editor.
- )} - + + + {data?.vis_url ? ( + <> +
+ {props.mode === 'edit' ? ( +
+

+ == Tableau{' '} + {tableau_visualization?.general?.version || '2.8.0'} loaded + == +

+
+ ) : ( + '' + )} + +
+ + {show_sources && + data_provenance && + data_provenance?.data?.data_provenance && + tableau_visualization ? ( + + ) : show_sources ? ( +
Data provenance is not set in the visualization
+ ) : ( + '' + )} + + ) : ( +
Please select a visualization from block editor.
+ )} +
+
); }; @@ -53,4 +85,4 @@ export default compose( getContent, }, ), -)(View); +)(React.memo(View)); diff --git a/src/ConnectedTableau/ConnectedTableau.jsx b/src/ConnectedTableau/ConnectedTableau.jsx index f5f581e..1986488 100644 --- a/src/ConnectedTableau/ConnectedTableau.jsx +++ b/src/ConnectedTableau/ConnectedTableau.jsx @@ -14,6 +14,7 @@ const ConnectedTableau = (props) => { data={{ ...props?.general, ...props?.options, ...props?.extraOptions }} url={props?.general?.url} version={props?.general?.version} + {...props} /> ); diff --git a/src/Tableau/View.jsx b/src/Tableau/View.jsx index 80cc48e..47568ac 100644 --- a/src/Tableau/View.jsx +++ b/src/Tableau/View.jsx @@ -212,7 +212,11 @@ const Tableau = (props) => { '' ) : (
- Loading Tableau v{version} + + {mode === 'edit' + ? 'Loading...' + : `Loading Tableau v${version}`} +
)} diff --git a/src/TableauBlock/View.jsx b/src/TableauBlock/View.jsx index f9d4326..e88a141 100644 --- a/src/TableauBlock/View.jsx +++ b/src/TableauBlock/View.jsx @@ -69,7 +69,7 @@ const View = (props) => {
{props.mode === 'edit' ? (
-

== Tableau {version} ==

+

== Tableau {version} loaded ==

{!props.data.url ?

URL required

: ''} {error ?

{error}

: ''}
diff --git a/src/Widgets/VisualizationWidget.jsx b/src/Widgets/VisualizationWidget.jsx index 0148b89..5f16d07 100644 --- a/src/Widgets/VisualizationWidget.jsx +++ b/src/Widgets/VisualizationWidget.jsx @@ -53,6 +53,14 @@ const VisualizationWidget = (props) => { let schema = Schema(config); React.useEffect(() => { + if (!intValue?.general || !intValue?.general?.version) { + setIntValue({ + ...intValue, + general: { + version: '2.8.0', + }, + }); + } if (!intValue?.options) { setIntValue({ ...intValue, @@ -111,18 +119,17 @@ const VisualizationWidget = (props) => { tableauError ? ( ) : ( - '' +
+ +
)} -
- -
@@ -144,15 +151,17 @@ const VisualizationWidget = (props) => { tableauError ? ( ) : ( - '' + )} - - ); }; -export default VisualizationWidget; +export default React.memo(VisualizationWidget); diff --git a/src/less/tableau.less b/src/less/tableau.less index 80f143a..d5c0905 100644 --- a/src/less/tableau.less +++ b/src/less/tableau.less @@ -9,7 +9,11 @@ .tableau-block { .tableau-info { h3.tableau-version { - margin-right: 0.5rem; + display: flex; + height: 75px; + align-items: center; + justify-content: center; + background-color: #f4f4f1; color: @tableauTitleColor; }