/** * This file is part of Anis Client. * * @copyright Laboratoire d'Astrophysique de Marseille / CNRS * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ import { Component } from '@angular/core'; import { Store } from '@ngrx/store'; import { Observable } from 'rxjs'; import { Instance, FileInfo } from 'src/app/metamodel/models'; import * as instanceActions from 'src/app/metamodel/actions/instance.actions'; import * as rootDirectoryActions from 'src/app/metamodel/actions/root-directory.actions'; import * as rootDirectorySelector from 'src/app/metamodel/selectors/root-directory.selector'; @Component({ selector: 'app-new-instance', templateUrl: 'new-instance.component.html' }) export class NewInstanceComponent { public rootDirectory: Observable<FileInfo[]>; public rootDirectoryIsLoading: Observable<boolean>; public rootDirectoryIsLoaded: Observable<boolean>; constructor(private store: Store<{ }>) { this.rootDirectory = store.select(rootDirectorySelector.selectAllFileInfo); this.rootDirectoryIsLoading = store.select(rootDirectorySelector.selectRootDirectoryIsLoading); this.rootDirectoryIsLoaded = store.select(rootDirectorySelector.selectRootDirectoryIsLoaded); } addNewInstance(instance: Instance) { this.store.dispatch(instanceActions.addInstance({ instance })); } loadRootDirectory(path: string) { this.store.dispatch(rootDirectoryActions.loadRootDirectory({ path })); } }