36 lines
899 B
TypeScript
36 lines
899 B
TypeScript
import { useForm } from '@formily/react';
|
|
import { useContext } from 'react';
|
|
import { useTable } from './useTable';
|
|
import { TableRowContext } from '../context';
|
|
import { DescriptionsContext } from '../../form';
|
|
|
|
export const useTableUpdateAction = () => {
|
|
const {
|
|
resource,
|
|
field,
|
|
service,
|
|
refresh,
|
|
props: { refreshRequestOnChange, rowKey },
|
|
} = useTable();
|
|
const ctx = useContext(TableRowContext);
|
|
const form = useForm();
|
|
const { service: formService } = useContext(DescriptionsContext);
|
|
|
|
return {
|
|
async run() {
|
|
if (refreshRequestOnChange) {
|
|
await resource.save(form.values, {
|
|
resourceIndex: ctx.record[rowKey],
|
|
});
|
|
if (formService) {
|
|
await formService.refresh();
|
|
}
|
|
await service.refresh();
|
|
return;
|
|
}
|
|
field.value[ctx.index] = form.values;
|
|
// refresh();
|
|
},
|
|
};
|
|
};
|