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, );