Compare commits
2 Commits
6fec76ffed
...
130e7928d1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
130e7928d1 | ||
|
|
b0704cea85 |
28
Dockerfile
Normal file
28
Dockerfile
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
FROM node:22-slim AS base
|
||||||
|
ENV PNPM_HOME="/pnpm"
|
||||||
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
|
RUN corepack enable
|
||||||
|
|
||||||
|
# Stage 1: Install dependencies
|
||||||
|
FROM base AS deps
|
||||||
|
WORKDIR /app
|
||||||
|
COPY package.json pnpm-lock.yaml ./
|
||||||
|
RUN pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
# Stage 2: Build the application
|
||||||
|
FROM base AS builder
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=deps /app/node_modules ./node_modules
|
||||||
|
COPY . .
|
||||||
|
RUN pnpm run build
|
||||||
|
|
||||||
|
# Stage 3: Production server
|
||||||
|
FROM base AS runner
|
||||||
|
WORKDIR /app
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
COPY --from=builder /app/public ./public
|
||||||
|
COPY --from=builder /app/.next/standalone ./
|
||||||
|
COPY --from=builder /app/.next/static ./.next/static
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
CMD ["node", "server.js"]
|
||||||
@ -1,16 +1,46 @@
|
|||||||
---
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
web:
|
||||||
image: postgres:12.18
|
build: .
|
||||||
restart: always
|
|
||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "3000:3000"
|
||||||
environment:
|
environment:
|
||||||
- POSTGRES_USER=postgres
|
- NODE_ENV=production
|
||||||
- POSTGRES_PASSWORD=admin
|
# depends_on:
|
||||||
- POSTGRES_DB=website
|
# - db
|
||||||
volumes:
|
# networks:
|
||||||
- ial-website-data:/var/lib/postgresql/data
|
# - my_network
|
||||||
|
# volumes:
|
||||||
|
# - payload_media:/data/media
|
||||||
|
|
||||||
|
# db:
|
||||||
|
# image: postgres:latest
|
||||||
|
# environment:
|
||||||
|
# POSTGRES_USER: ${POSTGRES_USER}
|
||||||
|
# POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
|
# POSTGRES_DB: ${POSTGRES_DB}
|
||||||
|
# ports:
|
||||||
|
# - "5432:5432"
|
||||||
|
# volumes:
|
||||||
|
# - postgres_data:/var/lib/postgresql/data
|
||||||
|
# networks:
|
||||||
|
# - my_network
|
||||||
|
|
||||||
|
# cron:
|
||||||
|
# image: alpine/curl
|
||||||
|
# command: >
|
||||||
|
# sh -c "
|
||||||
|
# echo '*/10 * * * * curl -X POST http://web:3000/db/clear' > /etc/crontabs/root && \
|
||||||
|
# crond -f -l 2
|
||||||
|
# "
|
||||||
|
# depends_on:
|
||||||
|
# - web
|
||||||
|
# networks:
|
||||||
|
# - my_network
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
ial-website-data:
|
postgres_data:
|
||||||
|
# payload_media:
|
||||||
|
# networks:
|
||||||
|
# my_network:
|
||||||
|
# name: my_network
|
||||||
|
# driver: bridge
|
||||||
|
|||||||
@ -3,12 +3,14 @@ import withPayload from "@payloadcms/next/withPayload";
|
|||||||
|
|
||||||
const nextConfig: NextConfig = {
|
const nextConfig: NextConfig = {
|
||||||
/* config options here */
|
/* config options here */
|
||||||
|
output: "standalone",
|
||||||
images: {
|
images: {
|
||||||
remotePatterns: [
|
remotePatterns: [
|
||||||
new URL("http://localhost:3000/**"),
|
new URL("http://localhost:3000/**"),
|
||||||
new URL("https://inzight.co.nz/**"),
|
new URL("https://inzight.co.nz/**"),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
compress: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default withPayload(nextConfig);
|
export default withPayload(nextConfig);
|
||||||
|
|||||||
@ -6,7 +6,8 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"start": "next start",
|
"prestart": "cp -r public .next/standalone/ && cp -r .next/static .next/standalone/.next/",
|
||||||
|
"start": "node .next/standalone/server.js",
|
||||||
"lint": "next lint"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -32,11 +33,14 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3",
|
"@eslint/eslintrc": "^3",
|
||||||
|
"@next/eslint-plugin-next": "^15.4.6",
|
||||||
"@types/node": "^20",
|
"@types/node": "^20",
|
||||||
"@types/react": "^19",
|
"@types/react": "^19",
|
||||||
"@types/react-dom": "^19",
|
"@types/react-dom": "^19",
|
||||||
"eslint": "^9",
|
"eslint": "^9",
|
||||||
"eslint-config-next": "15.3.1",
|
"eslint-config-next": "15.3.1",
|
||||||
|
"eslint-plugin-react": "^7.37.5",
|
||||||
|
"eslint-plugin-react-hooks": "^5.2.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"typescript": "^5"
|
"typescript": "^5"
|
||||||
}
|
}
|
||||||
|
|||||||
161
pnpm-lock.yaml
generated
161
pnpm-lock.yaml
generated
@ -69,6 +69,9 @@ importers:
|
|||||||
'@eslint/eslintrc':
|
'@eslint/eslintrc':
|
||||||
specifier: ^3
|
specifier: ^3
|
||||||
version: 3.3.1
|
version: 3.3.1
|
||||||
|
'@next/eslint-plugin-next':
|
||||||
|
specifier: ^15.4.6
|
||||||
|
version: 15.4.6
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^20
|
specifier: ^20
|
||||||
version: 20.17.30
|
version: 20.17.30
|
||||||
@ -84,6 +87,12 @@ importers:
|
|||||||
eslint-config-next:
|
eslint-config-next:
|
||||||
specifier: 15.3.1
|
specifier: 15.3.1
|
||||||
version: 15.3.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
version: 15.3.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
||||||
|
eslint-plugin-react:
|
||||||
|
specifier: ^7.37.5
|
||||||
|
version: 7.37.5(eslint@9.25.0(jiti@2.4.2))
|
||||||
|
eslint-plugin-react-hooks:
|
||||||
|
specifier: ^5.2.0
|
||||||
|
version: 5.2.0(eslint@9.25.0(jiti@2.4.2))
|
||||||
prettier:
|
prettier:
|
||||||
specifier: ^3.5.3
|
specifier: ^3.5.3
|
||||||
version: 3.5.3
|
version: 3.5.3
|
||||||
@ -651,6 +660,12 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||||
|
|
||||||
|
'@eslint-community/eslint-utils@4.7.0':
|
||||||
|
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
|
||||||
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.12.1':
|
'@eslint-community/regexpp@4.12.1':
|
||||||
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
|
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
|
||||||
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
||||||
@ -966,6 +981,9 @@ packages:
|
|||||||
'@next/eslint-plugin-next@15.3.1':
|
'@next/eslint-plugin-next@15.3.1':
|
||||||
resolution: {integrity: sha512-oEs4dsfM6iyER3jTzMm4kDSbrQJq8wZw5fmT6fg2V3SMo+kgG+cShzLfEV20senZzv8VF+puNLheiGPlBGsv2A==}
|
resolution: {integrity: sha512-oEs4dsfM6iyER3jTzMm4kDSbrQJq8wZw5fmT6fg2V3SMo+kgG+cShzLfEV20senZzv8VF+puNLheiGPlBGsv2A==}
|
||||||
|
|
||||||
|
'@next/eslint-plugin-next@15.4.6':
|
||||||
|
resolution: {integrity: sha512-2NOu3ln+BTcpnbIDuxx6MNq+pRrCyey4WSXGaJIyt0D2TYicHeO9QrUENNjcf673n3B1s7hsiV5xBYRCK1Q8kA==}
|
||||||
|
|
||||||
'@next/swc-darwin-arm64@15.3.1':
|
'@next/swc-darwin-arm64@15.3.1':
|
||||||
resolution: {integrity: sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==}
|
resolution: {integrity: sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
@ -1344,13 +1362,13 @@ packages:
|
|||||||
'@types/uuid@10.0.0':
|
'@types/uuid@10.0.0':
|
||||||
resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
|
resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.30.1':
|
'@typescript-eslint/eslint-plugin@8.39.0':
|
||||||
resolution: {integrity: sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==}
|
resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
|
'@typescript-eslint/parser': ^8.39.0
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <5.9.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/parser@8.30.1':
|
'@typescript-eslint/parser@8.30.1':
|
||||||
resolution: {integrity: sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==}
|
resolution: {integrity: sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==}
|
||||||
@ -1359,38 +1377,68 @@ packages:
|
|||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <5.9.0'
|
typescript: '>=4.8.4 <5.9.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/project-service@8.39.0':
|
||||||
|
resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/scope-manager@8.30.1':
|
'@typescript-eslint/scope-manager@8.30.1':
|
||||||
resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==}
|
resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.30.1':
|
'@typescript-eslint/scope-manager@8.39.0':
|
||||||
resolution: {integrity: sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==}
|
resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/tsconfig-utils@8.39.0':
|
||||||
|
resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/type-utils@8.39.0':
|
||||||
|
resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <5.9.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/types@8.30.1':
|
'@typescript-eslint/types@8.30.1':
|
||||||
resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==}
|
resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/types@8.39.0':
|
||||||
|
resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@8.30.1':
|
'@typescript-eslint/typescript-estree@8.30.1':
|
||||||
resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==}
|
resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4 <5.9.0'
|
typescript: '>=4.8.4 <5.9.0'
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.30.1':
|
'@typescript-eslint/typescript-estree@8.39.0':
|
||||||
resolution: {integrity: sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==}
|
resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/utils@8.39.0':
|
||||||
|
resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <5.9.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/visitor-keys@8.30.1':
|
'@typescript-eslint/visitor-keys@8.30.1':
|
||||||
resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==}
|
resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/visitor-keys@8.39.0':
|
||||||
|
resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@unrs/resolver-binding-darwin-arm64@1.5.0':
|
'@unrs/resolver-binding-darwin-arm64@1.5.0':
|
||||||
resolution: {integrity: sha512-YmocNlEcX/AgJv8gI41bhjMOTcKcea4D2nRIbZj+MhRtSH5+vEU8r/pFuTuoF+JjVplLsBueU+CILfBPVISyGQ==}
|
resolution: {integrity: sha512-YmocNlEcX/AgJv8gI41bhjMOTcKcea4D2nRIbZj+MhRtSH5+vEU8r/pFuTuoF+JjVplLsBueU+CILfBPVISyGQ==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
@ -2185,6 +2233,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
|
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
eslint-visitor-keys@4.2.1:
|
||||||
|
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
eslint@9.25.0:
|
eslint@9.25.0:
|
||||||
resolution: {integrity: sha512-MsBdObhM4cEwkzCiraDv7A6txFXEqtNXOb877TsSp2FCkBNl8JfVQrmiuDqC1IkejT6JLPzYBXx/xAiYhyzgGA==}
|
resolution: {integrity: sha512-MsBdObhM4cEwkzCiraDv7A6txFXEqtNXOb877TsSp2FCkBNl8JfVQrmiuDqC1IkejT6JLPzYBXx/xAiYhyzgGA==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@ -2439,6 +2491,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
|
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
|
||||||
engines: {node: '>= 4'}
|
engines: {node: '>= 4'}
|
||||||
|
|
||||||
|
ignore@7.0.5:
|
||||||
|
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
|
||||||
|
engines: {node: '>= 4'}
|
||||||
|
|
||||||
image-size@2.0.2:
|
image-size@2.0.2:
|
||||||
resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==}
|
resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==}
|
||||||
engines: {node: '>=16.x'}
|
engines: {node: '>=16.x'}
|
||||||
@ -4139,6 +4195,11 @@ snapshots:
|
|||||||
eslint: 9.25.0(jiti@2.4.2)
|
eslint: 9.25.0(jiti@2.4.2)
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
|
'@eslint-community/eslint-utils@4.7.0(eslint@9.25.0(jiti@2.4.2))':
|
||||||
|
dependencies:
|
||||||
|
eslint: 9.25.0(jiti@2.4.2)
|
||||||
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.12.1': {}
|
'@eslint-community/regexpp@4.12.1': {}
|
||||||
|
|
||||||
'@eslint/config-array@0.20.0':
|
'@eslint/config-array@0.20.0':
|
||||||
@ -4504,6 +4565,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fast-glob: 3.3.1
|
fast-glob: 3.3.1
|
||||||
|
|
||||||
|
'@next/eslint-plugin-next@15.4.6':
|
||||||
|
dependencies:
|
||||||
|
fast-glob: 3.3.1
|
||||||
|
|
||||||
'@next/swc-darwin-arm64@15.3.1':
|
'@next/swc-darwin-arm64@15.3.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
@ -5009,17 +5074,17 @@ snapshots:
|
|||||||
|
|
||||||
'@types/uuid@10.0.0': {}
|
'@types/uuid@10.0.0': {}
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)':
|
'@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/regexpp': 4.12.1
|
'@eslint-community/regexpp': 4.12.1
|
||||||
'@typescript-eslint/parser': 8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
'@typescript-eslint/parser': 8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
||||||
'@typescript-eslint/scope-manager': 8.30.1
|
'@typescript-eslint/scope-manager': 8.39.0
|
||||||
'@typescript-eslint/type-utils': 8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
'@typescript-eslint/type-utils': 8.39.0(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
||||||
'@typescript-eslint/utils': 8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
'@typescript-eslint/utils': 8.39.0(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
||||||
'@typescript-eslint/visitor-keys': 8.30.1
|
'@typescript-eslint/visitor-keys': 8.39.0
|
||||||
eslint: 9.25.0(jiti@2.4.2)
|
eslint: 9.25.0(jiti@2.4.2)
|
||||||
graphemer: 1.4.0
|
graphemer: 1.4.0
|
||||||
ignore: 5.3.2
|
ignore: 7.0.5
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
ts-api-utils: 2.1.0(typescript@5.8.3)
|
ts-api-utils: 2.1.0(typescript@5.8.3)
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
@ -5038,15 +5103,34 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/project-service@8.39.0(typescript@5.8.3)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.8.3)
|
||||||
|
'@typescript-eslint/types': 8.39.0
|
||||||
|
debug: 4.4.0
|
||||||
|
typescript: 5.8.3
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/scope-manager@8.30.1':
|
'@typescript-eslint/scope-manager@8.30.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.30.1
|
'@typescript-eslint/types': 8.30.1
|
||||||
'@typescript-eslint/visitor-keys': 8.30.1
|
'@typescript-eslint/visitor-keys': 8.30.1
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)':
|
'@typescript-eslint/scope-manager@8.39.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3)
|
'@typescript-eslint/types': 8.39.0
|
||||||
'@typescript-eslint/utils': 8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
'@typescript-eslint/visitor-keys': 8.39.0
|
||||||
|
|
||||||
|
'@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.8.3)':
|
||||||
|
dependencies:
|
||||||
|
typescript: 5.8.3
|
||||||
|
|
||||||
|
'@typescript-eslint/type-utils@8.39.0(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.39.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.3)
|
||||||
|
'@typescript-eslint/utils': 8.39.0(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
||||||
debug: 4.4.0
|
debug: 4.4.0
|
||||||
eslint: 9.25.0(jiti@2.4.2)
|
eslint: 9.25.0(jiti@2.4.2)
|
||||||
ts-api-utils: 2.1.0(typescript@5.8.3)
|
ts-api-utils: 2.1.0(typescript@5.8.3)
|
||||||
@ -5056,6 +5140,8 @@ snapshots:
|
|||||||
|
|
||||||
'@typescript-eslint/types@8.30.1': {}
|
'@typescript-eslint/types@8.30.1': {}
|
||||||
|
|
||||||
|
'@typescript-eslint/types@8.39.0': {}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)':
|
'@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.30.1
|
'@typescript-eslint/types': 8.30.1
|
||||||
@ -5070,12 +5156,28 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)':
|
'@typescript-eslint/typescript-estree@8.39.0(typescript@5.8.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.0(jiti@2.4.2))
|
'@typescript-eslint/project-service': 8.39.0(typescript@5.8.3)
|
||||||
'@typescript-eslint/scope-manager': 8.30.1
|
'@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.8.3)
|
||||||
'@typescript-eslint/types': 8.30.1
|
'@typescript-eslint/types': 8.39.0
|
||||||
'@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3)
|
'@typescript-eslint/visitor-keys': 8.39.0
|
||||||
|
debug: 4.4.0
|
||||||
|
fast-glob: 3.3.3
|
||||||
|
is-glob: 4.0.3
|
||||||
|
minimatch: 9.0.5
|
||||||
|
semver: 7.7.1
|
||||||
|
ts-api-utils: 2.1.0(typescript@5.8.3)
|
||||||
|
typescript: 5.8.3
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/utils@8.39.0(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)':
|
||||||
|
dependencies:
|
||||||
|
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.0(jiti@2.4.2))
|
||||||
|
'@typescript-eslint/scope-manager': 8.39.0
|
||||||
|
'@typescript-eslint/types': 8.39.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.3)
|
||||||
eslint: 9.25.0(jiti@2.4.2)
|
eslint: 9.25.0(jiti@2.4.2)
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@ -5086,6 +5188,11 @@ snapshots:
|
|||||||
'@typescript-eslint/types': 8.30.1
|
'@typescript-eslint/types': 8.30.1
|
||||||
eslint-visitor-keys: 4.2.0
|
eslint-visitor-keys: 4.2.0
|
||||||
|
|
||||||
|
'@typescript-eslint/visitor-keys@8.39.0':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.39.0
|
||||||
|
eslint-visitor-keys: 4.2.1
|
||||||
|
|
||||||
'@unrs/resolver-binding-darwin-arm64@1.5.0':
|
'@unrs/resolver-binding-darwin-arm64@1.5.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
@ -5854,7 +5961,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@next/eslint-plugin-next': 15.3.1
|
'@next/eslint-plugin-next': 15.3.1
|
||||||
'@rushstack/eslint-patch': 1.11.0
|
'@rushstack/eslint-patch': 1.11.0
|
||||||
'@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
'@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
||||||
'@typescript-eslint/parser': 8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
'@typescript-eslint/parser': 8.30.1(eslint@9.25.0(jiti@2.4.2))(typescript@5.8.3)
|
||||||
eslint: 9.25.0(jiti@2.4.2)
|
eslint: 9.25.0(jiti@2.4.2)
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
@ -5987,6 +6094,8 @@ snapshots:
|
|||||||
|
|
||||||
eslint-visitor-keys@4.2.0: {}
|
eslint-visitor-keys@4.2.0: {}
|
||||||
|
|
||||||
|
eslint-visitor-keys@4.2.1: {}
|
||||||
|
|
||||||
eslint@9.25.0(jiti@2.4.2):
|
eslint@9.25.0(jiti@2.4.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.0(jiti@2.4.2))
|
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.0(jiti@2.4.2))
|
||||||
@ -6261,6 +6370,8 @@ snapshots:
|
|||||||
|
|
||||||
ignore@5.3.2: {}
|
ignore@5.3.2: {}
|
||||||
|
|
||||||
|
ignore@7.0.5: {}
|
||||||
|
|
||||||
image-size@2.0.2: {}
|
image-size@2.0.2: {}
|
||||||
|
|
||||||
immutable@4.3.7: {}
|
immutable@4.3.7: {}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import { motion, MotionValue, useScroll, useTransform } from "motion/react";
|
import { motion, MotionValue, useScroll, useTransform } from "motion/react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { useEffect, useRef } from "react";
|
import { useRef } from "react";
|
||||||
|
|
||||||
const collaborators = {
|
const collaborators = {
|
||||||
aotearoa: Array.from({ length: 16 }).map((x, i) => `Organisation ${i}`),
|
aotearoa: Array.from({ length: 16 }).map((x, i) => `Organisation ${i}`),
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import useWindow from "@/app/(website)/hooks/useWindow";
|
|||||||
import { HomeProject, Project } from "@payload-types";
|
import { HomeProject, Project } from "@payload-types";
|
||||||
import { RichText } from "@payloadcms/richtext-lexical/react";
|
import { RichText } from "@payloadcms/richtext-lexical/react";
|
||||||
import { motion, useScroll, useTransform } from "motion/react";
|
import { motion, useScroll, useTransform } from "motion/react";
|
||||||
import Image from "next/image";
|
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { useRef, useState } from "react";
|
import { useRef, useState } from "react";
|
||||||
import PayloadImage from "../../PayloadImage";
|
import PayloadImage from "../../PayloadImage";
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import { revalidatePath } from "next/cache";
|
||||||
import { GlobalConfig } from "payload";
|
import { GlobalConfig } from "payload";
|
||||||
|
|
||||||
export const General: GlobalConfig = {
|
export const General: GlobalConfig = {
|
||||||
@ -12,4 +13,10 @@ export const General: GlobalConfig = {
|
|||||||
relationTo: "images",
|
relationTo: "images",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
hooks: {
|
||||||
|
afterChange: [
|
||||||
|
// revalidate ALL pages ...
|
||||||
|
() => revalidatePath("/", "layout"),
|
||||||
|
],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { GlobalConfig } from "payload";
|
import { GlobalConfig } from "payload";
|
||||||
|
import refreshHome from "./hooks/refreshHome";
|
||||||
|
|
||||||
export const HomeHero: GlobalConfig = {
|
export const HomeHero: GlobalConfig = {
|
||||||
slug: "homeHero",
|
slug: "homeHero",
|
||||||
@ -111,4 +112,7 @@ export const HomeHero: GlobalConfig = {
|
|||||||
admin: {
|
admin: {
|
||||||
group: "Home page",
|
group: "Home page",
|
||||||
},
|
},
|
||||||
|
hooks: {
|
||||||
|
afterChange: [refreshHome],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { GlobalConfig } from "payload";
|
import { GlobalConfig } from "payload";
|
||||||
|
import refreshHome from "./hooks/refreshHome";
|
||||||
|
|
||||||
export const HomeProjects: GlobalConfig = {
|
export const HomeProjects: GlobalConfig = {
|
||||||
slug: "homeProjects",
|
slug: "homeProjects",
|
||||||
@ -19,4 +20,7 @@ export const HomeProjects: GlobalConfig = {
|
|||||||
admin: {
|
admin: {
|
||||||
group: "Home page",
|
group: "Home page",
|
||||||
},
|
},
|
||||||
|
hooks: {
|
||||||
|
afterChange: [refreshHome],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
5
src/globals/Home/hooks/refreshHome.ts
Normal file
5
src/globals/Home/hooks/refreshHome.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { revalidatePath } from "next/cache";
|
||||||
|
|
||||||
|
export default function refreshHome() {
|
||||||
|
revalidatePath("/");
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user