feat: implement project management and portal client detail views with dashboard shell and layout components

This commit is contained in:
Poyraz Avsever
2026-06-08 14:56:29 +03:00
parent 2c47b861d0
commit 6ef5597744
6 changed files with 151 additions and 124 deletions
@@ -297,14 +297,14 @@ export function ProjectDetailClient({
<TabButton active={activeTab === "finance"} onClick={() => setActiveTab("finance")}>
Finans
</TabButton>
{revisions.length > 0 && (
<TabButton active={activeTab === "revisions"} onClick={() => setActiveTab("revisions")}>
Revizyonlar
<TabButton active={activeTab === "revisions"} onClick={() => setActiveTab("revisions")}>
Revizyonlar
{revisions.filter(r => r.status === 'pending').length > 0 && (
<Badge variant="secondary" className="ml-2 px-1 py-0 h-4 text-[10px]">
{revisions.filter(r => r.status === 'pending').length}
</Badge>
</TabButton>
)}
)}
</TabButton>
</div>
{activeTab === "planning" ? (
+18 -8
View File
@@ -659,14 +659,24 @@ function ProjectFormFields({
</div>
<div className="grid gap-2">
<Label htmlFor={`progress-${project?.id || "new"}`}>İlerleme (%)</Label>
<Input
id={`progress-${project?.id || "new"}`}
name="progress"
type="number"
min="0"
max="100"
defaultValue={project?.progress ?? 0}
/>
<div className="flex items-center gap-3">
<Input
id={`progress-${project?.id || "new"}`}
name="progress"
type="range"
min="0"
max="100"
defaultValue={project?.progress ?? 0}
className="flex-1 cursor-pointer accent-primary"
onChange={(e) => {
const el = document.getElementById(`progress-val-${project?.id || "new"}`);
if (el) el.textContent = `%${e.target.value}`;
}}
/>
<span id={`progress-val-${project?.id || "new"}`} className="w-10 text-sm font-medium text-right">
%{project?.progress ?? 0}
</span>
</div>
</div>
</div>
</div>