Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
11a6cc7
feat: Implement HomeWTC section displaying event information and a li…
anyulled Dec 18, 2025
9b7795c
Update src/views/Home/components/HomeWTC/HomeWTC.tsx
anyulled Dec 18, 2025
5417212
refactor: Remove unused `useWindowSize` hook and improve `StyledSubti…
anyulled Dec 18, 2025
70a98a3
refactor: centralize countdown components and date utilities into com…
anyulled Dec 19, 2025
d200009
refactor: Extract and centralize countdown components and date utilit…
anyulled Dec 19, 2025
a46538a
feat: Introduce 2025 conference components and data, including tests …
anyulled Dec 19, 2025
0d1660c
refactor: Separate HomeWTC background image from gradient overlay usi…
anyulled Dec 19, 2025
e734843
feat: Update event data and UI components across multiple years and p…
anyulled Dec 19, 2025
d41d94b
refactor: Improve test date mocking, enforce strict equality, reorder…
anyulled Dec 19, 2025
48fda9d
refactor: remove unused imports, constants, and test utilities across…
anyulled Dec 19, 2025
9d82866
chore: remove unused navigation routes, reorder imports, and add an E…
anyulled Dec 19, 2025
edb006d
refactor: Improve TypeScript type safety by replacing 'any' with expl…
anyulled Dec 19, 2025
803f872
refactor: improve type safety by replacing `any` with specific types …
anyulled Dec 19, 2025
43d4862
refactor: Reorder imports, add accommodation route, and adjust talk t…
anyulled Dec 19, 2025
48a54f4
fix: disable import/order ESLint rule
anyulled Dec 19, 2025
559d068
fix: correct import path in SponsorBadge.tsx
anyulled Dec 19, 2025
0128efc
refactor: enhance speaker fetching test reliability and apply general…
anyulled Dec 20, 2025
afff279
feat: Introduce native React 19 metadata support with a new `PageMeta…
anyulled Dec 20, 2025
64d5bfc
feat: Introduce `ResourcePreloader` component and default configurati…
anyulled Dec 20, 2025
3cdc3cd
chore: add newline at end of package.json (prettier)
anyulled Dec 20, 2025
bc785f2
feat: introduce new venue images, update home component styles to inc…
anyulled Dec 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions .agent/2025-cfp-committee-recovery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# 2025 CFP Committee Data Recovery

## Summary

Successfully recovered the 2025 CFP Committee data that was lost during the 2026 edition preparation.

## Source

- **Git Commit**: `8ae0b8f5` - "feat: 2025 cfp committee"
- **File**: `src/views/Cfp/CfpData.ts` (historical version)

## Recovered Data

### Java & JVM Track

1. **Ana Maria Mihalceanu**
- Twitter: @ammbra1508
- LinkedIn: ana-maria-mihalceanu-1508

2. **David Gomez G.**
- Twitter: @dgomezg
- LinkedIn: dgomezg

3. **Grace Jansen**
- Twitter: @gracejansen27
- LinkedIn: grace-jansen

4. **Ixchel Ruiz**
- Twitter: @ixchelruiz
- LinkedIn: ixchelruiz

### Frontend Track

1. **Carles Nuñez**
- Twitter: @carlesnunez
- LinkedIn: carles-nunez-tomeo

2. **Iago Lastra**
- Twitter: @iagolast
- LinkedIn: iagolast

3. **Montse Ortega**

### AI, ML, Python Track

1. **Lize Raes**
- Twitter: @LizeRaes
- LinkedIn: lize-raes-a8a34110

2. **Marie-Alice Blete**

3. **Nicolas Grenié**

4. **Santiago Rincón Martínez**
- LinkedIn: santiago-rincon-martinez

### DevOps, Cloud, Kubernetes Track

1. **Ana Carmona**
- Twitter: @nhan_bcn
- LinkedIn: ana-carmona-ag

