feat(activities): editable stages with tab and kanban views
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { matchesSearch } from '@/lib/search';
|
||||
|
||||
export type PipelineAccent = 'green' | 'orange' | 'purple';
|
||||
export type PipelineAccent = 'green' | 'orange' | 'purple' | 'blue' | 'rose' | 'slate';
|
||||
|
||||
export type PipelineDeal = {
|
||||
id: string;
|
||||
@@ -49,6 +49,16 @@ export const PROJECT_BOARD_COPY: PipelineUiCopy = {
|
||||
hideAmount: true,
|
||||
};
|
||||
|
||||
export const ACTIVITY_BOARD_COPY: PipelineUiCopy = {
|
||||
itemNoun: 'فعالیت',
|
||||
addItem: 'افزودن فعالیت',
|
||||
empty: 'فعالیتی نیست',
|
||||
addItemAria: 'افزودن فعالیت به این ستون',
|
||||
itemMenuAria: 'گزینههای فعالیت',
|
||||
listColTitle: 'فعالیت',
|
||||
hideAmount: true,
|
||||
};
|
||||
|
||||
export type PipelineStage = {
|
||||
id: string;
|
||||
title: string;
|
||||
@@ -56,6 +66,12 @@ export type PipelineStage = {
|
||||
deals: PipelineDeal[];
|
||||
isWon?: boolean;
|
||||
isLost?: boolean;
|
||||
/** تعداد کل از سرور وقتی کارتها صفحهبندیشده بارگذاری میشوند */
|
||||
total?: number;
|
||||
hasMore?: boolean;
|
||||
loadingMore?: boolean;
|
||||
/** برچسب کوچک کنار عنوان ستون (مثلاً نوع مرحله) */
|
||||
badge?: string;
|
||||
};
|
||||
|
||||
export const PIPELINE_ACCENT: Record<
|
||||
@@ -80,6 +96,24 @@ export const PIPELINE_ACCENT: Record<
|
||||
text: '#6d28d9',
|
||||
border: '#ddd6fe',
|
||||
},
|
||||
blue: {
|
||||
soft: '#eff6ff',
|
||||
solid: '#3b82f6',
|
||||
text: '#1d4ed8',
|
||||
border: '#bfdbfe',
|
||||
},
|
||||
rose: {
|
||||
soft: '#fff1f2',
|
||||
solid: '#f43f5e',
|
||||
text: '#be123c',
|
||||
border: '#fecdd3',
|
||||
},
|
||||
slate: {
|
||||
soft: '#f8fafc',
|
||||
solid: '#64748b',
|
||||
text: '#334155',
|
||||
border: '#e2e8f0',
|
||||
},
|
||||
};
|
||||
|
||||
const ACCENT_CYCLE: PipelineAccent[] = ['green', 'orange', 'purple'];
|
||||
|
||||
Reference in New Issue
Block a user