paperless-ngx/src-ui/src/app/guards/dirty-doc.guard.ts
2022-08-06 20:23:05 -07:00

21 lines
567 B
TypeScript

import { CanDeactivate } from '@angular/router'
import { Injectable } from '@angular/core'
import { Observable } from 'rxjs'
export interface ComponentCanDeactivate {
canDeactivate: () => boolean | Observable<boolean>
}
@Injectable()
export class DirtyDocGuard implements CanDeactivate<ComponentCanDeactivate> {
canDeactivate(
component: ComponentCanDeactivate
): boolean | Observable<boolean> {
return component.canDeactivate()
? true
: confirm(
$localize`Warning: You have unsaved changes to your document(s).`
)
}
}