1088f7bbab
## Summary
This PR adds the `lingui/no-unlocalized-strings` ESLint rule to detect
untranslated strings and fixes translation issues across multiple
components.
## Changes
### ESLint Configuration (`eslint.config.react.mjs`)
- Added comprehensive `ignore` patterns for non-translatable strings
(CSS values, HTML attributes, technical identifiers)
- Added `ignoreNames` for props that don't need translation (className,
data-*, aria-*, etc.)
- Added `ignoreFunctions` for console methods, URL APIs, and other
non-user-facing functions
- Disabled rule for debug files, storybook, and test files
### Components Fixed (~19 files)
- Object record components (field inputs, pickers, merge dialogs)
- Settings components (accounts, admin panel)
- Serverless function components
- Record table and title cell components
## Status
🚧 **Work in Progress** - ~124 files remaining to fix
This PR is being submitted as draft to allow progressive fixing of
remaining translation issues.
## Testing
- Run `npx eslint "src/**/*.tsx"` in `packages/twenty-front` to check
remaining issues
92 lines
2.5 KiB
Plaintext
92 lines
2.5 KiB
Plaintext
---
|
|
description: Guidelines and best practices for working with Nx in the Twenty workspace, including workspace architecture understanding, configuration management, and generator usage.
|
|
globs: ["**/nx.json", "**/project.json", "**/workspace.json"]
|
|
alwaysApply: true
|
|
---
|
|
|
|
# Nx Guidelines
|
|
|
|
## Core Commands
|
|
```bash
|
|
# Run target for specific project
|
|
npx nx run twenty-front:build
|
|
npx nx run twenty-server:test
|
|
|
|
# Lint changed files only (recommended - much faster!)
|
|
npx nx lint:changed twenty-front # Lint only files changed vs main
|
|
npx nx lint:changed twenty-server
|
|
npx nx lint:changed twenty-front --configuration=fix # Auto-fix changed files
|
|
npx nx lint:changed twenty-front --configuration=staged # Lint staged files
|
|
|
|
# Run target for all projects (slower)
|
|
npx nx run-many --target=build --all
|
|
npx nx run-many --target=test --projects=twenty-front,twenty-server
|
|
|
|
# Generate/modify projects
|
|
npx nx g @nx/react:app my-app
|
|
npx nx g @nx/react:component my-component
|
|
```
|
|
|
|
## Project Structure
|
|
- Each package has a `project.json` with targets
|
|
- Dependencies managed through `tsconfig.json` path mappings
|
|
- Shared libraries in `packages/` directory
|
|
|
|
## Build Targets
|
|
```json
|
|
// project.json
|
|
{
|
|
"targets": {
|
|
"build": {
|
|
"executor": "@nx/vite:build",
|
|
"options": { "outputPath": "dist/packages/twenty-front" }
|
|
},
|
|
"test": {
|
|
"executor": "@nx/jest:jest",
|
|
"options": { "jestConfig": "packages/twenty-front/jest.config.mjs" }
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Linting Strategy
|
|
For faster development, always prefer linting only changed files:
|
|
- Use `npx nx lint:changed <project>` to lint only files changed vs main branch
|
|
- Use `--configuration=fix` to auto-fix issues in changed files
|
|
- Use `--configuration=staged` to lint only staged files (useful for pre-commit hooks)
|
|
- Only use `npx nx lint <project>` when you need to lint the entire project
|
|
|
|
## Dependency Graph
|
|
```bash
|
|
# View project dependencies
|
|
npx nx graph
|
|
|
|
# Check what's affected by changes (runs target on affected projects)
|
|
npx nx affected --target=test
|
|
npx nx affected --target=build --base=main
|
|
```
|
|
|
|
## Library Management
|
|
- Use `npx nx g @nx/workspace:library` generator for shared libs
|
|
- Internal imports use `@/` path mapping
|
|
- Libraries must export through index.ts barrel files
|
|
|
|
## Cache Configuration
|
|
- Nx caches build outputs and test results
|
|
- Configure `outputs` in project.json targets
|
|
- Use `inputs` to define what invalidates cache
|
|
|
|
```json
|
|
{
|
|
"build": {
|
|
"outputs": ["dist/packages/my-app"],
|
|
"inputs": ["source", "^source"],
|
|
"cache": true
|
|
}
|
|
}
|
|
```
|
|
|
|
|
|
|
|
|