Compare commits
6 Commits
478e6b6fc4
...
360447149e
Author | SHA1 | Date | |
---|---|---|---|
![]() |
360447149e | ||
a96ad3692e | |||
![]() |
69b0f165fa | ||
![]() |
f85d4eecb6 | ||
18a0fdc514 | |||
ca17dd1adb |
2
.github/workflows/copyright_notice.yml
vendored
2
.github/workflows/copyright_notice.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
|||||||
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
|
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
|
||||||
with:
|
with:
|
||||||
CopyrightString: '/* Copyright (C) 2024 Manuel Bustillo*/\n\n'
|
CopyrightString: '/* Copyright (C) 2024 Manuel Bustillo*/\n\n'
|
||||||
FileType: '.tsx, .jsx'
|
FileType: '.tsx, .jsx, .ts'
|
||||||
Path: 'app/, config/, db/'
|
Path: 'app/, config/, db/'
|
||||||
IgnorePath: 'testfolder1/a/, testfolder3'
|
IgnorePath: 'testfolder1/a/, testfolder3'
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
/* Copyright (C) 2024 Manuel Bustillo*/
|
||||||
|
|
||||||
// This file contains type definitions for your data.
|
// This file contains type definitions for your data.
|
||||||
// It describes the shape of the data, and what data type each property should accept.
|
// It describes the shape of the data, and what data type each property should accept.
|
||||||
// For simplicity of teaching, we're manually defining these types.
|
// For simplicity of teaching, we're manually defining these types.
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
/* Copyright (C) 2024 Manuel Bustillo*/
|
||||||
|
|
||||||
// This file contains placeholder data that you'll be replacing with real data in the Data Fetching chapter:
|
// This file contains placeholder data that you'll be replacing with real data in the Data Fetching chapter:
|
||||||
// https://nextjs.org/learn/dashboard-app/fetching-data
|
// https://nextjs.org/learn/dashboard-app/fetching-data
|
||||||
const users = [
|
const users = [
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
/* Copyright (C) 2024 Manuel Bustillo*/
|
||||||
|
|
||||||
import { Revenue } from './definitions';
|
import { Revenue } from './definitions';
|
||||||
|
|
||||||
export const formatCurrency = (amount: number) => {
|
export const formatCurrency = (amount: number) => {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
/* Copyright (C) 2024 Manuel Bustillo*/
|
||||||
|
|
||||||
// import bcrypt from 'bcrypt';
|
// import bcrypt from 'bcrypt';
|
||||||
// import { db } from '@vercel/postgres';
|
// import { db } from '@vercel/postgres';
|
||||||
// import { guests, customers, revenue, users } from '../lib/placeholder-data';
|
// import { guests, customers, revenue, users } from '../lib/placeholder-data';
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
/* Copyright (C) 2024 Manuel Bustillo*/
|
||||||
|
|
||||||
import { Inter, Lusitana, Gloria_Hallelujah} from 'next/font/google';
|
import { Inter, Lusitana, Gloria_Hallelujah} from 'next/font/google';
|
||||||
|
|
||||||
export const inter = Inter({ subsets: ['latin'] });
|
export const inter = Inter({ subsets: ['latin'] });
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@heroicons/react": "^2.1.4",
|
"@heroicons/react": "^2.1.4",
|
||||||
"@tailwindcss/forms": "^0.5.7",
|
"@tailwindcss/forms": "^0.5.7",
|
||||||
"@vercel/postgres": "^0.9.0",
|
"@vercel/postgres": "^0.10.0",
|
||||||
"autoprefixer": "10.4.20",
|
"autoprefixer": "10.4.20",
|
||||||
"bcrypt": "^5.1.1",
|
"bcrypt": "^5.1.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
@ -27,7 +27,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@playwright/test": "^1.46.0",
|
"@playwright/test": "^1.46.0",
|
||||||
"@types/bcrypt": "^5.0.2",
|
"@types/bcrypt": "^5.0.2",
|
||||||
"@types/node": "22.7.9",
|
"@types/node": "22.8.1",
|
||||||
"@types/react": "18.3.5",
|
"@types/react": "18.3.5",
|
||||||
"@types/react-dom": "18.3.1"
|
"@types/react-dom": "18.3.1"
|
||||||
},
|
},
|
||||||
|
74
pnpm-lock.yaml
generated
74
pnpm-lock.yaml
generated
@ -15,8 +15,8 @@ importers:
|
|||||||
specifier: ^0.5.7
|
specifier: ^0.5.7
|
||||||
version: 0.5.9(tailwindcss@3.4.14)
|
version: 0.5.9(tailwindcss@3.4.14)
|
||||||
'@vercel/postgres':
|
'@vercel/postgres':
|
||||||
specifier: ^0.9.0
|
specifier: ^0.10.0
|
||||||
version: 0.9.0
|
version: 0.10.0(utf-8-validate@6.0.4)
|
||||||
autoprefixer:
|
autoprefixer:
|
||||||
specifier: 10.4.20
|
specifier: 10.4.20
|
||||||
version: 10.4.20(postcss@8.4.47)
|
version: 10.4.20(postcss@8.4.47)
|
||||||
@ -28,10 +28,10 @@ importers:
|
|||||||
version: 2.1.1
|
version: 2.1.1
|
||||||
next:
|
next:
|
||||||
specifier: 15.0.1
|
specifier: 15.0.1
|
||||||
version: 15.0.1(@playwright/test@1.48.1)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704)
|
version: 15.0.1(@playwright/test@1.48.2)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704)
|
||||||
next-auth:
|
next-auth:
|
||||||
specifier: 5.0.0-beta.25
|
specifier: 5.0.0-beta.25
|
||||||
version: 5.0.0-beta.25(next@15.0.1(@playwright/test@1.48.1)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704)
|
version: 5.0.0-beta.25(next@15.0.1(@playwright/test@1.48.2)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704)
|
||||||
postcss:
|
postcss:
|
||||||
specifier: 8.4.47
|
specifier: 8.4.47
|
||||||
version: 8.4.47
|
version: 8.4.47
|
||||||
@ -62,13 +62,13 @@ importers:
|
|||||||
devDependencies:
|
devDependencies:
|
||||||
'@playwright/test':
|
'@playwright/test':
|
||||||
specifier: ^1.46.0
|
specifier: ^1.46.0
|
||||||
version: 1.48.1
|
version: 1.48.2
|
||||||
'@types/bcrypt':
|
'@types/bcrypt':
|
||||||
specifier: ^5.0.2
|
specifier: ^5.0.2
|
||||||
version: 5.0.2
|
version: 5.0.2
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: 22.7.9
|
specifier: 22.8.1
|
||||||
version: 22.7.9
|
version: 22.8.1
|
||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: 18.3.5
|
specifier: 18.3.5
|
||||||
version: 18.3.5
|
version: 18.3.5
|
||||||
@ -312,8 +312,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
'@playwright/test@1.48.1':
|
'@playwright/test@1.48.2':
|
||||||
resolution: {integrity: sha512-s9RtWoxkOLmRJdw3oFvhFbs9OJS0BzrLUc8Hf6l2UdCNd1rqeEyD4BhCJkvzeEoD1FsK4mirsWwGerhVmYKtZg==}
|
resolution: {integrity: sha512-54w1xCWfXuax7dz4W2M9uw0gDyh+ti/0K/MxcCUxChFh37kkdxPdfZDw5QBbuPUJHr1CiHJ1hXgSs+GgeQc5Zw==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@ -334,8 +334,8 @@ packages:
|
|||||||
'@types/cookie@0.6.0':
|
'@types/cookie@0.6.0':
|
||||||
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
|
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
|
||||||
|
|
||||||
'@types/node@22.7.9':
|
'@types/node@22.8.1':
|
||||||
resolution: {integrity: sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==}
|
resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==}
|
||||||
|
|
||||||
'@types/pg@8.11.6':
|
'@types/pg@8.11.6':
|
||||||
resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==}
|
resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==}
|
||||||
@ -352,9 +352,9 @@ packages:
|
|||||||
'@types/react@18.3.5':
|
'@types/react@18.3.5':
|
||||||
resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==}
|
resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==}
|
||||||
|
|
||||||
'@vercel/postgres@0.9.0':
|
'@vercel/postgres@0.10.0':
|
||||||
resolution: {integrity: sha512-WiI2g3+ce2g1u1gP41MoDj2DsMuQQ+us7vHobysRixKECGaLHpfTI7DuVZmHU087ozRAGr3GocSyqmWLLo+fig==}
|
resolution: {integrity: sha512-fSD23DxGND40IzSkXjcFcxr53t3Tiym59Is0jSYIFpG4/0f0KO9SGtcp1sXiebvPaGe7N/tU05cH4yt2S6/IPg==}
|
||||||
engines: {node: '>=14.6'}
|
engines: {node: '>=18.14'}
|
||||||
|
|
||||||
abbrev@1.1.1:
|
abbrev@1.1.1:
|
||||||
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
|
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
|
||||||
@ -878,13 +878,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
|
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
|
||||||
playwright-core@1.48.1:
|
playwright-core@1.48.2:
|
||||||
resolution: {integrity: sha512-Yw/t4VAFX/bBr1OzwCuOMZkY1Cnb4z/doAFSwf4huqAGWmf9eMNjmK7NiOljCdLmxeRYcGPPmcDgU0zOlzP0YA==}
|
resolution: {integrity: sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
playwright@1.48.1:
|
playwright@1.48.2:
|
||||||
resolution: {integrity: sha512-j8CiHW/V6HxmbntOfyB4+T/uk08tBy6ph0MpBXwuoofkSnLmlfdYNNkFTYD6ofzzlSqLA1fwH4vwvVFvJgLN0w==}
|
resolution: {integrity: sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@ -1159,8 +1159,8 @@ packages:
|
|||||||
engines: {node: '>=14.17'}
|
engines: {node: '>=14.17'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
undici-types@6.19.6:
|
undici-types@6.19.8:
|
||||||
resolution: {integrity: sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==}
|
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
|
||||||
|
|
||||||
update-browserslist-db@1.1.0:
|
update-browserslist-db@1.1.0:
|
||||||
resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
|
resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
|
||||||
@ -1419,9 +1419,9 @@ snapshots:
|
|||||||
'@pkgjs/parseargs@0.11.0':
|
'@pkgjs/parseargs@0.11.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@playwright/test@1.48.1':
|
'@playwright/test@1.48.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
playwright: 1.48.1
|
playwright: 1.48.2
|
||||||
|
|
||||||
'@swc/counter@0.1.3': {}
|
'@swc/counter@0.1.3': {}
|
||||||
|
|
||||||
@ -1436,17 +1436,17 @@ snapshots:
|
|||||||
|
|
||||||
'@types/bcrypt@5.0.2':
|
'@types/bcrypt@5.0.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.7.9
|
'@types/node': 22.8.1
|
||||||
|
|
||||||
'@types/cookie@0.6.0': {}
|
'@types/cookie@0.6.0': {}
|
||||||
|
|
||||||
'@types/node@22.7.9':
|
'@types/node@22.8.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 6.19.6
|
undici-types: 6.19.8
|
||||||
|
|
||||||
'@types/pg@8.11.6':
|
'@types/pg@8.11.6':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.7.9
|
'@types/node': 22.8.1
|
||||||
pg-protocol: 1.6.1
|
pg-protocol: 1.6.1
|
||||||
pg-types: 4.0.2
|
pg-types: 4.0.2
|
||||||
|
|
||||||
@ -1465,12 +1465,13 @@ snapshots:
|
|||||||
'@types/prop-types': 15.7.12
|
'@types/prop-types': 15.7.12
|
||||||
csstype: 3.1.3
|
csstype: 3.1.3
|
||||||
|
|
||||||
'@vercel/postgres@0.9.0':
|
'@vercel/postgres@0.10.0(utf-8-validate@6.0.4)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@neondatabase/serverless': 0.9.4
|
'@neondatabase/serverless': 0.9.4
|
||||||
bufferutil: 4.0.8
|
bufferutil: 4.0.8
|
||||||
utf-8-validate: 6.0.4
|
|
||||||
ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
|
ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- utf-8-validate
|
||||||
|
|
||||||
abbrev@1.1.1: {}
|
abbrev@1.1.1: {}
|
||||||
|
|
||||||
@ -1830,13 +1831,13 @@ snapshots:
|
|||||||
|
|
||||||
nanoid@3.3.7: {}
|
nanoid@3.3.7: {}
|
||||||
|
|
||||||
next-auth@5.0.0-beta.25(next@15.0.1(@playwright/test@1.48.1)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704):
|
next-auth@5.0.0-beta.25(next@15.0.1(@playwright/test@1.48.2)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@auth/core': 0.37.2
|
'@auth/core': 0.37.2
|
||||||
next: 15.0.1(@playwright/test@1.48.1)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704)
|
next: 15.0.1(@playwright/test@1.48.2)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704)
|
||||||
react: 19.0.0-rc-f38c22b244-20240704
|
react: 19.0.0-rc-f38c22b244-20240704
|
||||||
|
|
||||||
next@15.0.1(@playwright/test@1.48.1)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704):
|
next@15.0.1(@playwright/test@1.48.2)(react-dom@19.0.0-rc-f38c22b244-20240704(react@19.0.0-rc-f38c22b244-20240704))(react@19.0.0-rc-f38c22b244-20240704):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@next/env': 15.0.1
|
'@next/env': 15.0.1
|
||||||
'@swc/counter': 0.1.3
|
'@swc/counter': 0.1.3
|
||||||
@ -1856,7 +1857,7 @@ snapshots:
|
|||||||
'@next/swc-linux-x64-musl': 15.0.1
|
'@next/swc-linux-x64-musl': 15.0.1
|
||||||
'@next/swc-win32-arm64-msvc': 15.0.1
|
'@next/swc-win32-arm64-msvc': 15.0.1
|
||||||
'@next/swc-win32-x64-msvc': 15.0.1
|
'@next/swc-win32-x64-msvc': 15.0.1
|
||||||
'@playwright/test': 1.48.1
|
'@playwright/test': 1.48.2
|
||||||
sharp: 0.33.5
|
sharp: 0.33.5
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@babel/core'
|
- '@babel/core'
|
||||||
@ -1936,11 +1937,11 @@ snapshots:
|
|||||||
|
|
||||||
pirates@4.0.6: {}
|
pirates@4.0.6: {}
|
||||||
|
|
||||||
playwright-core@1.48.1: {}
|
playwright-core@1.48.2: {}
|
||||||
|
|
||||||
playwright@1.48.1:
|
playwright@1.48.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
playwright-core: 1.48.1
|
playwright-core: 1.48.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.2
|
fsevents: 2.3.2
|
||||||
|
|
||||||
@ -2233,7 +2234,7 @@ snapshots:
|
|||||||
|
|
||||||
typescript@5.6.3: {}
|
typescript@5.6.3: {}
|
||||||
|
|
||||||
undici-types@6.19.6: {}
|
undici-types@6.19.8: {}
|
||||||
|
|
||||||
update-browserslist-db@1.1.0(browserslist@4.23.3):
|
update-browserslist-db@1.1.0(browserslist@4.23.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -2248,6 +2249,7 @@ snapshots:
|
|||||||
utf-8-validate@6.0.4:
|
utf-8-validate@6.0.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
node-gyp-build: 4.8.1
|
node-gyp-build: 4.8.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
util-deprecate@1.0.2: {}
|
util-deprecate@1.0.2: {}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user