/
vshmidt
/
cloudbeaver
Обзор
Документация
Войти
/
vshmidt
/
cloudbeaver
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
devel
webapp/packages/plugin-root/src/DataSynchronization/DataSynchronizationResolverBootstrap.ts
54 строки
2 KB
Alexey Potsetsuev
dbeaver/pro#6744 refactor: migration to `@wroud/di` (#3704)
29 авг 2025, 13:22
Не верифицирован
29 авг 2025, 13:22
80f258b
Код
Авторство
О чём код?
/* * CloudBeaver - Cloud Database Manager * Copyright (C) 2020-2025 DBeaver Corp and others * * Licensed under the Apache License, Version 2.0. * you may not use this file except in compliance with the License. */ import { Bootstrap, injectable } from '@cloudbeaver/core-di'; import { ENotificationType, type INotification, NotificationService } from '@cloudbeaver/core-events'; import { DataSynchronizationService, ServerConfigResource } from '@cloudbeaver/core-root'; import { importLazyComponent } from '@cloudbeaver/core-blocks'; const DataSynchronizationNotification = importLazyComponent(() => import('./DataSynchronizationNotification.js').then(m => m.DataSynchronizationNotification), ); @injectable(() => [NotificationService, ServerConfigResource, DataSynchronizationService]) export class DataSynchronizationResolverBootstrap extends Bootstrap { private activeNotification: INotification | null; constructor( private readonly notificationService: NotificationService, private readonly serverConfigResource: ServerConfigResource, private readonly dataSynchronizationService: DataSynchronizationService, ) { super(); this.activeNotification = null; } override register(): void { this.dataSynchronizationService.onSynchronizationRequest.addHandler(this.handleNetworkStateChange.bind(this)); } private handleNetworkStateChange(): void { if (this.activeNotification || this.serverConfigResource.configurationMode) { return; } this.activeNotification = this.notificationService.customNotification( () => DataSynchronizationNotification, {}, { title: 'plugin_root_data_sync_title', message: 'plugin_root_data_sync_message', type: ENotificationType.Info, onClose: () => { this.dataSynchronizationService.resolveAll(false); this.activeNotification = null; }, }, ); } }