Skip to content

Commit 19a4047

Browse files
committed
Merge remote-tracking branch 'origin/develop'
2 parents 027559e + 488ded0 commit 19a4047

File tree

38 files changed

+13620
-8278
lines changed

38 files changed

+13620
-8278
lines changed

.env-sample

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
DATABASE_URL="postgres://postgres:postgres@localhost:5438/postgres"
2-
DATABASE_POOL_URL="postgres://postgres:postgres@localhost:5438/postgres"
3-
NEXT_PUBLIC_SUPABASE_URL="http://localhost:8765"
4-
NEXT_PUBLIC_SUPABASE_ANON_KEY="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTYwMzk2ODgzNCwiZXhwIjoyNTUwNjUzNjM0LCJyb2xlIjoiYW5vbiJ9.36fUebxgx1mcBo4s19v0SzqmzunP--hm_hep0uLX0ew"
5-
# Supabase Key (service_role, private): eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTYwMzk2ODgzNCwiZXhwIjoyNTUwNjUzNjM0LCJyb2xlIjoic2VydmljZV9yb2xlIn0.necIJaiP7X2T2QjGeV-FhpkizcNTX8HjDDBAxpgQTEI
6-
# Email testing interface URL: http://localhost:9000
1+
DATABASE_URL="postgres://postgres:postgres@localhost:54322/postgres"
2+
DATABASE_POOL_URL="postgres://postgres:postgres@localhost:54322/postgres"
3+
NEXT_PUBLIC_SUPABASE_URL="http://localhost:54321"
4+
NEXT_PUBLIC_SUPABASE_ANON_KEY=""
75

86
YOUTUBE_API_KEY=""
97
CLOUDINARY_URL=""

.eslintignore

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ dist
2525
logs
2626
*.log
2727
npm-debug.log*
28-
yarn-debug.log*
29-
yarn-error.log*
3028

3129
# Runtime data
3230
pids
@@ -74,8 +72,6 @@ jspm_packages/
7472
# Output of 'npm pack'
7573
*.tgz
7674

77-
# Yarn Integrity file
78-
.yarn-integrity
7975

8076
# dotenv environment variables file
8177
.env
@@ -116,8 +112,6 @@ dist
116112
logs
117113
*.log
118114
npm-debug.log*
119-
yarn-debug.log*
120-
yarn-error.log*
121115

122116
# Runtime data
123117
pids
@@ -165,8 +159,6 @@ jspm_packages/
165159
# Output of 'npm pack'
166160
*.tgz
167161

168-
# Yarn Integrity file
169-
.yarn-integrity
170162

171163
# dotenv environment variables file
172164
.env

.github/workflows/test-pr.yml

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,40 @@ jobs:
1010
runs-on: ubuntu-latest
1111

1212
steps:
13-
- uses: actions/checkout@v2
13+
- uses: actions/checkout@v3
1414
with:
1515
fetch-depth: 100
1616

17-
- name: Read .nvmrc
18-
run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)"
19-
id: nvm
20-
- name: Use Node.js
21-
uses: actions/setup-node@v1
17+
- uses: actions/setup-node@v3
2218
with:
23-
node-version: '${{ steps.nvm.outputs.NVMRC }}'
24-
- name: Get yarn cache directory path
25-
id: yarn-cache-dir-path
26-
run: echo "::set-output name=dir::$(yarn cache dir)"
19+
node-version-file: '.nvmrc'
2720

