refactor(progetti): via il tab Commenti e il timer dalla lista
Due rimozioni chieste esplicitamente, che tolgono due doppioni. Il tab "Commenti" del progetto duplicava /admin/conversazioni. Non era una scorciatoia: era la seconda copia. `buildEntityMap()` in conversations-queries cammina clienti -> progetti -> fasi -> task -> deliverable e raccoglie TUTTI i commenti con l'etichetta dell'entita' di origine, quindi l'inbox e' un sovrainsieme stretto di quel tab. La lettura non perde niente. Una cosa la perde, e va detta: dal tab si poteva rispondere sulla singola entita', mentre `replyToConversation` salva sempre sul thread generale. Non e' una regressione introdotta qui — e' una scelta di prodotto gia' presa e gia' annotata in conversazioni/actions.ts — ma da oggi e' l'unica via, e il commento la' sopra ora lo dice. Il timer nella lista progetti era l'altro doppione: si avvia e si ferma dentro il progetto, dove c'e' il contesto per sapere su cosa stai lavorando. Toglierlo elimina anche una query per pagina (la scansione delle entry aperte). Cade di conseguenza il codice rimasto senza chiamanti: CommentsTab.tsx, `postAdminComment`, il campo `comments` di ProjectFullDetail con la sua query, e i due campi activeTimer* di ProjectWithPayments. `totalTrackedSeconds` resta: serve al calcolo del EUR/h, che in lista ci sta ancora. Build e lint puliti. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,6 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||
import { PhasesTab } from "@/components/admin/tabs/PhasesTab";
|
||||
import { PaymentsTab } from "@/components/admin/tabs/PaymentsTab";
|
||||
import { DocumentsTab } from "@/components/admin/tabs/DocumentsTab";
|
||||
import { CommentsTab } from "@/components/admin/tabs/CommentsTab";
|
||||
import { TimerTab } from "@/components/admin/tabs/TimerTab";
|
||||
import { OffersTab } from "@/components/admin/tabs/OffersTab";
|
||||
import { PhasesViewToggle } from "@/components/admin/kanban/PhasesViewToggle";
|
||||
@@ -34,7 +33,6 @@ export default async function ProjectDetailPage({
|
||||
payments,
|
||||
documents,
|
||||
notes,
|
||||
comments,
|
||||
activeTimerEntryId,
|
||||
activeTimerStartedAt,
|
||||
totalTrackedSeconds,
|
||||
@@ -72,7 +70,6 @@ export default async function ProjectDetailPage({
|
||||
<TabsTrigger value="payments">Pagamenti</TabsTrigger>
|
||||
<TabsTrigger value="documents">Documenti</TabsTrigger>
|
||||
<TabsTrigger value="notes">Note</TabsTrigger>
|
||||
<TabsTrigger value="comments">Commenti</TabsTrigger>
|
||||
<TabsTrigger value="timer">Timer</TabsTrigger>
|
||||
<TabsTrigger value="offers">Offerte</TabsTrigger>
|
||||
</TabsList>
|
||||
@@ -115,10 +112,6 @@ export default async function ProjectDetailPage({
|
||||
</div>
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="comments">
|
||||
<CommentsTab comments={comments} phases={phases} clientId={id} />
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="timer">
|
||||
<TimerTab
|
||||
projectId={id}
|
||||
|
||||
Reference in New Issue
Block a user