Co-authored-by: sealday <sealday@gmail.com> Reviewed-on: daoyoucloud/tachybase#1045
34 lines
967 B
TypeScript
34 lines
967 B
TypeScript
import React from 'react';
|
|
import { OverridingFieldAction as OverridingCollectionFieldAction } from '@tachybase/client';
|
|
|
|
import { CopyOutlined } from '@ant-design/icons';
|
|
|
|
import { useCancelAction, useCreateAction } from '../action-hooks';
|
|
import { getPopupContainer } from '../utils';
|
|
|
|
const useOverridingCollectionField = (record) => {
|
|
const collectionName = record.targetCollection;
|
|
const { run } = useCreateAction(collectionName);
|
|
return {
|
|
async run() {
|
|
await run();
|
|
},
|
|
};
|
|
};
|
|
|
|
export const OverrideFieldAction = ({ item: record, parentItem: parentRecord }) => {
|
|
return (
|
|
<OverridingCollectionFieldAction
|
|
item={{ ...record }}
|
|
parentItem={parentRecord}
|
|
scope={{
|
|
useCancelAction,
|
|
useOverridingCollectionField: () => useOverridingCollectionField(record),
|
|
}}
|
|
getContainer={getPopupContainer}
|
|
>
|
|
<CopyOutlined className="btn-override" />
|
|
</OverridingCollectionFieldAction>
|
|
);
|
|
};
|