690329:2252 Fixing refactor Correspondence GPT-5.3-Codex #05
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
---
|
||||
trigger: glob
|
||||
globs:
|
||||
- "frontend/**/*.tsx"
|
||||
- "frontend/**/*.ts"
|
||||
- "frontend/**/*.css"
|
||||
---
|
||||
|
||||
# Frontend Patterns (Next.js)
|
||||
|
||||
## Form Handling
|
||||
|
||||
- **RHF** (React Hook Form) for form management
|
||||
- **Zod** for validation schema
|
||||
- **TanStack Query** for server state
|
||||
|
||||
## UUID Handling
|
||||
|
||||
```typescript
|
||||
// ✅ CORRECT - Use publicId only
|
||||
interface ProjectOption {
|
||||
publicId?: string;
|
||||
projectName?: string;
|
||||
}
|
||||
|
||||
// Select options
|
||||
const options = contracts.map(c => ({
|
||||
label: `${c.contractName} (${c.contractCode})`,
|
||||
value: c.publicId!, // Use publicId, no fallback to id
|
||||
}));
|
||||
|
||||
// ❌ WRONG - Never use these patterns
|
||||
const value = c.publicId ?? c.id ?? ''; // Wrong!
|
||||
const id = parseInt(projectId); // Wrong - parseInt on UUID!
|
||||
```
|
||||
|
||||
## API Client Pattern
|
||||
|
||||
```typescript
|
||||
// Use publicId directly in API calls
|
||||
const contract = await contractService.getById(publicId);
|
||||
|
||||
// Form submission with UUID
|
||||
const onSubmit = async (data: FormData) => {
|
||||
await correspondenceService.create({
|
||||
contractUuid: selectedContract.publicId!, // UUID string
|
||||
// ... other fields
|
||||
});
|
||||
};
|
||||
```
|
||||
|
||||
## Full Guidelines
|
||||
|
||||
`specs/05-Engineering-Guidelines/05-03-frontend-guidelines.md`
|
||||
Reference in New Issue
Block a user