import React, { useEffect, useState } from 'react'; import { useEntityPageContext } from '../../providers'; import { SkeletonCard } from '../SkeletonCard'; import { Extensions } from '../Extensions'; import { ExtensionsState } from '../../state/ExtensionsState'; import { useWixPatternsContainer } from '@wix/bex-core/react'; import { observer } from 'mobx-react-lite'; export interface EntityPageSlotsProps { /** * An id of the container defined in the installed on a site application that contains TPA's actions. */ containerId: string; /** * Applies a data-hook HTML attribute that can be used in tests. */ dataHook?: string; /** * Props passed to Slots Widgets */ [x: string]: any; } export function _EntityPageSlots(props: EntityPageSlotsProps) { const { containerId, dataHook, ...rest } = props; const pageState = useEntityPageContext(); const container = useWixPatternsContainer(); const [state] = useState(() => { return new ExtensionsState({ container, containerId, }); }); useEffect(() => { return state.init(); }, []); return !pageState || pageState.isFetching || state.initTask.status.isLoading ? ( ) : ( ); } export const EntityPageSlots = observer(_EntityPageSlots);