fix: cannot access 'ActionPage' before initialization (#5125)

This commit is contained in:
chenos 2024-08-26 15:40:22 +08:00 committed by GitHub
parent 7ff13ff39e
commit ffcc60cadf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -15,45 +15,41 @@ import { BackButtonUsedInSubPage } from '../page/BackButtonUsedInSubPage';
import { TabsContextProvider, useTabsContext } from '../tabs/context'; import { TabsContextProvider, useTabsContext } from '../tabs/context';
import { useActionPageStyle } from './Action.Page.style'; import { useActionPageStyle } from './Action.Page.style';
import { usePopupOrSubpagesContainerDOM } from './hooks/usePopupSlotDOM'; import { usePopupOrSubpagesContainerDOM } from './hooks/usePopupSlotDOM';
import { ComposedActionDrawer } from './types';
export const ActionPage: ComposedActionDrawer = observer( export function ActionPage({ level }) {
({ level }) => { const filedSchema = useFieldSchema();
const filedSchema = useFieldSchema(); const ctx = useActionContext();
const ctx = useActionContext(); const { getContainerDOM } = usePopupOrSubpagesContainerDOM();
const { getContainerDOM } = usePopupOrSubpagesContainerDOM(); const { styles } = useActionPageStyle();
const { styles } = useActionPageStyle(); const tabContext = useTabsContext();
const tabContext = useTabsContext();
const style = useMemo(() => { const style = useMemo(() => {
return { return {
// 20 is the z-index value of the main page // 20 is the z-index value of the main page
zIndex: 20 + level, zIndex: 20 + level,
}; };
}, [level]); }, [level]);
if (!ctx.visible) { if (!ctx.visible) {
return null; return null;
} }
const actionPageNode = ( const actionPageNode = (
<div className={styles.container} style={style}> <div className={styles.container} style={style}>
<TabsContextProvider {...tabContext} tabBarExtraContent={<BackButtonUsedInSubPage />}> <TabsContextProvider {...tabContext} tabBarExtraContent={<BackButtonUsedInSubPage />}>
<RecursionField schema={filedSchema} onlyRenderProperties /> <RecursionField schema={filedSchema} onlyRenderProperties />
</TabsContextProvider> </TabsContextProvider>
</div> </div>
); );
const container = getContainerDOM(); const container = getContainerDOM();
if (container) { if (container) {
return createPortal(actionPageNode, container); return createPortal(actionPageNode, container);
} }
return actionPageNode; return actionPageNode;
}, }
{ displayName: 'ActionPage' },
);
ActionPage.Footer = observer( ActionPage.Footer = observer(
() => { () => {