diff options
Diffstat (limited to 'webapp/src/app/sdks/sdkSelectDropdown.component.ts')
-rw-r--r-- | webapp/src/app/sdks/sdkSelectDropdown.component.ts | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/webapp/src/app/sdks/sdkSelectDropdown.component.ts b/webapp/src/app/sdks/sdkSelectDropdown.component.ts new file mode 100644 index 0000000..5122cd2 --- /dev/null +++ b/webapp/src/app/sdks/sdkSelectDropdown.component.ts @@ -0,0 +1,44 @@ +import { Component, Input } from "@angular/core"; + +import { ISdk, SdkService } from "../common/sdk.service"; + +@Component({ + selector: 'sdk-select-dropdown', + template: ` + <div class="btn-group" dropdown *ngIf="curSdk" > + <button dropdownToggle type="button" class="btn btn-primary dropdown-toggle" style="width: 20em;"> + {{curSdk.name}} <span class="caret" style="float: right; margin-top: 8px;"></span> + </button> + <ul *dropdownMenu class="dropdown-menu" role="menu"> + <li role="menuitem"><a class="dropdown-item" *ngFor="let sdk of sdks" (click)="select(sdk)"> + {{sdk.name}}</a> + </li> + </ul> + </div> + ` +}) +export class SdkSelectDropdownComponent { + + // FIXME investigate to understand why not working with sdks as input + // <sdk-select-dropdown [sdks]="(sdks$ | async)"></sdk-select-dropdown> + //@Input() sdks: ISdk[]; + sdks: ISdk[]; + + curSdk: ISdk; + + constructor(private sdkSvr: SdkService) { } + + ngOnInit() { + this.sdkSvr.Sdks$.subscribe((s) => { + this.sdks = s; + this.curSdk = this.sdks.length ? this.sdks[0] : null; + this.sdkSvr.setCurrent(this.curSdk); + }); + } + + select(s) { + this.sdkSvr.setCurrent(this.curSdk = s); + } +} + + |