2. **Rael Garcia**
- LinkedIn: rael

3. **Tiffany Jernigan**

4. **Abdel Sghiouar**
- Twitter: @boredabdel
- LinkedIn: sabdelfettah

### Agile, Leadership, Diversity Track

1. **Angels Gilabert**

2. **Julio César Pérez**
- Twitter: @jcesarperez
- LinkedIn: juliocesarperezarques

3. **Raquel Dominguez Andujar**
- LinkedIn: raqueldominguezandujar

4. **Toni Tassani**
- Twitter: @atassani
- LinkedIn: tonitassani

## Implementation

### Files Created

- `/src/views/Cfp/CfpData2025.ts` - Contains all 2025 CFP committee data

### Files Modified

- `/src/2025/Cfp/CfpSectionWrapper2025.tsx` - Updated to use 2025 CFP data

## Total Committee Members

**21 members** across 5 tracks

## Verification

- ✅ All tests pass (197 tests)
- ✅ Build succeeds
- ✅ Data formatted with Prettier
- ✅ 2025 CFP page now displays the correct committee members
90 changes: 90 additions & 0 deletions .agent/2025-components-verification.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# 2025 Components Verification Summary

## Status Overview

Based on the verification of all 2025 components mentioned, here's the complete status:

### ✅ Components Already Correctly Configured for 2025

1. **Schedule** (`/2025/schedule`)
- **Status**: ✅ Correctly imports `@data/2025.json`
- **Location**: `src/views/Schedule/Schedule.tsx` (line 7)
- **No action needed**

2. **Talks** (`/2025/talks`)
- **Status**: ✅ Correctly imports `@data/2025.json` as default
- **Location**: `src/views/Talks/Talks.tsx` (line 6)
- **Behavior**: Uses `conferenceConfig` prop with `conferenceData` (2025) as default
- **API**: Calls `useFetchTalks(conferenceConfig.edition)` with correct year
- **No action needed**

3. **Workshops** (`/2025/workshops`)
- **Status**: ✅ Correctly imports `@data/2025.json`
- **Location**: `src/views/Workshops/Workshops.tsx` (line 5)
- **Note**: 2026 will not have workshops (as per requirements)
- **No action needed**

4. **Job Offers** (`/2025/jobOffers`)
- **Status**: ✅ Uses static `jobOffers` data from `JobsData`
- **Location**: `src/components/JobOffers/JobOffersList.tsx` (line 5)
- **Note**: Not year-specific, uses static sponsor job data
- **No action needed**

### ⚠️ Component Requiring Wrapper

5. **Diversity** (`/2025/diversity`)
- **Status**: ⚠️ Hardcodes `@data/2026.json`
- **Location**: `src/views/Diversity/Diversity.tsx` (line 3)
- **Issue**: Uses `data.edition` directly (lines 95, 121) instead of accepting a prop
- **Current behavior**: Shows "2026" in text
- **Required action**: Create `DiversityWrapper2025` to pass 2025 data
- **Note**: Both 2025 and 2026 have `diversity: false` (application form disabled)

## Recommendations

### Immediate Action Required

**Diversity Component**: Create a wrapper for 2025 to ensure correct year is displayed.

```typescript
// src/2025/Diversity/DiversityWrapper2025.tsx
import React, { FC } from "react";
import { Diversity } from "@views/Diversity/Diversity";
import data2025 from "@data/2025.json";

export const DiversityWrapper2025: FC = () => {
return <Diversity conferenceConfig={data2025} />;
};
```

**Note**: The Diversity component needs to be refactored to accept a `conferenceConfig` prop instead of hardcoding the import.

### Future Considerations

1. **2026 Components**: As mentioned, the following are not ready yet:
- Diversity 2026: Incomplete/duplicate data is acceptable
- Schedule 2026: Not ready
- Talks 2026: Will be empty (API returns no records)
- Workshops 2026: Will not have workshops
- Job Offers 2026: Not ready (no sponsors yet)

