Кастомизация личного кабинета¶
Добавление нового таба¶
Точка расширения UEAccountSettingsTab позволяет добавлять новые вкладки на страницу личного кабинета.
Компонент Tab
будет подключаться через AccountSettingsPageStore, основной задачей которого является управление переключением вкладок и хранение информации об изменениях в текущей вкладке (флаг isTabDirty
).
Если будет предпринята попытка переключить вкладки с несохраненными данными на текущей вкладке (isTabDirty = false
), пользователь получит окно с предупреждением.
Описание UEAccountSettingsTab:
import {UeModuleBase, UserInfoType} from '@unidata/core-app';
import {ComponentType} from 'react';
import {AccountSettingsPageStore} from '../../page/user_settings/store/AccountSettingsPageStore';
import {Nullable} from '@unidata/core';
export type UEAccountSettingsTab = UeModuleBase & {
default: {
component: ComponentType<{
store: AccountSettingsPageStore;
}>;
resolver: (userData: Nullable<UserInfoType>) => boolean;
meta: {
order: number;
getTabName: () => string;
};
};
}
Рисунок 1 - Дополнительная вкладка на странице личного кабинета
Добавление новой панели настроек¶
Точка расширения UEAccountSettingsPanel позволяет добавить дополнительную панель настроек на вкладку "Общие настройки".
В этом случае компонент UE подключится через вкладку общих настроек учетной записи. В props
передается Store
, в котором хранится информация о текущем пользователе и предоставляются методы изменения и сохранения пользовательских данных.
Описание UEAccountSettingsPanel:
import {UeModuleBase, UserInfoType} from '@unidata/core-app';
import {ComponentType} from 'react';
import {AccountGeneralSettingsTabStore} from '../../uemodule/general_account_settings/store/AccountGeneralSettingsTabStore';
import {Nullable} from '@unidata/core';
export type UEAccountSettingsPanel = UeModuleBase & {
default: {
component: ComponentType<{
store: AccountGeneralSettingsTabStore;
}>;
resolver: (userData: Nullable<UserInfoType>) => boolean;
meta: {
order: number;
};
};
}
Рисунок 2 - Панель дополнительных настроек