All these

This commit is contained in:
shamoon
2026-07-08 18:11:18 -07:00
parent 2ac3e63b92
commit c4d425a72e
13 changed files with 173 additions and 353 deletions
@@ -1,5 +1,5 @@
import { Clipboard } from '@angular/cdk/clipboard'
import { Component, Input, inject, signal } from '@angular/core'
import { Component, Input, inject, input, signal } from '@angular/core'
import { Title } from '@angular/platform-browser'
import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'
import { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons'
@@ -16,83 +16,31 @@ export class PageHeaderComponent {
private titleService = inject(Title)
private clipboard = inject(Clipboard)
private titleSignal = signal('')
private idSignal = signal<number>(undefined)
private subTitleSignal = signal('')
private infoSignal = signal<string>(undefined)
private infoLinkSignal = signal<string>(undefined)
private loadingSignal = signal(false)
private copiedSignal = signal(false)
readonly id = input<number>(undefined)
readonly subTitle = input('')
readonly info = input<string>(undefined)
readonly infoLink = input<string>(undefined)
readonly loading = input(false)
readonly copied = signal(false)
private copyTimeout: any
public get copied(): boolean {
return this.copiedSignal()
}
public set copied(copied: boolean) {
this.copiedSignal.set(copied)
}
private readonly titleSignal = signal('')
@Input()
set title(title: string) {
this.titleSignal.set(title)
this.titleService.setTitle(`${this.title} - ${environment.appTitle}`)
this.titleService.setTitle(`${title} - ${environment.appTitle}`)
}
get title() {
return this.titleSignal()
}
@Input()
get id(): number {
return this.idSignal()
}
set id(id: number) {
this.idSignal.set(id)
}
@Input()
get subTitle(): string {
return this.subTitleSignal()
}
set subTitle(subTitle: string) {
this.subTitleSignal.set(subTitle)
}
@Input()
get info(): string {
return this.infoSignal()
}
set info(info: string) {
this.infoSignal.set(info)
}
@Input()
get infoLink(): string {
return this.infoLinkSignal()
}
set infoLink(infoLink: string) {
this.infoLinkSignal.set(infoLink)
}
@Input()
get loading(): boolean {
return this.loadingSignal()
}
set loading(loading: boolean) {
this.loadingSignal.set(loading)
}
public copyID() {
this.copied = this.clipboard.copy(this.id.toString())
this.copied.set(this.clipboard.copy(this.id().toString()))
clearTimeout(this.copyTimeout)
this.copyTimeout = setTimeout(() => {
this.copied = false
this.copied.set(false)
}, 3000)
}
}