2. **Pattern Consistency**: Consider refactoring all base components to accept `conferenceConfig` props to avoid future issues when preparing new editions.

## Data Configuration Summary

| Component | 2025 Status | 2026 Status | Needs Wrapper |
| ---------- | -------------- | --------------- | ------------- |
| Schedule | ✅ Set | ❌ Not ready | No |
| Talks | ✅ Set | ❌ Empty (API) | No |
| Workshops | ✅ Set | ❌ No workshops | No |
| Job Offers | ✅ Set | ❌ No sponsors | No |
| Diversity | ✅ Set | ❌ Not ready | Yes (2025) |
| Speakers | ✅ Set (fixed) | ✅ Ready | Yes (2025) |
| CFP | ✅ Set (fixed) | ✅ Ready | Yes (2025) |

## Testing Status

- ✅ All 197 tests pass
- ✅ Integration tests verify year configurations
- ✅ Speakers and CFP have dedicated wrapper tests
- ⏳ Diversity wrapper needs to be created and tested
69 changes: 69 additions & 0 deletions .agent/eslint-fix-progress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# ESLint Fix Progress Summary

## Completed Fixes (7 individual commits)

### ✅ Fixed Issues

1. **Duplicate super() calls** in `Speakers.test.tsx` - Fixed Date mock constructor
2. **Loose equality operators** in `QrCode.tsx` - Replaced `==` with `===`
3. **Unused imports** in `year-data-verification.test.tsx` - Removed render, React, BrowserRouter
4. **Unused variable** in `year-path-isolation.test.ts` - Prefixed with underscore
5. **Unused data import** in `ActionButtons.tsx`
6. **Unused RouteProps** in `SuspenseRoute.tsx`
7. **Unused route constants** - Removed ROUTE_ACCOMMODATION and ROUTE_2026_DIVERSITY

## Current Status

**Total: 74-75 problems (66-67 errors, 8 warnings)**

## Remaining Issues Breakdown

### Import Order Issues (~30 errors)

Files needing import order fixes:

- `SessionFeedback.tsx` (6 errors) - Complex primereact imports
- `Talks.tsx` (3 errors)
- `Sponsorship.tsx` (3 errors)
- `SpeakerSwiper.tsx` (2 errors)
- `Venue.tsx`, `VenueWTC.tsx` (1 error each)
- Various files with empty line issues (Faqs, HomeWTC, LiveView, etc.)

**Note**: Import order rules are complex and may require manual fixing based on the ESLint config groups.

### TypeScript `any` Types (~30 errors)

**Acceptable `any` types** (route configurations):

- `src/config/routeConfig.ts` (2) - React component types
- `src/config/yearRoutes.ts` (16) - React component types

**Should be fixed**:

- `SessionFeedback.tsx` (1) - Event handler type
- `reportWebVitals.ts` (1) - Callback type
- `urlBuilder.test.ts` (1) - Test mock type
- `types/types.ts` (1) - Generic type definition
- `SpeakersWrapper2025.test.tsx` (3) - Test mock types

### Warnings (8 total)

- **react-refresh/only-export-components** (6) - Components exporting non-component values
- **jsx-a11y/alt-text** (1) - Missing alt text on img
- **@typescript-eslint/no-non-null-assertion** (2) - Non-null assertions

## Recommendations

1. **Import Order**: These are cosmetic but enforce consistency. Can be tackled file-by-file or use `--fix` where possible.

2. **Route Config `any` types**: These are acceptable - React components have varying prop types. Consider adding eslint-disable comments if needed.

3. **Other `any` types**: Should be replaced with proper types for better type safety.

4. **Warnings**: Lower priority but should be addressed for production code quality.

## Next Steps

- Continue with import order fixes (manual or semi-automated)
- Fix non-route `any` types
- Address accessibility and code quality warnings
131 changes: 131 additions & 0 deletions .agent/eslint-fix-summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# ESLint Configuration Fix - Summary

