From d4014e851029116ea730121a015bcc53690ab2d7 Mon Sep 17 00:00:00 2001 From: Bobby Date: Tue, 13 May 2025 08:21:33 +0530 Subject: site list in districts; page implementation in districts --- src/data/districts.ts | 73 --------------------------------- src/data/districts/arcadia.ts | 3 ++ src/data/districts/arles.ts | 3 ++ src/data/districts/districts.ts | 64 +++++++++++++++++++++++++++++ src/data/districts/functions.ts | 58 ++++++++++++++++++++++++++ src/data/districts/hollywood.ts | 3 ++ src/data/districts/oxford.ts | 3 ++ src/data/districts/petsburg.ts | 3 ++ src/data/districts/purgatory.ts | 3 ++ src/data/districts/siliconValley.ts | 3 ++ src/data/districts/silverLake.ts | 3 ++ src/data/districts/stratfordUponAvon.ts | 3 ++ src/data/districts/tokyo.ts | 3 ++ src/data/districts/types.ts | 16 ++++++++ 14 files changed, 168 insertions(+), 73 deletions(-) delete mode 100644 src/data/districts.ts create mode 100644 src/data/districts/arcadia.ts create mode 100644 src/data/districts/arles.ts create mode 100644 src/data/districts/districts.ts create mode 100644 src/data/districts/functions.ts create mode 100644 src/data/districts/hollywood.ts create mode 100644 src/data/districts/oxford.ts create mode 100644 src/data/districts/petsburg.ts create mode 100644 src/data/districts/purgatory.ts create mode 100644 src/data/districts/siliconValley.ts create mode 100644 src/data/districts/silverLake.ts create mode 100644 src/data/districts/stratfordUponAvon.ts create mode 100644 src/data/districts/tokyo.ts create mode 100644 src/data/districts/types.ts (limited to 'src/data') diff --git a/src/data/districts.ts b/src/data/districts.ts deleted file mode 100644 index 0428b59..0000000 --- a/src/data/districts.ts +++ /dev/null @@ -1,73 +0,0 @@ -export interface District { - id: string; - name: string; - description: string; - image: string; -} - -export const districts: District[] = [ - { - id: "arcadia", - name: "Arcadia", - description: "Video games, puzzles, toys", - image: "/images/districts/internal/arcadia.png", - }, - { - id: "arles", - name: "Arles", - description: "Drawings, photos, visual art", - image: "/images/districts/internal/arles.png", - }, - { - id: "hollywood", - name: "Hollywood", - description: "Cartoons, movies, western media", - image: "/images/districts/internal/hollywood.png", - }, - { - id: "oxford", - name: "Oxford", - description: "Books, literature, poetry", - image: "/images/districts/internal/oxford.png", - }, - { - id: "petsburg", - name: "Petsburg", - description: "Animals and people who love them", - image: "/images/districts/internal/petsburg.png", - }, - { - id: "purgatory", - name: "Purgatory", - description: "Horror, dark, gothic", - image: "/images/districts/internal/purgatory.png", - }, - { - id: "silicon-valley", - name: "Silicon Valley", - description: "Tech, programming, computers", - image: "/images/districts/internal/silicon.png", - }, - { - id: "silver-lake", - name: "Silver Lake", - description: "Music, bands, concerts", - image: "/images/districts/internal/silver.png", - }, - { - id: "stratford-upon-avon", - name: "Stratford-upon-Avon", - description: "Writers and their writing", - image: "/images/districts/internal/stratford.png", - }, - { - id: "tokyo", - name: "Tokyo", - description: "Anime, manga, and the far east", - 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/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/districts.ts b/src/data/districts/districts.ts new file mode 100644 index 0000000..a134d56 --- /dev/null +++ b/src/data/districts/districts.ts @@ -0,0 +1,64 @@ +import type { District } from "./types"; + +export const districts: District[] = [ + { + id: "arcadia", + name: "Arcadia", + description: "Video games, puzzles, toys", + image: "/images/districts/internal/arcadia.png", + }, + { + id: "arles", + name: "Arles", + description: "Drawings, photos, visual art", + image: "/images/districts/internal/arles.png", + }, + { + id: "hollywood", + name: "Hollywood", + description: "Cartoons, movies, western media", + image: "/images/districts/internal/hollywood.png", + }, + { + id: "oxford", + name: "Oxford", + description: "Books, literature, poetry", + image: "/images/districts/internal/oxford.png", + }, + { + id: "petsburg", + name: "Petsburg", + description: "Animals and people who love them", + image: "/images/districts/internal/petsburg.png", + }, + { + id: "purgatory", + name: "Purgatory", + description: "Horror, dark, gothic", + image: "/images/districts/internal/purgatory.png", + }, + { + id: "silicon-valley", + name: "Silicon Valley", + description: "Tech, programming, computers", + image: "/images/districts/internal/silicon.png", + }, + { + id: "silver-lake", + name: "Silver Lake", + description: "Music, bands, concerts", + image: "/images/districts/internal/silver.png", + }, + { + id: "stratford-upon-avon", + name: "Stratford-upon-Avon", + description: "Writers and their writing", + image: "/images/districts/internal/stratford.png", + }, + { + id: "tokyo", + name: "Tokyo", + description: "Anime, manga, and the far east", + image: "/images/districts/internal/tokyo.png", + }, +]; 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; +} -- cgit v1.2.3