fix(chart): fix refresh issue

This commit is contained in:
Zeke Zhang 2024-12-11 12:35:10 +08:00
parent 1c46a148bb
commit fa36458755

View File

@ -13,18 +13,17 @@ import {
SchemaSettingsDivider, SchemaSettingsDivider,
SchemaSettingsItem, SchemaSettingsItem,
SchemaSettingsRemove, SchemaSettingsRemove,
SchemaSettingsSelectItem,
gridRowColWrap, gridRowColWrap,
useCollection_deprecated, useCollection_deprecated,
useDataSource, useDataSource,
useDesignable, useDesignable,
} from '@nocobase/client'; } from '@nocobase/client';
import React, { useContext } from 'react'; import React, { useContext } from 'react';
import { ChartDataContext } from '../block/ChartDataProvider';
import { ChartConfigContext } from '../configure'; import { ChartConfigContext } from '../configure';
import { useChartsTranslation } from '../locale'; import { useChartsTranslation } from '../locale';
import { createRendererSchema } from '../utils'; import { createRendererSchema } from '../utils';
import { ChartRendererContext } from './ChartRendererProvider'; import { ChartRendererContext } from './ChartRendererProvider';
import { ChartDataContext } from '../block/ChartDataProvider';
export function ChartRendererDesigner() { export function ChartRendererDesigner() {
const { t } = useChartsTranslation(); const { t } = useChartsTranslation();
@ -33,7 +32,7 @@ export function ChartRendererDesigner() {
const { service } = useContext(ChartRendererContext); const { service } = useContext(ChartRendererContext);
const field = useField(); const field = useField();
const schema = useFieldSchema(); const schema = useFieldSchema();
const { insertAdjacent } = useDesignable(); const { insertAdjacent, refresh } = useDesignable();
const dataSource = useDataSource(); const dataSource = useDataSource();
const { name, title } = useCollection_deprecated(); const { name, title } = useCollection_deprecated();
return ( return (
@ -51,7 +50,10 @@ export function ChartRendererDesigner() {
<SchemaSettingsItem <SchemaSettingsItem
title="Duplicate" title="Duplicate"
key="duplicate" key="duplicate"
onClick={() => insertAdjacent('afterEnd', gridRowColWrap(createRendererSchema(schema?.['x-decorator-props'])))} onClick={() => {
insertAdjacent('afterEnd', gridRowColWrap(createRendererSchema(schema?.['x-decorator-props'])));
refresh({ refreshParentSchema: true });
}}
> >
{t('Duplicate')} {t('Duplicate')}
</SchemaSettingsItem> </SchemaSettingsItem>