fix: action area (#1188)

Co-authored-by: sealday <sealday@gmail.com>
Reviewed-on: daoyoucloud/tachybase#1188
This commit is contained in:
sealday 2024-06-14 00:56:04 +08:00
parent 0be9252807
commit 96c9f954e7
3 changed files with 57 additions and 16 deletions

View File

@ -1,7 +1,30 @@
import { createStyles } from 'antd-style'; import { createStyles } from 'antd-style';
export const useStyles = createStyles(({ css, token }) => { export const useStyles = createStyles(({ css, token }) => {
return css` return {
padding-top: ${token.padding}px; container: css`
`; padding-top: ${token.padding}px;
`,
footer: css`
display: flex;
justify-content: flex-end;
width: 100%;
flex-shrink: 0;
padding-bottom: ${token.padding}px;
border-bottom: 1px solid rgba(5, 5, 5, 0.06);
.ant-btn {
margin-right: ${token.margin}px;
}
.title {
flex: 1;
margin: 0;
color: rgba(0, 0, 0, 0.88);
font-weight: 600;
font-size: ${token.fontSizeHeading3}px;
line-height: ${token.lineHeightHeading3};
padding-right: 24px;
}
`,
};
}); });

View File

@ -32,11 +32,13 @@ export const ActionAreaStub = () => {
export const ActionAreaPlayer = ({ children }) => { export const ActionAreaPlayer = ({ children }) => {
const { visible, setVisible } = useActionContext(); const { visible, setVisible } = useActionContext();
const { prevSetVisible, setPrevSetVisible, ref = { current: null } } = useContext(ActionAreaContext); const { prevSetVisible, setPrevSetVisible, ref } = useContext(ActionAreaContext);
useEffect(() => { useEffect(() => {
if (visible) { if (visible) {
setPrevSetVisible?.(() => { setPrevSetVisible?.(() => {
prevSetVisible?.(false); prevSetVisible?.(false);
// 因为无法判断是不是自己之前的那个 setVisible如果是同一个 setVisible 那么上面那个设置会导致不显示
setVisible(true);
return setVisible; return setVisible;
}); });
} }
@ -47,22 +49,38 @@ export const ActionAreaPlayer = ({ children }) => {
export const ActionArea: ComposedActionDrawer = observer( export const ActionArea: ComposedActionDrawer = observer(
(props) => { (props) => {
const { footerNodeName = 'Action.Drawer.Footer' } = props; const { footerNodeName = 'ActionArea.Footer' } = props;
const schema = useFieldSchema(); const schema = useFieldSchema();
const field = useField(); const field = useField();
const { styles } = useStyles(); const { styles } = useStyles();
const Current = () => ( const Current = () => (
<div className={styles}> <>
<RecursionField <div className={styles.footer}>
basePath={field.address} <div className="title">
schema={schema} <strong>{field.title}</strong>
onlyRenderProperties </div>
filterProperties={(s) => { <RecursionField
return s['x-component'] !== footerNodeName; basePath={field.address}
}} schema={schema}
/> onlyRenderProperties
</div> filterProperties={(s) => {
return s['x-component'] === footerNodeName;
}}
/>
</div>
<div className={styles.container}>
<RecursionField
basePath={field.address}
schema={schema}
onlyRenderProperties
filterProperties={(s) => {
return s['x-component'] !== footerNodeName;
}}
/>
</div>
</>
); );
return ( return (

View File

@ -45,7 +45,7 @@ const useStyles = createStyles(({ css, token }) => {
overflow-y: scroll; overflow-y: scroll;
padding: 8px; padding: 8px;
background-color: white; background-color: white;
width: 800px; width: 600px;
} }
.workflow-canvas-wrapper { .workflow-canvas-wrapper {