diff options
| author | Bobby <[email protected]> | 2025-05-13 08:21:33 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-05-13 08:21:33 +0530 |
| commit | d4014e851029116ea730121a015bcc53690ab2d7 (patch) | |
| tree | 84cdab9e6294c623c2dd415ba154edf2589ecd77 /src/data | |
| parent | 6ad5e8c8ecb41d8fb6fb19dd501a7e68a47b1ba1 (diff) | |
| download | pagoda-d4014e851029116ea730121a015bcc53690ab2d7.tar.xz pagoda-d4014e851029116ea730121a015bcc53690ab2d7.zip | |
site list in districts; page implementation in districts
Diffstat (limited to 'src/data')
| -rw-r--r-- | src/data/districts/arcadia.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/arles.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/districts.ts (renamed from src/data/districts.ts) | 11 | ||||
| -rw-r--r-- | src/data/districts/functions.ts | 58 | ||||
| -rw-r--r-- | src/data/districts/hollywood.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/oxford.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/petsburg.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/purgatory.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/siliconValley.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/silverLake.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/stratfordUponAvon.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/tokyo.ts | 3 | ||||
| -rw-r--r-- | src/data/districts/types.ts | 16 |
13 files changed, 105 insertions, 10 deletions
diff --git a/src/data/districts/arcadia.ts b/src/data/districts/arcadia.ts new file mode 100644 index 0000000..f28d23a --- /dev/null +++ b/src/data/districts/arcadia.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const arcadia: Site[] = []; diff --git a/src/data/districts/arles.ts b/src/data/districts/arles.ts new file mode 100644 index 0000000..246553a --- /dev/null +++ b/src/data/districts/arles.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const arles: Site[] = []; diff --git a/src/data/districts.ts b/src/data/districts/districts.ts index 0428b59..a134d56 100644 --- a/src/data/districts.ts +++ b/src/data/districts/districts.ts @@ -1,9 +1,4 @@ -export interface District { - id: string; - name: string; - description: string; - image: string; -} +import type { District } from "./types"; export const districts: District[] = [ { @@ -67,7 +62,3 @@ export const districts: District[] = [ image: "/images/districts/internal/tokyo.png", }, ]; - -export const getDistrictById = (id: string): District | undefined => { - return districts.find((district) => district.id === id); -}; diff --git a/src/data/districts/functions.ts b/src/data/districts/functions.ts new file mode 100644 index 0000000..6e34f11 --- /dev/null +++ b/src/data/districts/functions.ts @@ -0,0 +1,58 @@ +import type { District, Site } from "./types"; +import { districts } from "./districts"; +import { arcadia } from "./arcadia"; +import { arles } from "./arles"; +import { hollywood } from "./hollywood"; +import { oxford } from "./oxford"; +import { petsburg } from "./petsburg"; +import { purgatory } from "./purgatory"; +import { siliconValley } from "./siliconValley"; +import { silverLake } from "./silverLake"; +import { stratfordUponAvon } from "./stratfordUponAvon"; +import { tokyo } from "./tokyo"; + +export const getDistrictById = (id: string): District | undefined => { + return districts.find((district) => district.id === id); +}; + +export const getSitesByDistrictId = (id: string): Site[] => { + switch (id) { + case "arcadia": + return arcadia; + case "arles": + return arles; + case "hollywood": + return hollywood; + case "oxford": + return oxford; + case "petsburg": + return petsburg; + case "purgatory": + return purgatory; + case "silicon-valley": + return siliconValley; + case "silver-lake": + return silverLake; + case "stratford-upon-avon": + return stratfordUponAvon; + case "tokyo": + return tokyo; + default: + return []; + } +}; + +export const getPaginatedSitesByDistrictId = ( + id: string, + page: number, + limit: number +): { sites: Site[]; totalPages: number; currentPage: number } => { + const sites = getSitesByDistrictId(id); + const startIndex = (page - 1) * limit; + const endIndex = startIndex + limit; + return { + sites: sites.slice(startIndex, endIndex), + totalPages: Math.ceil(sites.length / limit), + currentPage: page, + }; +}; diff --git a/src/data/districts/hollywood.ts b/src/data/districts/hollywood.ts new file mode 100644 index 0000000..9689426 --- /dev/null +++ b/src/data/districts/hollywood.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const hollywood: Site[] = []; diff --git a/src/data/districts/oxford.ts b/src/data/districts/oxford.ts new file mode 100644 index 0000000..599b46b --- /dev/null +++ b/src/data/districts/oxford.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const oxford: Site[] = []; diff --git a/src/data/districts/petsburg.ts b/src/data/districts/petsburg.ts new file mode 100644 index 0000000..56b62d5 --- /dev/null +++ b/src/data/districts/petsburg.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const petsburg: Site[] = []; diff --git a/src/data/districts/purgatory.ts b/src/data/districts/purgatory.ts new file mode 100644 index 0000000..8aee047 --- /dev/null +++ b/src/data/districts/purgatory.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const purgatory: Site[] = []; diff --git a/src/data/districts/siliconValley.ts b/src/data/districts/siliconValley.ts new file mode 100644 index 0000000..8b0fe61 --- /dev/null +++ b/src/data/districts/siliconValley.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const siliconValley: Site[] = []; diff --git a/src/data/districts/silverLake.ts b/src/data/districts/silverLake.ts new file mode 100644 index 0000000..878762e --- /dev/null +++ b/src/data/districts/silverLake.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const silverLake: Site[] = []; diff --git a/src/data/districts/stratfordUponAvon.ts b/src/data/districts/stratfordUponAvon.ts new file mode 100644 index 0000000..3e818bb --- /dev/null +++ b/src/data/districts/stratfordUponAvon.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const stratfordUponAvon: Site[] = []; diff --git a/src/data/districts/tokyo.ts b/src/data/districts/tokyo.ts new file mode 100644 index 0000000..804bceb --- /dev/null +++ b/src/data/districts/tokyo.ts @@ -0,0 +1,3 @@ +import type { Site } from "./types"; + +export const tokyo: Site[] = []; diff --git a/src/data/districts/types.ts b/src/data/districts/types.ts new file mode 100644 index 0000000..e495070 --- /dev/null +++ b/src/data/districts/types.ts @@ -0,0 +1,16 @@ +export interface District { + id: string; + name: string; + description: string; + image: string; +} + +export interface Site { + name: string; + url: string; + description: string; + owner: string; + tags: string[]; + added: Date; + screenshotUrl: string; +} |
