tachybase_todo/packages/plugins/@nocobase/plugin-gantt/src/client/index.tsx
katherinehhh b1610e6994
feat: kanban& gantt&bulk edit& bulk update& duplicate& print action pluggable (#3019)
* fix: bug

* test: kanban test

* test: gantt block test

* test: gantt test

* test: gantt test

* test: gantt test

* refactor: convert parameters to destructured object

* test: add tests choices

* test: add tests media

* test: add tests for datetime in creating form

* feat(plugin-mock-collection): generate faker time

* test: add tests for datetime in editing form

* test: add tests for datetime in details form

* test: gantt block test

* test: gantt test

* test: gantt test

* test: gantt test

* fix: bug

* feat: improve code

* test: add tests for relation fields

* refactor: style improve

* fix: rename SchemaSettings

* fix: type bug

* refactor: useDesinger()

* fix: bug

* fix: bug

* fix: build tip

* refactor: kanban setting

* refactor: gantt setting

* refactor: bulk update setting

* refactor: bulk update setting

* refactor: bulk edit settings

* refactor: duplicate settings

* refactor: print action setting

* refactor: duplicate settings

* refactor: bulk update refactor

* refactor: bulk update refactor

* fix: designableState

* fix: bug

* fix: designable

* refactor: bulk update

* fix: designable

* test: add tests for relation fields

* test: add tests for relation fields

* test: add tests for relation fields

* feat: client api doc

* test: add tests for relation fields

* test: avoid errors

* test: make tests passing

* fix: bug

* test: gantt test

* test: make tests passing

* test: add tests for advanced fields

* test: increase e2e timeout-minutes to 60

* fix: bug

* fix: improve code

* feat: add schema initailizer component  demos

* test: make tests passing

* fix: schema settings demos

* feat: shallowMerge & deepMerge

* test: reduce number of tests

* test: make tests passing

* feat: updates

* fix: add Initializer Internal

* demos:  useSchemaSettingsRender

* test: make tests passing

* test: make tests passing

* test: bulk update test

* refactor: useSchemaToolbar

* fix: improve docs

* fix: bug

* test: duplicate action test

* test: duplicate action test

* test: duplicate action test

* test: duplicate action test

* chore: upgrade dumi theme

* test: make tests passing

* test: add tests for linkage rules

* test: add test for form data templates

* test: add tests for default value

* test: reduce number of tests

* refactor: bulk edit setting

* test: bulk edit action test

* test: bulk edit action test

* fix: dn.deepMerge

* fix: bug

* test: bulk edit action test

* test: kanban test

* refactor: bulk update version

* refactor: print action version

* fix: bug

* fix: toolbar

* fix: docs ssr

* test: add tests for system fields

* test: add tests for actions

* fix:  bug

* test: add tests for lazy loading of variables

* test: make testing more stable

* test: bulk edit test

* test: bulk update action test

* fix: update docs

* test: print test

* test: kanban test

* test: kanban test

* refactor: duplicate version

* fix: merge bug

* refactor: bulk update

* fix: merge bug

* refactor: bulk edit

* refactor: import

* refactor: export action

* refactor: code improve

* refactor: kanban code improve

* fix: merge bug

* refactor: readPrettyFormActionInitializers

* test: print action test

* test: print action test

* refactor: print action

* test: action test

* refactor: gantt date change

* style: gantt  style improve

* test: gantt &bulkUpdate test

* test: bulk update test

* test: duplicate action test

* test: print action test

* test: bulk edit action test

* test: gantt block test

* test: kanban block test

* test: test file name

* test: test file name

* test: bulk update action tst

* refactor: rename test file name

* refactor: bulk update action

* refactor: gantt test

* fix: block template

* fix: block template

* fix: useFieldModeOptions

* refactor: code improve

* fix: merge bug

---------

Co-authored-by: dream2023 <1098626505@qq.com>
Co-authored-by: Rain <958414905@qq.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-12-16 21:59:33 +08:00

53 lines
1.7 KiB
TypeScript

import React, { useContext } from 'react';
import {
Plugin,
ActionBar,
CollectionManagerContext,
CurrentAppInfoProvider,
SchemaComponentOptions,
} from '@nocobase/client';
import { Gantt } from './components/gantt/gantt';
import { GanttDesigner } from './Gantt.Designer';
import { ViewMode } from './types/public-types';
import { Event } from './components/gantt/Event';
import { GanttActionInitializers } from './GanttActionInitializers';
import { GanttBlockInitializer } from './GanttBlockInitializer';
import { GanttBlockProvider, useGanttBlockProps } from './GanttBlockProvider';
import { ganttSettings } from './Gantt.Settings';
Gantt.ActionBar = ActionBar;
Gantt.ViewMode = ViewMode;
Gantt.Designer = GanttDesigner;
Gantt.Event = Event;
export { Gantt };
const GanttProvider = React.memo((props) => {
const ctx = useContext(CollectionManagerContext);
return (
<CurrentAppInfoProvider>
<SchemaComponentOptions
components={{ Gantt, GanttBlockInitializer, GanttBlockProvider }}
scope={{ useGanttBlockProps }}
>
<CollectionManagerContext.Provider value={{ ...ctx }}>{props.children}</CollectionManagerContext.Provider>
</SchemaComponentOptions>
</CurrentAppInfoProvider>
);
});
GanttProvider.displayName = 'GanttProvider';
export class GanttPlugin extends Plugin {
async load() {
this.app.use(GanttProvider);
this.app.schemaSettingsManager.add(ganttSettings);
this.app.schemaInitializerManager.add(GanttActionInitializers);
const blockInitializers = this.app.schemaInitializerManager.get('BlockInitializers');
blockInitializers?.add('dataBlocks.gantt', {
title: "{{t('Gantt')}}",
Component: 'GanttBlockInitializer',
});
}
}
export default GanttPlugin;