| 1 |
912788f |
Mardin |
2y ago |
|
| 2 |
a47eb4c |
Dawsh |
2y ago |
|
| 3 |
6aab6f0 |
Mrdn |
2y ago |
export class PageSizeManager { |
| 4 |
6aab6f0 |
Mrdn |
2y ago |
private localStorageKey: string; |
| 5 |
6aab6f0 |
Mrdn |
2y ago |
private defaultPageSize: number; |
| 6 |
912788f |
Mardin |
2y ago |
|
| 7 |
6aab6f0 |
Mrdn |
2y ago |
constructor(localStorageKey: string, defaultPageSize: number) { |
| 8 |
6aab6f0 |
Mrdn |
2y ago |
this.localStorageKey = `marzneshin-num-${localStorageKey}-per-page`; |
| 9 |
6aab6f0 |
Mrdn |
2y ago |
this.defaultPageSize = defaultPageSize; |
| 10 |
6aab6f0 |
Mrdn |
2y ago |
} |
| 11 |
912788f |
Mardin |
2y ago |
|
| 12 |
6aab6f0 |
Mrdn |
2y ago |
private getStoredPageSize(): string | null { |
| 13 |
6aab6f0 |
Mrdn |
2y ago |
return localStorage.getItem(this.localStorageKey); |
| 14 |
6aab6f0 |
Mrdn |
2y ago |
} |
| 15 |
912788f |
Mardin |
2y ago |
|
| 16 |
6aab6f0 |
Mrdn |
2y ago |
getPageSize(): number { |
| 17 |
6aab6f0 |
Mrdn |
2y ago |
const storedPageSize = this.getStoredPageSize(); |
| 18 |
6aab6f0 |
Mrdn |
2y ago |
const parsedPageSize = parseInt(storedPageSize || '', 10); |
| 19 |
6aab6f0 |
Mrdn |
2y ago |
return isNaN(parsedPageSize) ? this.defaultPageSize : parsedPageSize; |
| 20 |
6aab6f0 |
Mrdn |
2y ago |
} |
| 21 |
5bb2712 |
Mardin |
2y ago |
|
| 22 |
6aab6f0 |
Mrdn |
2y ago |
setPageSize(value: string): void { |
| 23 |
6aab6f0 |
Mrdn |
2y ago |
localStorage.setItem(this.localStorageKey, value); |
| 24 |
6aab6f0 |
Mrdn |
2y ago |
} |
| 25 |
6aab6f0 |
Mrdn |
2y ago |
} |
| 26 |
5bb2712 |
Mardin |
2y ago |
|
| 27 |
6aab6f0 |
Mrdn |
2y ago |
export const pageSizeManagers = { |
| 28 |
6aab6f0 |
Mrdn |
2y ago |
users: new PageSizeManager('users', 10), |
| 29 |
6aab6f0 |
Mrdn |
2y ago |
inbounds: new PageSizeManager('inbounds', 10), |
| 30 |
6aab6f0 |
Mrdn |
2y ago |
nodes: new PageSizeManager('nodes', 10), |
| 31 |
6aab6f0 |
Mrdn |
2y ago |
hosts: new PageSizeManager('hosts', 10), |
| 32 |
6aab6f0 |
Mrdn |
2y ago |
services: new PageSizeManager('services', 10), |
| 33 |
6aab6f0 |
Mrdn |
2y ago |
} |