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