diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..bd2e662 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,6 @@ +dist +node_modules +_poc-reference +supabase/.branches +supabase/.temp +pnpm-lock.yaml diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..cc90552 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,9 @@ +{ + "semi": false, + "singleQuote": true, + "trailingComma": "es5", + "printWidth": 100, + "tabWidth": 2, + "arrowParens": "always", + "endOfLine": "lf" +} diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..dbfaf5c --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,27 @@ +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 prettier from 'eslint-config-prettier' + +export default tseslint.config( + { ignores: ['dist', '_poc-reference', 'supabase', 'node_modules'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended, prettier], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2022, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }], + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }], + }, + } +) diff --git a/package.json b/package.json index 614da0f..975ef5f 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "tailwind-merge": "^2.5.0" }, "devDependencies": { + "@eslint/js": "^10.0.1", "@tailwindcss/vite": "^4.0.0", "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5cd493..b50890f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,6 +39,9 @@ importers: specifier: ^2.5.0 version: 2.6.1 devDependencies: + '@eslint/js': + specifier: ^10.0.1 + version: 10.0.1(eslint@9.39.4(jiti@2.6.1)) '@tailwindcss/vite': specifier: ^4.0.0 version: 4.2.2(vite@6.4.2(@types/node@22.19.17)(jiti@2.6.1)(lightningcss@1.32.0)) @@ -402,6 +405,15 @@ packages: resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true + '@eslint/js@9.39.4': resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2164,6 +2176,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/js@10.0.1(eslint@9.39.4(jiti@2.6.1))': + optionalDependencies: + eslint: 9.39.4(jiti@2.6.1) + '@eslint/js@9.39.4': {} '@eslint/object-schema@2.1.7': {} diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index 2ac683a..5d78978 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -29,8 +29,7 @@ const buttonVariants = cva( ) interface ButtonProps - extends ButtonHTMLAttributes, - VariantProps { + extends ButtonHTMLAttributes, VariantProps { asChild?: boolean } diff --git a/src/types/database.ts b/src/types/database.ts index 4614d4a..c95c34b 100644 --- a/src/types/database.ts +++ b/src/types/database.ts @@ -1,16 +1,10 @@ -export type Json = - | string - | number - | boolean - | null - | { [key: string]: Json | undefined } - | Json[] +export type Json = string | number | boolean | null | { [key: string]: Json | undefined } | Json[] export type Database = { // Allows to automatically instantiate createClient with right options // instead of createClient(URL, KEY) __InternalSupabase: { - PostgrestVersion: "13.0.4" + PostgrestVersion: '13.0.4' } reserva_hotel: { Tables: { @@ -95,11 +89,11 @@ export type Database = { } Relationships: [ { - foreignKeyName: "extras_id_marca_fkey" - columns: ["id_marca"] + foreignKeyName: 'extras_id_marca_fkey' + columns: ['id_marca'] isOneToOne: false - referencedRelation: "marcas" - referencedColumns: ["id"] + referencedRelation: 'marcas' + referencedColumns: ['id'] }, ] } @@ -139,11 +133,11 @@ export type Database = { } Relationships: [ { - foreignKeyName: "fotos_categoria_id_unidade_fkey" - columns: ["id_unidade"] + foreignKeyName: 'fotos_categoria_id_unidade_fkey' + columns: ['id_unidade'] isOneToOne: false - referencedRelation: "unidades" - referencedColumns: ["id"] + referencedRelation: 'unidades' + referencedColumns: ['id'] }, ] } @@ -219,11 +213,11 @@ export type Database = { } Relationships: [ { - foreignKeyName: "precos_id_marca_fkey" - columns: ["id_marca"] + foreignKeyName: 'precos_id_marca_fkey' + columns: ['id_marca'] isOneToOne: false - referencedRelation: "marcas" - referencedColumns: ["id"] + referencedRelation: 'marcas' + referencedColumns: ['id'] }, ] } @@ -248,25 +242,25 @@ export type Database = { } Relationships: [ { - foreignKeyName: "reserva_extras_id_extra_fkey" - columns: ["id_extra"] + foreignKeyName: 'reserva_extras_id_extra_fkey' + columns: ['id_extra'] isOneToOne: false - referencedRelation: "extras" - referencedColumns: ["id"] + referencedRelation: 'extras' + referencedColumns: ['id'] }, { - foreignKeyName: "reserva_extras_id_reserva_fkey" - columns: ["id_reserva"] + foreignKeyName: 'reserva_extras_id_reserva_fkey' + columns: ['id_reserva'] isOneToOne: false - referencedRelation: "reservas" - referencedColumns: ["id"] + referencedRelation: 'reservas' + referencedColumns: ['id'] }, { - foreignKeyName: "reserva_extras_id_reserva_fkey" - columns: ["id_reserva"] + foreignKeyName: 'reserva_extras_id_reserva_fkey' + columns: ['id_reserva'] isOneToOne: false - referencedRelation: "vw_reservas_completa" - referencedColumns: ["id"] + referencedRelation: 'vw_reservas_completa' + referencedColumns: ['id'] }, ] } @@ -354,18 +348,18 @@ export type Database = { } Relationships: [ { - foreignKeyName: "reservas_id_suite_fkey" - columns: ["id_suite"] + foreignKeyName: 'reservas_id_suite_fkey' + columns: ['id_suite'] isOneToOne: false - referencedRelation: "suites" - referencedColumns: ["id"] + referencedRelation: 'suites' + referencedColumns: ['id'] }, { - foreignKeyName: "reservas_id_unidade_fkey" - columns: ["id_unidade"] + foreignKeyName: 'reservas_id_unidade_fkey' + columns: ['id_unidade'] isOneToOne: false - referencedRelation: "unidades" - referencedColumns: ["id"] + referencedRelation: 'unidades' + referencedColumns: ['id'] }, ] } @@ -429,18 +423,18 @@ export type Database = { } Relationships: [ { - foreignKeyName: "suites_unidades_id_suite_fkey" - columns: ["id_suite"] + foreignKeyName: 'suites_unidades_id_suite_fkey' + columns: ['id_suite'] isOneToOne: false - referencedRelation: "suites" - referencedColumns: ["id"] + referencedRelation: 'suites' + referencedColumns: ['id'] }, { - foreignKeyName: "suites_unidades_id_unidade_fkey" - columns: ["id_unidade"] + foreignKeyName: 'suites_unidades_id_unidade_fkey' + columns: ['id_unidade'] isOneToOne: false - referencedRelation: "unidades" - referencedColumns: ["id"] + referencedRelation: 'unidades' + referencedColumns: ['id'] }, ] } @@ -489,18 +483,18 @@ export type Database = { } Relationships: [ { - foreignKeyName: "unidades_id_conta_pagamento_fkey" - columns: ["id_conta_pagamento"] + foreignKeyName: 'unidades_id_conta_pagamento_fkey' + columns: ['id_conta_pagamento'] isOneToOne: false - referencedRelation: "contas_pagamento" - referencedColumns: ["id"] + referencedRelation: 'contas_pagamento' + referencedColumns: ['id'] }, { - foreignKeyName: "unidades_id_marca_fkey" - columns: ["id_marca"] + foreignKeyName: 'unidades_id_marca_fkey' + columns: ['id_marca'] isOneToOne: false - referencedRelation: "marcas" - referencedColumns: ["id"] + referencedRelation: 'marcas' + referencedColumns: ['id'] }, ] } @@ -522,11 +516,11 @@ export type Database = { } Relationships: [ { - foreignKeyName: "precos_id_marca_fkey" - columns: ["id_marca"] + foreignKeyName: 'precos_id_marca_fkey' + columns: ['id_marca'] isOneToOne: false - referencedRelation: "marcas" - referencedColumns: ["id"] + referencedRelation: 'marcas' + referencedColumns: ['id'] }, ] } @@ -562,18 +556,18 @@ export type Database = { } Relationships: [ { - foreignKeyName: "reservas_id_suite_fkey" - columns: ["id_suite"] + foreignKeyName: 'reservas_id_suite_fkey' + columns: ['id_suite'] isOneToOne: false - referencedRelation: "suites" - referencedColumns: ["id"] + referencedRelation: 'suites' + referencedColumns: ['id'] }, { - foreignKeyName: "reservas_id_unidade_fkey" - columns: ["id_unidade"] + foreignKeyName: 'reservas_id_unidade_fkey' + columns: ['id_unidade'] isOneToOne: false - referencedRelation: "unidades" - referencedColumns: ["id"] + referencedRelation: 'unidades' + referencedColumns: ['id'] }, ] } @@ -598,33 +592,31 @@ export type Database = { } } -type DatabaseWithoutInternals = Omit +type DatabaseWithoutInternals = Omit -type DefaultSchema = DatabaseWithoutInternals[Extract] +type DefaultSchema = DatabaseWithoutInternals[Extract] export type Tables< DefaultSchemaTableNameOrOptions extends - | keyof (DefaultSchema["Tables"] & DefaultSchema["Views"]) + | keyof (DefaultSchema['Tables'] & DefaultSchema['Views']) | { schema: keyof DatabaseWithoutInternals }, TableName extends DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] & - DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"]) + ? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] & + DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Views']) : never = never, > = DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] & - DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends { + ? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] & + DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Views'])[TableName] extends { Row: infer R } ? R : never - : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] & - DefaultSchema["Views"]) - ? (DefaultSchema["Tables"] & - DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends { + : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema['Tables'] & DefaultSchema['Views']) + ? (DefaultSchema['Tables'] & DefaultSchema['Views'])[DefaultSchemaTableNameOrOptions] extends { Row: infer R } ? R @@ -633,23 +625,23 @@ export type Tables< export type TablesInsert< DefaultSchemaTableNameOrOptions extends - | keyof DefaultSchema["Tables"] + | keyof DefaultSchema['Tables'] | { schema: keyof DatabaseWithoutInternals }, TableName extends DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] + ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] : never = never, > = DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends { + ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'][TableName] extends { Insert: infer I } ? I : never - : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] - ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends { + : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema['Tables'] + ? DefaultSchema['Tables'][DefaultSchemaTableNameOrOptions] extends { Insert: infer I } ? I @@ -658,23 +650,23 @@ export type TablesInsert< export type TablesUpdate< DefaultSchemaTableNameOrOptions extends - | keyof DefaultSchema["Tables"] + | keyof DefaultSchema['Tables'] | { schema: keyof DatabaseWithoutInternals }, TableName extends DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] + ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] : never = never, > = DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends { + ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'][TableName] extends { Update: infer U } ? U : never - : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] - ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends { + : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema['Tables'] + ? DefaultSchema['Tables'][DefaultSchemaTableNameOrOptions] extends { Update: infer U } ? U @@ -683,36 +675,36 @@ export type TablesUpdate< export type Enums< DefaultSchemaEnumNameOrOptions extends - | keyof DefaultSchema["Enums"] + | keyof DefaultSchema['Enums'] | { schema: keyof DatabaseWithoutInternals }, EnumName extends DefaultSchemaEnumNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"] + ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions['schema']]['Enums'] : never = never, > = DefaultSchemaEnumNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName] - : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"] - ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions] + ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions['schema']]['Enums'][EnumName] + : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema['Enums'] + ? DefaultSchema['Enums'][DefaultSchemaEnumNameOrOptions] : never export type CompositeTypes< PublicCompositeTypeNameOrOptions extends - | keyof DefaultSchema["CompositeTypes"] + | keyof DefaultSchema['CompositeTypes'] | { schema: keyof DatabaseWithoutInternals }, CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"] + ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'] : never = never, > = PublicCompositeTypeNameOrOptions extends { schema: keyof DatabaseWithoutInternals } - ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] - : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"] - ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions] + ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'][CompositeTypeName] + : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema['CompositeTypes'] + ? DefaultSchema['CompositeTypes'][PublicCompositeTypeNameOrOptions] : never export const Constants = { diff --git a/tsconfig.json b/tsconfig.json index 2d62f9f..6a986f5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,6 @@ { "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ], + "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }], "compilerOptions": { "skipLibCheck": true }