28-
- uses: actions/cache@v2
29-
id: yarn-cache
21+
- uses: pnpm/action-setup@v2
3022
with:
31-
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
32-
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
23+
run_install: false
24+
25+
- name: Get pnpm store directory
26+
id: pnpm-cache
27+
shell: bash
28+
run: |
29+
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
30+
31+
- uses: actions/cache@v3
32+
name: Setup pnpm cache
33+
with:
34+
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
35+
key: node-cache-${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
3336
restore-keys: |
34-
${{ runner.os }}-yarn-
35-
${{ runner.os }}-
37+
node-cache-${{ runner.os }}-pnpm-
3638
3739
- name: Install dependencies
38-
run: yarn install --frozen-lockfile
40+
run: pnpm --version && pnpm install --frozen-lockfile
3941

4042
- name: Copy .env
4143
run: cp .env-sample .env
4244

4345
- name: Run tests
4446
run: |
45-
yarn tsc
46-
yarn eslint
47-
yarn test:ci
47+
pnpm tsc
48+
pnpm eslint
49+
pnpm test:ci

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
.pnp.js
1313
.tmp
1414
.version
15-
.yarn-integrity
1615
*.log
1716
*.pid
1817
*.pid.lock
@@ -39,8 +38,6 @@ npm-debug.log*
3938
package-lock.json
4039
pids
4140
test-results.xml
42-
yarn-error.log*
43-
yarn.lock
4441

4542
key
4643
key.pub

.husky/pre-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/sh
22
. "$(dirname "$0")/_/husky.sh"
33

4-
yarn lint-staged
4+
pnpm lint-staged

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
14
1+
18

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"editor.formatOnSave": true,
33
"editor.defaultFormatter": "esbenp.prettier-vscode",
44
"typescript.tsdk": "node_modules/typescript/lib",
5-
"eslint.packageManager": "yarn",
5+
"eslint.packageManager": "pnpm",
66
"eslint.run": "onSave",
77
"editor.codeActionsOnSave": {
88
"source.fixAll": true

CONTRIBUTING.md

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,33 @@ Zachęcamy do otwierania Issues ze znalezionymi bugami i z sugestiami tego, co m
1515

1616
## Wymagania
1717

18-
- `yarn` w wersji co najmniej 1.22.x, ale mniejszej niż 2.x.x
19-
- Docker i polecenie `docker-compose`
18+
- `pnpm` w wersji co najmniej 7.17.0
19+
- Docker i polecenie `docker compose`
2020

2121
## Praca lokalna
2222

2323
Przed przystąpieniem do pracy należy skopiować plik `.env-sample` do `.env`.
24-
Projekt uruchamiamy jednym poleceniem `yarn dev`. Spowoduje ono instalację wszystkich potrzebnych zależności, uruchomienie kontenera w Dockerze oraz naszej aplikacji.
24+
Projekt uruchamiamy jednym poleceniem `pnpm dev`. Spowoduje ono instalację wszystkich potrzebnych zależności, uruchomienie kontenera w Dockerze oraz naszej aplikacji.
2525
Po chwili powinna być gotowa pod adresem http://localhost:3000/
2626

2727
### Uwaga co do Supabase
2828

29-
Przy pierwszym uruchomieniu, możesz zobaczyć komunikat mówiąc o braku Supabase. W takim przypadku uruchom polecenie `yarn supabase init` i zatwierdź domyślne opcje wciskając 3xenter. Po dłuższej chwili na ekranie zobaczysz 5 wartości:
29+
Przy pierwszym uruchomieniu, możesz zobaczyć komunikat mówiąc o braku Supabase. W takim przypadku uruchom polecenie `pnpm supabase init`. Następnie uruchom `pnpm supabase start`.
3030

31-
- Supabase URL
32-
- Supabase Key (anon, public)
33-
- Supabase Key (service_role, private)
34-
- Database URL
35-
- Email testing interface URL
31+
Użyj komendy `pnpm supabase status`, aby uzyskać dostęp do wartości, które następnie musisz skopiować do swojego pliku `.env`. Odpowiednio:
3632

37-
Koniecznie skopiuj je do swojego pliku `.env` odpowiednio:
33+
- `API URL` jako `NEXT_PUBLIC_SUPABASE_URL`
34+
- `anon key` jako `NEXT_PUBLIC_SUPABASE_ANON_KEY`
35+
- `DB URL` jako `DATABASE_URL` oraz `DATABASE_POOL_URL`
3836

39-
- Supabase URL jako `NEXT_PUBLIC_SUPABASE_URL`
40-
- Supabase Key (anon, public) jako `NEXT_PUBLIC_SUPABASE_ANON_KEY`
41-
- Database URL jako `DATABASE_URL` i `DATABASE_POOL_URL`
42-
- Supabase Key (service_role, private) oraz Email testing interface URL nie będą potrzebne
43-
44-
Następnie ponownie odpal `yarn dev`.
37+
Następnie odpal `pnpm dev`.
4538

4639
## Przywracanie danych z DUMP.sql
4740

4841
Gdy wszystko będzie już gotowe, to w drugim oknie terminala należy wpisać polecenie:
4942

5043
```bash
51-
docker exec -i supabase-db psql postgres -U postgres < DUMP.sql
44+
docker exec -i supabase_db_polskifrontend psql postgres -U postgres < DUMP.sql
5245
```
5346

5447
Spowoduje to załadowanie danych do bazy z pliku DUMP.sql.
@@ -57,6 +50,6 @@ Spowoduje to załadowanie danych do bazy z pliku DUMP.sql.
5750

5851
Większość konwencji w projekcie jest wymuszona przez `prettier` i/lub `eslint` oraz TypeScripta.
5952

60-
Ważna uwaga odnośnie tworzenia Pull Requestów: Od 29. grudnia korzystamy z "Conventional Commits", aby łatwiej nam było generować CHANGELOG. **Nazwy commitów mogą być dowolne**, ale **tytuł samego PR-a musi spełniać określone wymagania**! Więcej informacji oraz przykłady można znaleźć tutaj: https://highlab.pl/conventional-commits/
53+
Ważna uwaga odnośnie tworzenia Pull Requestów: korzystamy z "Conventional Commits", aby łatwiej nam było generować CHANGELOG. **Nazwy commitów mogą być dowolne**, ale **tytuł samego PR-a musi spełniać określone wymagania**! Więcej informacji oraz przykłady można znaleźć tutaj: https://highlab.pl/conventional-commits/
6154

6255
**Tytuły i opisy PR-ów piszemy w języku polskim!**

api-helpers/api-hofs.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
/* eslint-disable @typescript-eslint/consistent-type-assertions -- this is, in principle, unsafe */
22
import Boom from '@hapi/boom';
3+
import { createServerSupabaseClient } from '@supabase/auth-helpers-nextjs';
34
import { object } from 'yup';
45

5-
import { supabase } from '../utils/api/initSupabase';
6-
76
import { logger } from './logger';
87
import { closeConnection, openConnection } from './prisma/db';
98
import { handlePrismaError, isPrismaError } from './prisma/prisma-helper';
109

1110
import type { Member, PrismaClient, UserRole } from '@prisma/client';
12-
import type { User } from '@supabase/gotrue-js';
11+
import type { User } from '@supabase/auth-helpers-nextjs';
1312
import type { IncomingMessage } from 'http';
1413
import type { NextApiResponse, NextApiRequest } from 'next';
1514
import type { AnySchema, ObjectSchema, InferType } from 'yup';
@@ -143,18 +142,28 @@ export function withAuth(role?: UserRole) {
143142
) => unknown,
144143
) =>
145144
withDb<R>(async (req, res) => {
146-
const session = await supabase.auth.api.getUserByCookie(req);
145+
const supabase = createServerSupabaseClient({ req, res } as unknown as {
146+
readonly req: NextApiRequest;
147+
readonly res: NextApiResponse;
148+
});
149+
const session = await supabase.auth.getSession();
150+
151+
if (session.error) {
152+
throw Boom.unauthorized();
153+
}
147154

148-
if (!session?.user) {
155+
if (!session.data.session?.user) {
149156
throw Boom.unauthorized();
150157
}
151158

152-
const member = await req.db.member.findUnique({ where: { id: session.user.id } });
159+
const member = await req.db.member.findUnique({
160+
where: { id: session.data.session.user.id },
161+
});
153162
if (!member || (role && member.role !== role)) {
154163
throw Boom.unauthorized();
155164
}
156165

157-
return handler(unsafe__set(req, 'session', { user: session.user, member }), res);
166+
return handler(unsafe__set(req, 'session', { user: session.data.session.user, member }), res);
158167
});
159168
}
160169

components/AboutSection/AboutSection.tsx

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import Link from 'next/link';
22

3-
import { Button } from '../Button/Button';
3+
import { ButtonAsLink } from '../ButtonAsLink/ButtonAsLink';
44

55
import Styles from './aboutSection.module.scss';
66

77
export const AboutSection = () => (
88
<section className={Styles.section}>
99
<h2 className={Styles.heading}>O serwisie</h2>
1010
<div className={Styles.buttons}>
11-
<Link href="/" passHref>
12-
<Button icon="icon-arrow-left2">Strona Główna</Button>
13-
</Link>
11+
<ButtonAsLink href="/" icon="icon-arrow-left2">
12+
Strona Główna
13+
</ButtonAsLink>
1414
</div>
1515
<article className={Styles.note}>
1616
<h3>Po co jest ten serwis?</h3>
@@ -33,11 +33,8 @@ export const AboutSection = () => (
3333
Jeżeli więc znasz (lub sam prowadzisz) jakiś blog, serwis lub stronę{' '}
3434
<strong>w języku polskim</strong>, której tutaj nie ma, a uważasz, że powinna się tu znaleźć
3535
- zapraszam do zgłoszenia go przez specjalnie do tego celu{' '}
36-
<Link href="/zglos-serwis">
37-
<a>przygotowany formularz</a>
38-
</Link>
39-
. Obiecuję, że przejrzę każde zgłoszenie i jeśli uznam, że dana strona się nadaje - dodam ją
40-
do serwisu!
36+
<Link href="/zglos-serwis">przygotowany formularz</Link>. Obiecuję, że przejrzę każde
37+
zgłoszenie i jeśli uznam, że dana strona się nadaje - dodam ją do serwisu!
4138
</p>
4239
<p>
4340
A jeśli podoba Ci się moja idea i sam prowadzisz bloga o frontendzie, to oprócz zgłoszenia

0 commit comments

Comments
 (0)