Skip to content

IAV-225/ Add calendar feature and reorganize Community Manager components architecture

fatima senan a demandé de fusionner feature/IAV-225 vers develop

This MR adds a comprehensive calendar feature for the Community Manager agent and reorganizes all components to follow a feature-based architecture for better maintainability and scalability.

Main Feature: Calendar

Post Creation

  • Manual mode: Create posts with custom media, captions, and platform selection
  • Automatic mode: AI-powered post generation with customizable prompts, reference images, and inspiration URLs
  • Draft management: Save posts as drafts and edit them later
  • Multi-platform support: Schedule posts across multiple social media platforms simultaneously

Calendar Views

  • Month view: Overview of all scheduled posts with visual indicators
  • Week view: Detailed weekly schedule with time slots
  • Day view: Hour-by-hour view for precise scheduling
  • Agenda view: List format for quick event review

Event Management

  • Multiple events per day: Handles overlapping events with overflow indicators ("+n more" links)
  • Event editing: Click on any event to edit or reschedule
  • Event deletion: Remove scheduled posts with confirmation dialog
  • Status tracking: Visual distinction between scheduled and published posts

Filtering & Search

  • Status filters: Filter by post status (scheduled, published)
  • Platform filters: Filter by social media platform
  • Event list: Quick access to filtered events with direct navigation
  • Reset filters: One-click filter reset functionality

Additional Features

  • Drafts drawer: Dedicated panel for managing draft posts with quick edit access
  • Platform indicators: Visual badges showing which platforms each post targets
  • Date navigation: Easy navigation between dates with "Aujourd'hui" button

Refactoring: Structure Migration

Before

components/
├── calendar-section.tsx
├── calendar-toolbar.tsx
├── calendar-filters.tsx
├── configuration-section.tsx
├── objectifs-marketing-section.tsx
├── create-post-dialog.tsx
├── integration-section.tsx
├── ...

After

components/
├── ui/
│   └── section-header/
│       ├── index.tsx
│       └── section-header.styles.ts
├── features/
│   ├── calendar/
│   │   ├── calendar-section.tsx
│   │   ├── calendar-section.styles.ts
│   │   ├── components/
│   │   │   ├── calendar-toolbar/
│   │   │   │   ├── index.tsx
│   │   │   │   └── calendar-toolbar.styles.ts
│   │   │   └── ...
│   │   └── index.ts
│   ├── configuration/
│   │   ├── configuration-section.tsx
│   │   ├── components/
│   │   │   ├── marketing-objectives.tsx
│   │   │   ├── channel-settings.tsx
│   │   │   └── platform-settings.tsx
│   │   └── index.ts
│   ├── create-post/
│   │   ├── components/
│   │   │   ├── caption-section.tsx
│   │   │   ├── mode-selector.tsx
│   │   │   ├── image-section/
│   │   │   │   ├── index.tsx
│   │   │   │   └── image-section.styles.ts
│   │   │   └── ...
│   │   ├── dialogs/
│   │   │   ├── create-post-dialog/
│   │   │   │   ├── index.tsx
│   │   │   │   └── create-post-dialog.styles.ts
│   │   │   └── ...
│   │   └── index.ts
│   ├── ideas/
│   │   ├── ideas-section.tsx
│   │   ├── ideas-section.styles.ts
│   │   ├── components/
│   │   │   ├── idea-card/
│   │   │   │   ├── index.tsx
│   │   │   │   └── idea-card.styles.ts
│   │   │   └── dialogs/
│   │   │       └── ...
│   │   └── index.ts
│   └── integrations/
│       ├── integration-section.tsx
│       ├── components/
│       │   ├── integration-card.tsx
│       │   └── integration-grid.tsx
│       └── index.ts
└── hooks/
    ├── use-calendar.ts
    ├── use-event.ts
    ├── use-popover.ts
    └── index.ts

Key Improvements

  • Feature-based organization: Each feature is self-contained in its own folder
  • Style co-location: Style files are placed next to their components
  • Centralized exports: index.ts files for clean imports

Rapports de requête de fusion