fix: correct code after adding linting config

This commit is contained in:
Riccardo
2024-05-16 13:49:23 +02:00
parent a9d8923518
commit e0e5aa7801
6 changed files with 62 additions and 35 deletions

3
. prettierignore Normal file
View File

@@ -0,0 +1,3 @@
node_modules
.yarn
.next

View File

@@ -1,3 +1,24 @@
{
"extends": "next/core-web-vitals"
"env": {
"browser": true,
"es2021": true
},
"extends": [
"next/core-web-vitals",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/consistent-type-definitions": "error",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "error"
}
}

View File

@@ -28,28 +28,31 @@ export function Form({ setLoading, setError, setParsedText }: FormProps) {
setClearing(false);
setFile(undefined);
setParsedText('');
}, []);
}, [setParsedText]);
const validateFile = useCallback((file: File) => {
if (file.type !== 'application/pdf') {
setError(
"The file you've selected is not a PDF file. Please select a PDF file."
);
setLoading(false);
const validateFile = useCallback(
(file: File) => {
if (file.type !== 'application/pdf') {
setError(
"The file you've selected is not a PDF file. Please select a PDF file."
);
setLoading(false);
return false;
}
return false;
}
// This limit is caused by the project being deployed on Vercel using a free tier, with limited resources for the cloud functions (it can be commented out if running locally)
if (file.size > 1024 * 1024) {
setError('The file must be smaller than 1MB.');
setLoading(false);
// This limit is caused by the project being deployed on Vercel using a free tier, with limited resources for the cloud functions (it can be commented out if running locally)
if (file.size > 1024 * 1024) {
setError('The file must be smaller than 1MB.');
setLoading(false);
return false;
}
return false;
}
return true;
}, []);
return true;
},
[setError, setLoading]
);
const uploadFile = useCallback(async () => {
if (!file) return;
@@ -76,7 +79,7 @@ export function Form({ setLoading, setError, setParsedText }: FormProps) {
setClearing(true);
setLoading(false);
}
}, [file, validateFile]);
}, [file, validateFile, setError, setParsedText, setClearing, setLoading]);
const handleUpload = useCallback(() => {
setLoading(true);
@@ -84,7 +87,7 @@ export function Form({ setLoading, setError, setParsedText }: FormProps) {
setParsedText('');
uploadFile();
}, [uploadFile]);
}, [uploadFile, setLoading, setError, setParsedText]);
function renderForm() {
if (clearing) {

View File

@@ -7,7 +7,7 @@
"build": "next build",
"start": "next start",
"lint": "next lint",
"format": "prettier --config .prettierrc 'app/' --write",
"format": "prettier --config .prettierrc '**/*.{ts,tsx,json}' --write",
"typecheck": "tsc --noEmit",
"prepare": "husky install"
},
@@ -40,10 +40,10 @@
"typescript": "^5"
},
"lint-staged": {
"*.ts": [
"eslint --quiet --fix"
"*.{ts,tsx}": [
"eslint"
],
"*.{json,ts}": [
"*.{json,ts,tsx}": [
"prettier --write --ignore-unknown"
]
}

View File

@@ -1,20 +1,20 @@
import type { Config } from "tailwindcss";
import type { Config } from 'tailwindcss';
const config: Config = {
content: [
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
"./components/**/*.{js,ts,jsx,tsx,mdx}",
"./app/**/*.{js,ts,jsx,tsx,mdx}",
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
'./components/**/*.{js,ts,jsx,tsx,mdx}',
'./app/**/*.{js,ts,jsx,tsx,mdx}'
],
theme: {
extend: {
backgroundImage: {
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
"gradient-conic":
"conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
},
},
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
'gradient-conic':
'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))'
}
}
},
plugins: [],
plugins: []
};
export default config;

View File

@@ -2,7 +2,7 @@ import PdfParse from 'pdf-parse';
export async function parser(file: File) {
const chunks = [];
for await (const chunk of file.stream() as any) {
for await (const chunk of file.stream() as unknown as AsyncIterable<Buffer>) {
chunks.push(chunk);
}