## What Was Fixed

### 1. **Created ESLint Configuration File**

- Created `eslint.config.js` using the new ESLint v9 flat config format
- Configured TypeScript, React, and import plugins
- Added proper parser and plugin configurations

### 2. **Updated package.json**

- Added `"type": "module"` to support ES module syntax
- This eliminates the module type warning from ESLint

### 3. **Installed Missing Dependencies**

- Installed `eslint-plugin-react-refresh` for Vite/React fast refresh support

### 4. **Added Test Globals**

- Added Vitest globals (describe, it, test, expect, beforeEach, etc.) to ESLint config
- This resolves "not defined" errors in test files

### 5. **Configured Rules**

- Disabled `no-undef` (TypeScript handles this better)
- Disabled `no-unused-expressions` (for styled-components compatibility)
- Configured import order rules with automatic fixing
- Set up TypeScript-specific rules including:
- `@typescript-eslint/no-explicit-any`: error
- `@typescript-eslint/consistent-type-imports`: error
- `@typescript-eslint/no-unused-vars`: error with ignore patterns

### 6. **Auto-Fixed Issues**

- Ran `npm run lint:fix` which automatically fixed 108 import order issues
- Reduced total problems from 198 to 90

## Current Status

✅ **Build**: Passing
✅ **Tests**: All 245 tests passing (5 skipped)
✅ **Prettier**: Code formatted
⚠️ **Linting**: 90 problems remaining (82 errors, 8 warnings)

## Remaining Issues (90 problems)

### Import Order Issues (75 errors)

These are mostly import order violations that couldn't be auto-fixed. They follow this pattern:

- Type imports should be ordered correctly
- Internal imports should follow a specific order
- Empty lines between import groups

**Examples:**

- `react` type import should occur after import of `@styles/colors`
- `styled-components` import should occur after import of `react-use`
- There should be no empty line within import group

### Code Quality Issues (7 errors)

1. **SessionFeedback.tsx**: 1 `any` type usage (line 48)
2. **Speakers.test.tsx**: 2 duplicate `super()` calls (lines 107, 143)
3. **VenueWTC.tsx**: 1 unused variable `StyledTrainLine` (line 66)

### Warnings (8 warnings)

- React refresh warnings about exporting non-components
- Accessibility warnings (missing alt text, etc.)

## Recommendations

### Priority 1: Fix Code Quality Issues

These are actual bugs or code smells:

1. Remove duplicate `super()` calls in `Speakers.test.tsx`
2. Replace `any` type in `SessionFeedback.tsx` with proper type
3. Remove or prefix unused `StyledTrainLine` variable with `_`

### Priority 2: Fix Import Order

The import order issues can be fixed by:

1. Manually reordering imports to match the configured order
2. Or adjusting the import order rules to be less strict
3. Or disabling specific import order rules that are too restrictive

### Priority 3: Address Warnings

- Add alt text to images
- Move non-component exports to separate files

## Configuration Details

### ESLint Config Location

`/Users/anyulled/IdeaProjects/dev-bcn.github.io/eslint.config.js`

### Key Rules Configured

- TypeScript: Strict type checking, no `any`, consistent type imports
- React: JSX runtime, hooks rules, fast refresh
- Import: Ordered imports, no duplicates, proper resolution
- Code Quality: No console (warn), prefer const, eqeqeq

### Import Order Configuration

```javascript
groups: [
"builtin", // Node.js built-ins
"external", // npm packages
"internal", // @alias imports
["parent", "sibling"], // relative imports
"index",
"object",
"type", // type imports
];
```

## Next Steps

To achieve 0 linting errors:

1. Fix the 7 code quality errors (highest priority)
2. Decide on import order strategy (manual fix vs. rule adjustment)
3. Address accessibility warnings
4. Consider adding pre-commit hooks to enforce linting
Loading
Loading