import React from 'react';
import {useQuery} from '@apollo/client';
import {getComponent, JahiaCtx, GqlNode, convert} from '@jahia/nextjs-sdk';
import {Col, Row} from 'react-bootstrap';
import {SubContentPropsType} from '../types';
import {getSubContentQuery} from '../graphql/subContentQuery';
export const SubContent = ({queryProps, referenceComponent, className, subNodesView, noResultsMessage}:SubContentPropsType) => {
const {workspace} = React.useContext(JahiaCtx);
const {data, error, loading} = useQuery(getSubContentQuery(queryProps), {
variables: {
workspace
}
});
if (loading) {
return
loading
;
}
if (error) {
console.error(error);
return Error when loading ${JSON.stringify(error)}
;
}
const {nodes} = data.jcr.nodesByCriteria;
if (!Array.isArray(nodes) || nodes.length === 0) {
return {noResultsMessage || 'No result'}
;
}
const getNodeDisplay = (gqlNode:GqlNode) => {
let node = convert(gqlNode);
node = {
...node,
view: subNodesView || 'default'
};
const Component = referenceComponent ? referenceComponent : getComponent(node);
const contentProps : {[key:string]:string} = {
id: node.uuid,
path: node.path
};
return (
);
};
return (
{nodes.map((node:GqlNode) => getNodeDisplay(node))}
);
};