mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 21:52:54 +00:00
* feat: refresh roles, user-grants, project-members * refresh keys * user grants on granted projects * refresh on member changes * membership refresh * lint
61 lines
2.1 KiB
TypeScript
61 lines
2.1 KiB
TypeScript
import { animate, animation, keyframes, style, transition, trigger, useAnimation } from '@angular/animations';
|
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
|
import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb';
|
|
import { RefreshService } from 'src/app/services/refresh.service';
|
|
|
|
const rotate = animation([
|
|
animate(
|
|
'{{time}} cubic-bezier(0.785, 0.135, 0.15, 0.86)',
|
|
keyframes([
|
|
style({
|
|
transform: 'rotate(0deg)',
|
|
}),
|
|
style({
|
|
transform: 'rotate(360deg)',
|
|
}),
|
|
]),
|
|
),
|
|
]);
|
|
@Component({
|
|
selector: 'app-refresh-table',
|
|
templateUrl: './refresh-table.component.html',
|
|
styleUrls: ['./refresh-table.component.scss'],
|
|
animations: [
|
|
trigger('rotate', [
|
|
transition('* => *', [useAnimation(rotate, { params: { time: '1s' } })]),
|
|
]),
|
|
],
|
|
})
|
|
export class RefreshTableComponent implements OnInit {
|
|
@Input() public selection: SelectionModel<any> = new SelectionModel<any>(true, []);
|
|
@Input() public timestamp!: Timestamp.AsObject;
|
|
@Input() public dataSize: number = 0;
|
|
@Input() public emitRefreshAfterTimeoutInMs: number = 0;
|
|
@Input() public loading: boolean = false;
|
|
@Input() public emitRefreshOnPreviousRoute: string = '';
|
|
@Output() public refreshed: EventEmitter<void> = new EventEmitter();
|
|
|
|
constructor(private refreshService: RefreshService) { }
|
|
|
|
ngOnInit(): void {
|
|
if (this.emitRefreshAfterTimeoutInMs) {
|
|
setTimeout(() => {
|
|
this.emitRefresh();
|
|
}, this.emitRefreshAfterTimeoutInMs);
|
|
}
|
|
|
|
if (this.emitRefreshOnPreviousRoute && this.refreshService.previousUrls.includes(this.emitRefreshOnPreviousRoute)) {
|
|
setTimeout(() => {
|
|
console.log('refresh now');
|
|
this.emitRefresh();
|
|
}, 1000);
|
|
}
|
|
}
|
|
|
|
emitRefresh(): void {
|
|
this.selection.clear();
|
|
return this.refreshed.emit();
|
|
}
|
|
}
|