fix eslint
This commit is contained in:
parent
1755288536
commit
8cfc98f9de
9 changed files with 1307 additions and 141 deletions
|
|
@ -1,28 +1,19 @@
|
|||
import js from '@eslint/js'
|
||||
import globals from 'globals'
|
||||
import reactHooks from 'eslint-plugin-react-hooks'
|
||||
import reactRefresh from 'eslint-plugin-react-refresh'
|
||||
import tseslint from 'typescript-eslint'
|
||||
import globals from "globals";
|
||||
import pluginJs from "@eslint/js";
|
||||
import tseslint from "typescript-eslint";
|
||||
import pluginReact from "eslint-plugin-react";
|
||||
|
||||
export default tseslint.config(
|
||||
{ ignores: ['dist'] },
|
||||
|
||||
/** @type {import('eslint').Linter.Config[]} */
|
||||
export default [
|
||||
{files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"]},
|
||||
{languageOptions: { globals: globals.browser }},
|
||||
pluginJs.configs.recommended,
|
||||
...tseslint.configs.recommended,
|
||||
pluginReact.configs.flat.recommended,
|
||||
{
|
||||
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
||||
files: ['**/*.{ts,tsx}'],
|
||||
languageOptions: {
|
||||
ecmaVersion: 2020,
|
||||
globals: globals.browser,
|
||||
},
|
||||
plugins: {
|
||||
'react-hooks': reactHooks,
|
||||
'react-refresh': reactRefresh,
|
||||
},
|
||||
rules: {
|
||||
...reactHooks.configs.recommended.rules,
|
||||
'react-refresh/only-export-components': [
|
||||
'warn',
|
||||
{ allowConstantExport: true },
|
||||
],
|
||||
},
|
||||
},
|
||||
)
|
||||
"react/react-in-jsx-scope": "off",
|
||||
}
|
||||
},
|
||||
];
|
||||
|
|
@ -5,11 +5,13 @@
|
|||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"typecheck": "tsc -b",
|
||||
"build": "tsc -b && vite build",
|
||||
"lint": "eslint .",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.22.0",
|
||||
"@floating-ui/react": "^0.27.4",
|
||||
"@internationalized/date": "^3.7.0",
|
||||
"@react-aria/i18n": "^3.12.7",
|
||||
|
|
@ -22,12 +24,10 @@
|
|||
"@typescript-eslint/parser": "^7.0.2",
|
||||
"@vitejs/plugin-react": "^4.3.4",
|
||||
"chromatic": "^11.5.0",
|
||||
"eslint": "^9.20.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"eslint-plugin-react-refresh": "^0.4.5",
|
||||
"eslint-plugin-storybook": "^0.11.3",
|
||||
"eslint": "^9.22.0",
|
||||
"eslint-plugin-react": "^7.37.4",
|
||||
"globals": "^16.0.0",
|
||||
"lucide-react": "^0.460.0",
|
||||
"postcss": "^8.4.35",
|
||||
"prettier-plugin-tailwindcss": "^0.6.11",
|
||||
"react": "19.0.0",
|
||||
"react-aria": "^3.38.1",
|
||||
|
|
@ -38,6 +38,7 @@
|
|||
"tailwindcss": "^4.0.14",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"typescript": "^5.7.0",
|
||||
"typescript-eslint": "^8.26.1",
|
||||
"vite": "^6.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
|
|
|
|||
1345
ui/pnpm-lock.yaml
1345
ui/pnpm-lock.yaml
File diff suppressed because it is too large
Load diff
|
|
@ -171,7 +171,7 @@ export const App = () => {
|
|||
Optimisation des coûts
|
||||
</h3>
|
||||
<p className="text-slate-700 dark:text-white">
|
||||
Identifiez les opportunités d'optimisation et
|
||||
Identifiez les opportunités d'optimisation et
|
||||
réduisez vos dépenses
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -197,10 +197,10 @@ export const App = () => {
|
|||
)}
|
||||
>
|
||||
<p className="text-slate-700 dark:text-white mb-4 flex-grow">
|
||||
"XTablo a révolutionné notre gestion des dépenses.
|
||||
Nous pouvons maintenant suivre chaque euro en temps
|
||||
réel et prendre de meilleures décisions pour nos
|
||||
projets de construction."
|
||||
"XTablo a révolutionné notre gestion des
|
||||
dépenses. Nous pouvons maintenant suivre chaque euro
|
||||
en temps réel et prendre de meilleures décisions
|
||||
pour nos projets de construction."
|
||||
</p>
|
||||
<div className="flex items-center mt-auto">
|
||||
<div className="w-10 h-10 rounded-full bg-emerald-500/20 border border-emerald-500/30" />
|
||||
|
|
@ -223,10 +223,10 @@ export const App = () => {
|
|||
)}
|
||||
>
|
||||
<p className="text-slate-700 dark:text-white mb-4 flex-grow">
|
||||
"Les fonctionnalités de suivi des dépenses sont
|
||||
"Les fonctionnalités de suivi des dépenses sont
|
||||
exactement ce dont nous avions besoin. Cela nous a
|
||||
permis de réduire nos coûts de 15% et d'améliorer
|
||||
significativement nos marges."
|
||||
permis de réduire nos coûts de 15% et
|
||||
d'améliorer significativement nos marges."
|
||||
</p>
|
||||
<div className="flex items-center mt-auto">
|
||||
<div className="w-10 h-10 rounded-full bg-emerald-500/20 border border-emerald-500/30" />
|
||||
|
|
@ -249,9 +249,10 @@ export const App = () => {
|
|||
)}
|
||||
>
|
||||
<p className="text-slate-700 dark:text-white mb-4 flex-grow">
|
||||
"La gestion des dépenses sur plusieurs chantiers n'a
|
||||
jamais été aussi simple. XTablo nous donne une
|
||||
visibilité totale sur nos coûts."
|
||||
"La gestion des dépenses sur plusieurs
|
||||
chantiers n'a jamais été aussi simple. XTablo
|
||||
nous donne une visibilité totale sur nos
|
||||
coûts."
|
||||
</p>
|
||||
<div className="flex items-center mt-auto">
|
||||
<div className="w-10 h-10 rounded-full bg-emerald-500/20 border border-emerald-500/30" />
|
||||
|
|
@ -314,7 +315,7 @@ export const App = () => {
|
|||
d="M5 13l4 4L19 7"
|
||||
/>
|
||||
</svg>
|
||||
Jusqu'à 5 chantiers
|
||||
Jusqu'à 5 chantiers
|
||||
</li>
|
||||
<li className="flex items-center text-slate-700 dark:text-white">
|
||||
<svg
|
||||
|
|
@ -369,7 +370,7 @@ export const App = () => {
|
|||
className={twMerge(
|
||||
"w-full px-6 py-3 bg-emerald-700 rounded-full text-white font-semibold",
|
||||
"hover:bg-emerald-600 transition-all duration-300 hover:scale-[1.02]",
|
||||
"hover:shadow-lg hover:shadow-xl shadow-emerald-700/20 mt-auto"
|
||||
"hover:shadow-xl shadow-emerald-700/20 mt-auto"
|
||||
)}
|
||||
>
|
||||
Commencer
|
||||
|
|
@ -486,7 +487,7 @@ export const App = () => {
|
|||
className={twMerge(
|
||||
"w-full px-6 py-3 bg-emerald-700 rounded-full text-white font-semibold",
|
||||
"hover:bg-emerald-600 transition-all duration-300 hover:scale-[1.02]",
|
||||
"hover:shadow-lg hover:shadow-xl shadow-emerald-700/20 mt-auto"
|
||||
"hover:shadow-xl shadow-emerald-700/20 mt-auto"
|
||||
)}
|
||||
>
|
||||
Commencer
|
||||
|
|
@ -508,8 +509,8 @@ export const App = () => {
|
|||
Prêt à optimiser vos dépenses de projet ?
|
||||
</h2>
|
||||
<p className="text-xl text-slate-700 dark:text-white mb-12 max-w-2xl mx-auto">
|
||||
Commencez votre essai gratuit de 14 jours aujourd'hui.
|
||||
Aucune carte bancaire requise.
|
||||
Commencez votre essai gratuit de 14 jours
|
||||
aujourd'hui. Aucune carte bancaire requise.
|
||||
</p>
|
||||
<div className="flex flex-col sm:flex-row justify-center gap-6">
|
||||
<Button
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ export function LoginPage() {
|
|||
href="/signup"
|
||||
className="text-emerald-600 hover:text-emerald-500 font-medium"
|
||||
>
|
||||
S'inscrire
|
||||
S'inscrire
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ export function SignUpPage() {
|
|||
htmlFor="company"
|
||||
className="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1"
|
||||
>
|
||||
Nom de l'entreprise
|
||||
Nom de l'entreprise
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
|
|
@ -166,9 +166,9 @@ export function SignUpPage() {
|
|||
htmlFor="terms"
|
||||
className="ml-2 block text-sm text-slate-700 dark:text-slate-300"
|
||||
>
|
||||
J'accepte les{" "}
|
||||
J'accepte les{" "}
|
||||
<a href="#" className="text-emerald-600 hover:text-emerald-500">
|
||||
conditions d'utilisation
|
||||
conditions d'utilisation
|
||||
</a>{" "}
|
||||
et la{" "}
|
||||
<a href="#" className="text-emerald-600 hover:text-emerald-500">
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ export function Calendar<T extends DateValue>({
|
|||
isUnavailable &&
|
||||
"text-destructive decoration-destructive line-through",
|
||||
isFocusVisible && [
|
||||
"outline-ring outline outline-2",
|
||||
"outline-ring outline",
|
||||
isSelected && "outline-offset-1",
|
||||
],
|
||||
className
|
||||
|
|
@ -122,14 +122,14 @@ export function CalendarHeader({ yearRange }: { yearRange?: YearRange }) {
|
|||
)}
|
||||
>
|
||||
{yearRange ? (
|
||||
<div className="flex flex-1 gap-x-2 text-center text-left text-base/6 sm:text-sm/6 rtl:text-right">
|
||||
<div className="flex flex-1 gap-x-2 text-left text-base/6 sm:text-sm/6 rtl:text-right">
|
||||
<MonthDropdown state={state} />
|
||||
<YearDropdown state={state} yearRange={yearRange} />
|
||||
</div>
|
||||
) : (
|
||||
<Heading
|
||||
level={2}
|
||||
className="flex flex-1 text-center text-left text-base/6 font-medium sm:text-sm/6 rtl:text-right"
|
||||
className="flex flex-1 text-left text-base/6 font-medium sm:text-sm/6 rtl:text-right"
|
||||
aria-hidden
|
||||
></Heading>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ export function Header() {
|
|||
"transition-colors"
|
||||
)}
|
||||
>
|
||||
S'inscrire
|
||||
S'inscrire
|
||||
</Button>
|
||||
<Switch
|
||||
isSelected={theme === "dark"}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue