diff --git a/src/app/components/chain-add/chain-add.ts b/src/app/components/chain-add/chain-add.ts index 370befb..fc857bf 100644 --- a/src/app/components/chain-add/chain-add.ts +++ b/src/app/components/chain-add/chain-add.ts @@ -5,7 +5,7 @@ import { ActionBtn } from '../action-btn/action-btn'; import { TranslatePipe } from '@ngx-translate/core'; import { UpperfirstPipe } from '../../pipes/upperfirst-pipe'; import { ChainSettings } from '../../services/chain-settings'; -import { SettingsBaseAdd } from '../settings-base-add/settings-base-add'; +import { SettingsBaseAddEdit } from '../settings-base-add-edit/settings-base-add-edit'; @Component({ selector: 'app-chain-add', @@ -14,15 +14,17 @@ import { SettingsBaseAdd } from '../settings-base-add/settings-base-add'; TranslatePipe, UpperfirstPipe, ], - templateUrl: './../settings-base-add/settings-base-add.html', - styleUrl: './../settings-base-add/settings-base-add.scss', + templateUrl: './../settings-base-add-edit/settings-base-add-edit.html', + styleUrl: './../settings-base-add-edit/settings-base-add-edit.scss', }) -export class ChainAdd extends SettingsBaseAdd { +export class ChainAdd extends SettingsBaseAddEdit { private readonly chainSettings = inject(ChainSettings); + readonly form = new ChainFormGroup(); + btnText = 'common.save'; title = 'settings.chain.new_chain'; - async save() { + async submit() { const name = this.form.controls.name.value; const img = this.form.controls.image.value; //TODO: the sqlite bridge can't handle null as param diff --git a/src/app/components/settings-base-add-edit/settings-base-add-edit.html b/src/app/components/settings-base-add-edit/settings-base-add-edit.html new file mode 100644 index 0000000..f262ca1 --- /dev/null +++ b/src/app/components/settings-base-add-edit/settings-base-add-edit.html @@ -0,0 +1,9 @@ +

{{title|translate|upperfirst}}

+ + diff --git a/src/app/components/settings-base-add/settings-base-add.scss b/src/app/components/settings-base-add-edit/settings-base-add-edit.scss similarity index 100% rename from src/app/components/settings-base-add/settings-base-add.scss rename to src/app/components/settings-base-add-edit/settings-base-add-edit.scss diff --git a/src/app/components/settings-base-add-edit/settings-base-add-edit.ts b/src/app/components/settings-base-add-edit/settings-base-add-edit.ts new file mode 100644 index 0000000..879cd34 --- /dev/null +++ b/src/app/components/settings-base-add-edit/settings-base-add-edit.ts @@ -0,0 +1,13 @@ +import { FormGroup } from '@angular/forms'; + +export abstract class SettingsBaseAddEdit { + abstract btnText: string; + abstract title: string; + abstract form: FormGroup; + + protected abstract submit(): Promise + + get disabled() { + return this.form.invalid || this.form.pristine; + } +} diff --git a/src/app/components/settings-base-add/settings-base-add.html b/src/app/components/settings-base-add/settings-base-add.html deleted file mode 100644 index 4852b7b..0000000 --- a/src/app/components/settings-base-add/settings-base-add.html +++ /dev/null @@ -1,8 +0,0 @@ -

{{title|translate|upperfirst}}

- - diff --git a/src/app/components/settings-base-add/settings-base-add.ts b/src/app/components/settings-base-add/settings-base-add.ts deleted file mode 100644 index aa62be4..0000000 --- a/src/app/components/settings-base-add/settings-base-add.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FormGroup } from '@angular/forms'; - -export abstract class SettingsBaseAdd { - abstract title: string; - abstract form: FormGroup; - - protected abstract save(): Promise -}