strongly typed partial profiles wip

This commit is contained in:
Eugene Pankov
2021-07-13 23:44:23 +02:00
parent 5ddf36d4c1
commit 2f13f3a401
16 changed files with 118 additions and 107 deletions

View File

@@ -1,7 +1,7 @@
import slugify from 'slugify'
import { v4 as uuidv4 } from 'uuid'
import { Injectable } from '@angular/core'
import { ConfigService, NewTabParameters, Profile, ProfileProvider } from './api'
import { ConfigService, NewTabParameters, PartialProfile, Profile, ProfileProvider } from './api'
import { SplitTabComponent, SplitTabRecoveryProvider } from './components/splitTab.component'
export interface SplitLayoutProfileOptions {
@@ -13,7 +13,7 @@ export interface SplitLayoutProfile extends Profile {
}
@Injectable({ providedIn: 'root' })
export class SplitLayoutProfilesService extends ProfileProvider {
export class SplitLayoutProfilesService extends ProfileProvider<SplitLayoutProfile> {
id = 'split-layout'
name = 'Saved layout'
configDefaults = {
@@ -29,7 +29,7 @@ export class SplitLayoutProfilesService extends ProfileProvider {
super()
}
async getBuiltinProfiles (): Promise<Profile[]> {
async getBuiltinProfiles (): Promise<PartialProfile<SplitLayoutProfile>[]> {
return []
}
@@ -43,7 +43,7 @@ export class SplitLayoutProfilesService extends ProfileProvider {
async createProfile (tab: SplitTabComponent, name: string): Promise<void> {
const token = await tab.getRecoveryToken()
const profile: SplitLayoutProfile = {
const profile: PartialProfile<SplitLayoutProfile> = {
id: `${this.id}:custom:${slugify(name)}:${uuidv4()}`,
type: this.id,
name,