Search
    Preparing search index...

    Точка расширения предназначена для добавления пунктов меню в карточку записи. Принимает AbstractCardStore в резолвере, так что определенные элементы могут быть добавлены/исключены с помощью реализации определенного класса хранилища

    import {Universe} from '@universe-ee/sdk';

    const {React} = Universe.Vendor;
    const {Uikit, Router, Locale} = Universe.Platform;

    type AbstractCardStore = Universe.Platform.Record.AbstractCardStore<Universe.Platform.Record.IRecordEntity>;

    interface IProps {
    onCloseMenu: () => void;
    dataCardStore: AbstractCardStore;
    }

    Locale.i18n.addResourceBundle(Locale.Locales.Ru, {DdBtn: {text: 'Кнопка истории'}});
    Locale.i18n.addResourceBundle(Locale.Locales.En, {DdBtn: {text: 'History btn'}});

    export class CustomDropDownDataRecordButton extends React.Component<IProps> {
    openHistoryPage = () => {
    const dataCardStore = this.props.dataCardStore;
    const etalonId = dataCardStore.etalonId;

    if (etalonId) {
    // TODO RouteKeys.RecordHistoryPage - отсутсвует, как стоит указывать роуты при необходимости
    Router.routerStore.setRoute('RecordHistoryPage', {
    namespace: dataCardStore.namespace,
    entityName: dataCardStore.typeName,
    etalonId: etalonId
    });
    }
    }

    override render () {
    return (
    <div>
    <Uikit.DropDown.Item onClick={this.openHistoryPage}>
    {Locale.i18n.t('DdBtn>text')}
    </Uikit.DropDown.Item>
    </div>
    );
    }
    }

    Подключение точки расширения:

    import {Universe} from '@universe-ee/sdk';
    import {CustomDropDownDataRecordButton} from './CustomDropDownDataRecordButton';

    export default {
    type: 'DataCardMenuItem',
    moduleId: 'DataCardMenuItemUniqueID',
    active: true,
    system: false,
    resolver: (dataCardStore: Universe.Platform.Record.AbstractCardStore<any>) => {
    return dataCardStore.draftStore?.draftId === 0;
    },
    meta: {
    menuGroupId: 'history'
    },
    component: CustomDropDownDataRecordButton
    } satisfies Universe.Platform.UserExit.UserExitDeclaration;
    interface UEDataCardMenuItem {
        active: boolean;
        component: ComponentType<
            DataCardMenuProps<IRecordEntity, AbstractCardStore<IRecordEntity>>,
        >;
        meta: UEDataCardMenuItemMeta;
        moduleId: string;
        resolver: UEDataCardMenuItemResolver;
        system: boolean;
    }

    Hierarchy (View Summary)

    Index

    Properties

    active: boolean

    Является ли экземпляр точки расширения активным

    Мета-информация точки расширения

    moduleId: string

    Уникальный идентификатор экземпляра точки расширения

    Функция указывает, следует ли применять данный экземпляр точки расширения

    system: boolean

    Является ли системным экземпляром