- App.tsx: full navigation (Auth stack + Main tabs with 5 screens) - Auth: LoginScreen, RegisterScreen, ForgotPasswordScreen - HomeScreen: dashboard with IoT metrics, weather widget, alerts, quick actions, sensors - MapScreen: interactive map with layer toggles (6 layers) - MarketplaceScreen: categories (6), products (5), search - ChatScreen: AI chat with quick prompts (4), bot responses - ProfileScreen: user info, stats, menu (9 items), logout - AlertsScreen: alert list with severity, acknowledge - SensorsScreen: sensor list with type filters (6 types), search - ZonesScreen: zone cards with stats - SettingsScreen: language picker (FR/EN/ES/DE), privacy, about - Stores: iotStore (sensors, zones, alerts), notificationStore, uiStore + i18n - Hooks: useSensors, useAlerts, useNotifications, useLocation - Components: Card, Button, LoadingSpinner, ErrorBoundary, Header - Services: iotService, notificationService (with axios API client) - Utils: formatters (temp, AQI, noise, dates), validators (email, password, IBAN) - Theme: colors.ts with full design system (Blue Ocean palette) - Ditto: fixed MongoDB connection, new JWT secrets, official gateway image
69 lines
2.1 KiB
JavaScript
69 lines
2.1 KiB
JavaScript
// @ts-check
|
|
|
|
// @ts-ignore Needed due to moduleResolution Node vs Bundler
|
|
import { tanstackConfig } from '@tanstack/eslint-config'
|
|
import pluginCspell from '@cspell/eslint-plugin'
|
|
import vitest from '@vitest/eslint-plugin'
|
|
|
|
export default [
|
|
...tanstackConfig,
|
|
{
|
|
name: 'tanstack/temp',
|
|
plugins: {
|
|
cspell: pluginCspell,
|
|
},
|
|
rules: {
|
|
'cspell/spellchecker': [
|
|
'warn',
|
|
{
|
|
cspell: {
|
|
words: [
|
|
'Promisable', // Our public interface
|
|
'TSES', // @typescript-eslint package's interface
|
|
'codemod', // We support our codemod
|
|
'combinate', // Library name
|
|
'datatag', // Query options tagging
|
|
'extralight', // Our public interface
|
|
'jscodeshift',
|
|
'refetches', // Query refetch operations
|
|
'retryer', // Our public interface
|
|
'solidjs', // Our target framework
|
|
'tabular-nums', // https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-numeric
|
|
'tanstack', // Our package scope
|
|
'todos', // Too general word to be caught as error
|
|
'tsqd', // Our public interface (TanStack Query Devtools shorthand)
|
|
'tsup', // We use tsup as builder
|
|
'typecheck', // Field of vite.config.ts
|
|
'vue-demi', // dependency of @tanstack/vue-query
|
|
'ɵkind', // Angular specific
|
|
'ɵproviders', // Angular specific
|
|
],
|
|
},
|
|
},
|
|
],
|
|
'@typescript-eslint/no-empty-function': 'off',
|
|
'@typescript-eslint/no-unsafe-function-type': 'off',
|
|
'no-case-declarations': 'off',
|
|
'prefer-const': 'off',
|
|
},
|
|
},
|
|
{
|
|
files: ['**/*.spec.ts*', '**/*.test.ts*', '**/*.test-d.ts*'],
|
|
plugins: { vitest },
|
|
rules: {
|
|
...vitest.configs.recommended.rules,
|
|
'vitest/consistent-test-it': [
|
|
'error',
|
|
{ fn: 'it', withinDescribe: 'it' },
|
|
],
|
|
'vitest/no-standalone-expect': [
|
|
'error',
|
|
{
|
|
additionalTestBlockFunctions: ['itIf'],
|
|
},
|
|
],
|
|
},
|
|
settings: { vitest: { typecheck: true } },
|
|
},
|
|
]
|