ComercialRS â Actividades Kanban (Backup 2026-07-17)
O que foi alterado
1. Separação Kanban Actividades vs ReuniÔes
- - Actividades (menu Ferramentas
/atividades+ dentro de projectos) âProjectKanbanBoard - - ReuniĂ”es (menu Reunir
/tasks) âKanbanBoardâ NUNCA mexer - - Adicionado
activityStatusLabels: - - Status usa labels condicionais:
- - Campo Canal oculto quando
isActivity=true: - - Hash:
main-CISfqGjf.js(785,892 bytes) - - CSS:
main-Cl35szjC.css - - Root:
root-DxkG_Lna.js - - DepĂłsito VPS:
/var/www/comercialrs/assets/ - - HTML:
/var/www/comercialrs/index.html - -
src/types/index.tsâ TaskStatus +2 valores - -
src/lib/taskUtils.tsâ statusToProgress +2 valores - -
src/components/tasks/ProjectKanbanBoard.tsxâ COLUMN_CONFIG 4 colunas - -
src/components/tasks/TaskViewDialog.tsxâ activityStatusLabels + canal condicional - -
index.htmlno VPS â actualizado com hashes novos
2. Colunas do Kanban de Actividades (4 colunas fixas)
Ficheiro: src/components/tasks/ProjectKanbanBoard.tsx
`tsx
export const COLUMN_CONFIG = [
{ id: 'todo', title: 'A Fazer', color: '#6B7280', dotClass: 'bg-muted-foreground' },
{ id: 'in_progress', title: 'Em Execução', color: '#3B82F6', dotClass: 'bg-blue-500' },
{ id: 'testing', title: 'Em Teste', color: '#D97706', dotClass: 'bg-amber-500' },
{ id: 'completed', title: 'ConcluĂdo', color: '#22C55E', dotClass: 'bg-green-500' },
];
`
3. TaskStatus expandido
Ficheiro: src/types/index.ts
`ts
export type TaskStatus = 'todo' | 'in_progress' | 'remarketing' | 'overdue' | 'testing' | 'completed';
`
4. Progress mapping
Ficheiro: src/lib/taskUtils.ts
`ts
export const statusToProgress: Record
todo: 0,
in_progress: 50,
remarketing: 25,
overdue: 0,
testing: 75,
completed: 100,
};
`
5. TaskViewDialog â Labels condicionais
Ficheiro: src/components/tasks/TaskViewDialog.tsx
`tsx
const activityStatusLabels: Record
todo: 'A Fazer',
in_progress: 'Em Execução',
testing: 'Em Teste',
completed: 'ConcluĂdo',
overdue: 'Atrasada',
};
`
`tsx
{(isActivity ? activityStatusLabels : statusLabels)[task.status] || task.status}
`
`tsx
{!isActivity && ( / canal mensagem/video/telefone / )}
`
Fluxo de dados
`
Activities.tsx (filteredTasks com isActivity=true)
â ProjectKanbanBoard
â TaskCardMini (onClick â setViewTask)
â TaskViewDialog (isActivity={viewTask.isActivity})
â mostra activityStatusLabels + oculta Canal
`
Build actual
Deploy (sempre completo)
`bash
cd /tmp/comercialrs_build && npm run build
sshpass -p 'Marcia19671951@' rsync -av --delete /tmp/comercialrs_build/dist/assets/ root@31.97.243.106:/var/www/comercialrs/assets/
Depois actualizar index.html com os hashes novos
`
Ficheiros alterados (Ășltima sessĂŁo)
Localização do source
/tmp/comercialrs_build/src/ â build source com patches aplicados