tercul-frontend/COMPONENT-IMPLEMENTATION-PLAN.md
mukimovd 7859c113fd Plan and analyze missing components for authoring, reading and UI
Adds component analysis reports and implementation plan documents covering missing author and work components, plus core UI elements.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: cbacfb18-842a-4116-a907-18c0105ad8ec
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/39b5c689-6e8a-4d5a-9792-69cc81a56534/d1468a00-d93a-40b6-8ef2-3b7ba89b0f76.jpg
2025-05-08 00:50:19 +00:00

347 lines
7.4 KiB
Markdown

# Component Implementation Plan for Tercul Platform
This document outlines a prioritized plan for implementing the missing components identified in the component analysis.
## Phase 1: Critical UI Components
### Rich Text Editor
**Priority: High**
**Target folder:** `components/ui/rich-text-editor.tsx`
This component is essential for blog post creation/editing and content management.
Features to implement:
- Basic formatting (bold, italic, underline)
- Headings (h1-h6)
- Lists (ordered, unordered)
- Links
- Image embedding
- Markdown support
- Preview mode
Implementation approach:
1. Evaluate existing libraries (TipTap, Slate, etc.)
2. Implement with shadcn UI styling
3. Create toolbar component
4. Add content parser/renderer
5. Implement preview functionality
### Stat Card
**Priority: High**
**Target folder:** `components/ui/stat-card.tsx`
Needed for dashboard statistics display.
Features to implement:
- Title and description
- Value display
- Icon support
- Trend indicator (up/down)
- Comparison to previous period
- Loading state
Implementation approach:
1. Extract from Dashboard.tsx
2. Create standardized component
3. Support theme variants
4. Add animation options
### Empty State
**Priority: High**
**Target folder:** `components/ui/empty-state.tsx`
Used throughout the application to show when data is missing.
Features to implement:
- Icon display
- Title and description
- Optional action button
- Customizable appearance
- Size variants
Implementation approach:
1. Extract patterns from existing pages
2. Create standardized component
3. Support different contexts (empty list, no search results, etc.)
### Tag Input
**Priority: High**
**Target folder:** `components/ui/tag-input.tsx`
Used for blog post tags, work metadata, and filtering.
Features to implement:
- Add tags by typing
- Tag selection from existing options
- Tag removal
- Validation
- Limit maximum tags
Implementation approach:
1. Extract from BlogCreate.tsx
2. Create reusable component
3. Add autocomplete functionality
4. Support controlled and uncontrolled modes
## Phase 2: Dashboard Components
### Data Table with Actions
**Priority: High**
**Target folder:** `components/dashboard/data-table.tsx`
Core component for all dashboard management pages.
Features to implement:
- Sortable columns
- Filtering
- Pagination
- Row selection
- Action menu
- Bulk actions
- Loading states
- Empty states
Implementation approach:
1. Extend shadcn table components
2. Add consistent action patterns
3. Implement with shadcn styling
4. Create reusable filters
### Dashboard Header
**Priority: Medium**
**Target folder:** `components/dashboard/dashboard-header.tsx`
Consistent header for all dashboard pages.
Features to implement:
- Title and description
- Action buttons
- Breadcrumbs
- Back navigation
- Quick filters
Implementation approach:
1. Extract patterns from existing dashboard pages
2. Create standardized component
3. Support different contexts and permissions
### Activity Feed
**Priority: Medium**
**Target folder:** `components/dashboard/activity-feed.tsx`
For showing recent activity in the dashboard.
Features to implement:
- Activity items with icons
- User attribution
- Timestamp
- Activity types
- Loading state
- Empty state
Implementation approach:
1. Design consistent item layout
2. Support different activity types
3. Implement virtual scrolling for performance
## Phase 3: User Experience Components
### Comment Thread
**Priority: Medium**
**Target folder:** `components/comment/comment-thread.tsx`
For discussions on works, blog posts, etc.
Features to implement:
- Nested comments
- User information
- Timestamps
- Voting/liking
- Reply functionality
- Moderation tools
- Loading states
Implementation approach:
1. Design threaded comments UI
2. Handle nested data structure
3. Add moderation capabilities based on user role
### User Profile Card
**Priority: Medium**
**Target folder:** `components/user/profile-card.tsx`
For displaying user information consistently.
Features to implement:
- Avatar
- User name and handle
- Role badge
- Stats summary
- Action buttons
- Size variants
Implementation approach:
1. Extract patterns from Profile.tsx
2. Create standardized component
3. Support different contexts (dashboard, comments, etc.)
### Work Preview
**Priority: Medium**
**Target folder:** `components/work/work-preview.tsx`
For consistent display of works in lists and grids.
Features to implement:
- Title and author
- Publication info
- Tags
- Preview snippet
- Action menu
- Size variants
Implementation approach:
1. Standardize from WorkCard component
2. Add variants for different contexts
3. Support loading and error states
## Phase 4: Editorial Components
### Publication Scheduler
**Priority: Medium**
**Target folder:** `components/blog/publication-scheduler.tsx`
For scheduling content publication.
Features to implement:
- Date and time selection
- Time zone handling
- Preview of scheduled time
- Status indicator
Implementation approach:
1. Create date/time picker with validation
2. Add status visualization
3. Handle scheduling logic
### Work Editor
**Priority: High**
**Target folder:** `components/work/work-editor.tsx`
For creating and editing literary works.
Features to implement:
- Line-numbered text editing
- Syntax highlighting for poetry
- Metadata editor
- Translation alignment
- Version comparison
Implementation approach:
1. Create specialized text editor
2. Add line numbering and navigation
3. Implement metadata form
4. Support translations
### Author Editor
**Priority: Medium**
**Target folder:** `components/author/author-editor.tsx`
For creating and editing author profiles.
Features to implement:
- Author details form
- Timeline event management
- Works association
- Image upload
Implementation approach:
1. Create form component
2. Add timeline event editor
3. Implement work selection
4. Add image upload and cropping
## Phase 5: Advanced UI Components
### Timeline
**Priority: Low**
**Target folder:** `components/ui/timeline.tsx`
For displaying chronological events.
Features to implement:
- Vertical/horizontal layout
- Event nodes
- Connectors
- Date display
- Interactive events
Implementation approach:
1. Create base timeline component
2. Add event rendering
3. Support interactive features
### File Uploader
**Priority: Medium**
**Target folder:** `components/ui/file-uploader.tsx`
For uploading images and documents.
Features to implement:
- Drag and drop
- File selection
- Progress indicator
- Preview
- Validation
- Error handling
Implementation approach:
1. Create upload component
2. Add drag-drop functionality
3. Implement preview rendering
4. Add validation and error handling
### Comparison Slider
**Priority: Low**
**Target folder:** `components/ui/comparison-slider.tsx`
For comparing translations or versions.
Features to implement:
- Side-by-side view
- Draggable divider
- Synchronized scrolling
- Highlighting differences
Implementation approach:
1. Create slider component
2. Implement dragging behavior
3. Add content synchronization
## Implementation Timeline
### Week 1: Critical UI Components
- Rich Text Editor
- Stat Card
- Empty State
- Tag Input
### Week 2: Dashboard Components
- Data Table with Actions
- Dashboard Header
- Work Preview standardization
### Week 3: User Experience Components
- Comment Thread
- User Profile Card
- Publication Scheduler
### Week 4: Editorial Components
- Work Editor
- Author Editor
- File Uploader
### Week 5: Advanced UI Components
- Timeline
- Comparison Slider
- Remaining UI improvements