feat(project-editor): add Languages tab with generic locale sync
This commit is contained in:
@@ -4,6 +4,7 @@ import { BootstrapConfig, DEFAULT_CATALOG_CONFIG, DEFAULT_HEADER_CONFIG, DEFAULT
|
||||
import { ConfigService } from '../../../core/config/config.service';
|
||||
import { ProjectEditorIoService } from '../services/project-editor-io.service';
|
||||
import { ProjectEditorPreviewService } from '../services/project-editor-preview.service';
|
||||
import { LocaleSyncService } from '../services/locale-sync.service';
|
||||
import { ProjectEditorState } from '../models/project-editor.model';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
@@ -11,6 +12,7 @@ export class ProjectEditorFacade {
|
||||
private readonly configService = inject(ConfigService);
|
||||
private readonly ioService = inject(ProjectEditorIoService);
|
||||
private readonly previewService = inject(ProjectEditorPreviewService);
|
||||
private readonly localeSync = inject(LocaleSyncService);
|
||||
|
||||
private readonly state = signal<ProjectEditorState>({
|
||||
bootstrap: null,
|
||||
@@ -70,6 +72,22 @@ export class ProjectEditorFacade {
|
||||
this.state.update(current => ({ ...current, activeSection }));
|
||||
}
|
||||
|
||||
addLocale(locale: string): void {
|
||||
this.updateBootstrap(current => this.localeSync.addLocale(current, locale));
|
||||
}
|
||||
|
||||
removeLocale(locale: string): void {
|
||||
this.updateBootstrap(current => this.localeSync.removeLocale(current, locale));
|
||||
}
|
||||
|
||||
setDefaultLocale(locale: string): void {
|
||||
this.updateBootstrap(current => ({
|
||||
...current,
|
||||
tenant: { ...current.tenant, defaultLocale: locale },
|
||||
localization: { ...current.localization, defaultLocale: locale },
|
||||
}));
|
||||
}
|
||||
|
||||
private normalize(config: BootstrapConfig): BootstrapConfig {
|
||||
return {
|
||||
...config,
|
||||
|
||||
Reference in New Issue
Block a user