import { CustomFieldsViewWidgetState, ExtendedFields } from '@wix/bex-core';
import { Box, Divider } from '@wix/design-system';
import React from 'react';
import { CustomFieldsViewWidgetSection } from './CustomFieldsViewWidgetSection';
import { observer } from 'mobx-react-lite';
import { useWixPatternsContainer } from '@wix/bex-core/react';
interface CustomFieldsViewWidgetContentProps {
state: CustomFieldsViewWidgetState;
extendedFields?: ExtendedFields;
userFieldsTitle?: string;
}
const _CustomFieldsViewWidgetContent = ({
state,
extendedFields,
userFieldsTitle,
}: CustomFieldsViewWidgetContentProps) => {
const { translate: t } = useWixPatternsContainer();
const getSections = () => {
return state.dataExtension.allNamespaces
.map((namespace) => {
const relevantCustomFields =
state.getExtendedFieldsToDisplayForNamespace(
namespace,
extendedFields,
);
if (relevantCustomFields.length === 0) {
return null;
}
const title =
namespace === state.userFieldsNamespace
? userFieldsTitle || t('cairo.customFields.entityPage.sectionTitle')
: state.getAppName(namespace);
return (
);
})
.filter(Boolean) as JSX.Element[];
};
const sectionsWithDividers = (sections: JSX.Element[]) => {
return sections.map((section, index) => (
{section}
{index < sections.length - 1 && (
)}
));
};
const renderCustomFields = () => {
const sections = getSections();
return sectionsWithDividers(sections);
};
return (
{renderCustomFields()}
);
};
export const CustomFieldsViewWidgetContent = observer(
_CustomFieldsViewWidgetContent,
);