Skip to content

Commit 0f87d39

Browse files
leopu00claude
andcommitted
style(web): prettier --write su 7 file dell'interaction-planes (dev4) — sblocca Lint
layout/team-pages/cloud-sync-tickets/CloudRefreshButton avevano drift di formattazione. Solo formattazione, nessuna modifica semantica. Verificato in locale prima del push: prettier pulito, tsc web 0, vitest 12/12 moduli verdi. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent d8fd253 commit 0f87d39

7 files changed

Lines changed: 376 additions & 348 deletions

File tree

web/app/(protected)/layout.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ const DESKTOP_ONLY_PREFIXES = [
3838

3939
function isDesktopOnlyPath(p: string): boolean {
4040
if (p.startsWith("/settings/cloud-sync")) return false; // sync-infra resta cloud
41-
return DESKTOP_ONLY_PREFIXES.some((pre) => p === pre || p.startsWith(pre + "/"));
41+
return DESKTOP_ONLY_PREFIXES.some(
42+
(pre) => p === pre || p.startsWith(pre + "/"),
43+
);
4244
}
4345

4446
export default async function ProtectedLayout({

web/app/(protected)/team/assistente/page.tsx

Lines changed: 119 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -370,40 +370,44 @@ export default function AssistentePage() {
370370
{/* Controlli team (start/stop) — solo desktop, nascosti sul cloud read-only */}
371371
{isCloud !== true && (
372372
<>
373-
{!isActive && (
374-
<button
375-
onClick={handleStart}
376-
disabled={startBusy || status == null}
377-
className="px-6 py-2.5 rounded-lg text-[12px] font-bold tracking-wide transition-all"
378-
style={{
379-
background:
380-
startBusy || status == null
381-
? "var(--color-border)"
382-
: "var(--color-green)",
383-
color:
384-
startBusy || status == null ? "var(--color-dim)" : "#000",
385-
cursor:
386-
startBusy || status == null ? "not-allowed" : "pointer",
387-
opacity: startBusy ? 0.7 : 1,
388-
}}
389-
>
390-
{startLabel}
391-
</button>
392-
)}
393-
{isActive && (
394-
<button
395-
onClick={handleStop}
396-
disabled={stopBusy}
397-
className="px-5 py-2.5 rounded-lg text-[12px] font-bold tracking-wide transition-all border border-[var(--color-red)] hover:bg-[var(--color-red)] hover:text-[#000]"
398-
style={{
399-
color: "var(--color-red)",
400-
cursor: stopBusy ? "not-allowed" : "pointer",
401-
opacity: stopBusy ? 0.6 : 1,
402-
}}
403-
>
404-
{stopBusy ? "Fermando…" : "Ferma"}
405-
</button>
406-
)}
373+
{!isActive && (
374+
<button
375+
onClick={handleStart}
376+
disabled={startBusy || status == null}
377+
className="px-6 py-2.5 rounded-lg text-[12px] font-bold tracking-wide transition-all"
378+
style={{
379+
background:
380+
startBusy || status == null
381+
? "var(--color-border)"
382+
: "var(--color-green)",
383+
color:
384+
startBusy || status == null
385+
? "var(--color-dim)"
386+
: "#000",
387+
cursor:
388+
startBusy || status == null
389+
? "not-allowed"
390+
: "pointer",
391+
opacity: startBusy ? 0.7 : 1,
392+
}}
393+
>
394+
{startLabel}
395+
</button>
396+
)}
397+
{isActive && (
398+
<button
399+
onClick={handleStop}
400+
disabled={stopBusy}
401+
className="px-5 py-2.5 rounded-lg text-[12px] font-bold tracking-wide transition-all border border-[var(--color-red)] hover:bg-[var(--color-red)] hover:text-[#000]"
402+
style={{
403+
color: "var(--color-red)",
404+
cursor: stopBusy ? "not-allowed" : "pointer",
405+
opacity: stopBusy ? 0.6 : 1,
406+
}}
407+
>
408+
{stopBusy ? "Fermando…" : "Ferma"}
409+
</button>
410+
)}
407411
</>
408412
)}
409413
{startBanner && (
@@ -649,91 +653,93 @@ export default function AssistentePage() {
649653

650654
{/* Input chat — [JHT-DASHBOARD-SPLIT] composer = controllo, solo desktop */}
651655
{isCloud !== true && (
652-
<form
653-
onSubmit={(e) => {
654-
e.preventDefault();
655-
handleSend();
656-
}}
657-
className="flex items-center border border-t-0 border-[var(--color-border)] overflow-hidden"
658-
style={{
659-
background: "#0d1117",
660-
borderRadius: chatFullscreen ? "0" : "0 0 12px 12px",
661-
margin: chatFullscreen ? "0 16px 16px 16px" : undefined,
662-
}}
663-
>
664-
<input
665-
ref={fileInputRef}
666-
type="file"
667-
multiple
668-
onChange={handleFileSelect}
669-
className="hidden"
670-
accept=".pdf,.doc,.docx,.txt,.md,.png,.jpg,.jpeg,.csv,.xlsx,.xls,.json,.yaml,.yml"
671-
/>
672-
<button
673-
type="button"
674-
onClick={() => fileInputRef.current?.click()}
675-
disabled={sending}
676-
className="pl-3 pr-1 py-3 transition-colors cursor-pointer"
677-
aria-label="Allega file"
678-
title="Allega file"
656+
<form
657+
onSubmit={(e) => {
658+
e.preventDefault();
659+
handleSend();
660+
}}
661+
className="flex items-center border border-t-0 border-[var(--color-border)] overflow-hidden"
679662
style={{
680-
color:
681-
attachedFiles.length > 0
682-
? "var(--color-green)"
683-
: "var(--color-dim)",
663+
background: "#0d1117",
664+
borderRadius: chatFullscreen ? "0" : "0 0 12px 12px",
665+
margin: chatFullscreen
666+
? "0 16px 16px 16px"
667+
: undefined,
684668
}}
685669
>
686-
<svg
687-
aria-hidden="true"
688-
width="16"
689-
height="16"
690-
viewBox="0 0 24 24"
691-
fill="none"
692-
stroke="currentColor"
693-
strokeWidth="2"
694-
strokeLinecap="round"
695-
strokeLinejoin="round"
670+
<input
671+
ref={fileInputRef}
672+
type="file"
673+
multiple
674+
onChange={handleFileSelect}
675+
className="hidden"
676+
accept=".pdf,.doc,.docx,.txt,.md,.png,.jpg,.jpeg,.csv,.xlsx,.xls,.json,.yaml,.yml"
677+
/>
678+
<button
679+
type="button"
680+
onClick={() => fileInputRef.current?.click()}
681+
disabled={sending}
682+
className="pl-3 pr-1 py-3 transition-colors cursor-pointer"
683+
aria-label="Allega file"
684+
title="Allega file"
685+
style={{
686+
color:
687+
attachedFiles.length > 0
688+
? "var(--color-green)"
689+
: "var(--color-dim)",
690+
}}
696691
>
697-
<path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48" />
698-
</svg>
699-
</button>
700-
<input
701-
ref={inputRef}
702-
type="text"
703-
value={input}
704-
onChange={(e) => setInput(e.target.value)}
705-
placeholder={
706-
attachedFiles.length > 0
707-
? `${attachedFiles.length} file allegat${attachedFiles.length === 1 ? "o" : "i"} — scrivi un messaggio...`
708-
: "Scrivi un messaggio..."
709-
}
710-
disabled={sending}
711-
className="flex-1 px-3 py-3 text-[12px] bg-transparent outline-none"
712-
style={{ color: "var(--color-bright)" }}
713-
/>
714-
<button
715-
type="submit"
716-
disabled={
717-
(!input.trim() && attachedFiles.length === 0) ||
718-
sending
719-
}
720-
className="px-5 py-3 text-[11px] font-semibold tracking-widest uppercase transition-colors"
721-
style={{
722-
color:
723-
(!input.trim() && attachedFiles.length === 0) ||
724-
sending
725-
? "var(--color-dim)"
726-
: "var(--color-green)",
727-
cursor:
692+
<svg
693+
aria-hidden="true"
694+
width="16"
695+
height="16"
696+
viewBox="0 0 24 24"
697+
fill="none"
698+
stroke="currentColor"
699+
strokeWidth="2"
700+
strokeLinecap="round"
701+
strokeLinejoin="round"
702+
>
703+
<path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48" />
704+
</svg>
705+
</button>
706+
<input
707+
ref={inputRef}
708+
type="text"
709+
value={input}
710+
onChange={(e) => setInput(e.target.value)}
711+
placeholder={
712+
attachedFiles.length > 0
713+
? `${attachedFiles.length} file allegat${attachedFiles.length === 1 ? "o" : "i"} — scrivi un messaggio...`
714+
: "Scrivi un messaggio..."
715+
}
716+
disabled={sending}
717+
className="flex-1 px-3 py-3 text-[12px] bg-transparent outline-none"
718+
style={{ color: "var(--color-bright)" }}
719+
/>
720+
<button
721+
type="submit"
722+
disabled={
728723
(!input.trim() && attachedFiles.length === 0) ||
729724
sending
730-
? "default"
731-
: "pointer",
732-
}}
733-
>
734-
{sending ? "…" : "invia"}
735-
</button>
736-
</form>
725+
}
726+
className="px-5 py-3 text-[11px] font-semibold tracking-widest uppercase transition-colors"
727+
style={{
728+
color:
729+
(!input.trim() && attachedFiles.length === 0) ||
730+
sending
731+
? "var(--color-dim)"
732+
: "var(--color-green)",
733+
cursor:
734+
(!input.trim() && attachedFiles.length === 0) ||
735+
sending
736+
? "default"
737+
: "pointer",
738+
}}
739+
>
740+
{sending ? "…" : "invia"}
741+
</button>
742+
</form>
737743
)}
738744

739745
{/* Terminale (toggle) — nascosto in fullscreen */}

0 commit comments

Comments
 (0)