fix: мобильные кнопки Settings/Logout в header + дедупликация api.ts
This commit is contained in:
parent
1b93bd60c0
commit
8df4179dd7
@ -115,14 +115,6 @@ export interface Task {
|
||||
steps: Step[];
|
||||
}
|
||||
|
||||
export interface ProjectMember {
|
||||
id: string;
|
||||
name: string;
|
||||
slug: string;
|
||||
type: "human" | "agent";
|
||||
role: "owner" | "member";
|
||||
}
|
||||
|
||||
export interface Attachment {
|
||||
id: string;
|
||||
filename: string;
|
||||
@ -312,19 +304,6 @@ export async function getProjectMembers(slug: string): Promise<ProjectMember[]>
|
||||
return request(`/api/v1/projects/${slug}/members`);
|
||||
}
|
||||
|
||||
export async function addProjectMember(slug: string, memberSlug: string): Promise<void> {
|
||||
await request(`/api/v1/projects/${slug}/members`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ slug: memberSlug }),
|
||||
});
|
||||
}
|
||||
|
||||
// --- Project Members ---
|
||||
|
||||
export async function getProjectMembers(slug: string): Promise<ProjectMember[]> {
|
||||
return request(`/api/v1/projects/${slug}/members`);
|
||||
}
|
||||
|
||||
export async function addProjectMember(slug: string, memberSlug: string): Promise<{ ok: boolean }> {
|
||||
return request(`/api/v1/projects/${slug}/members`, {
|
||||
method: "POST",
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { useParams, useSearchParams } from "react-router-dom";
|
||||
import { useParams, useSearchParams, Link } from "react-router-dom";
|
||||
import { getProjects, type Project } from "@/lib/api";
|
||||
import { logout } from "@/lib/auth-client";
|
||||
import Sidebar from "@/components/Sidebar";
|
||||
import KanbanBoard from "@/components/KanbanBoard";
|
||||
import ChatPanel from "@/components/ChatPanel";
|
||||
@ -61,6 +62,22 @@ export default function ProjectPage() {
|
||||
<p className="text-sm text-[var(--muted)]">{project.description}</p>
|
||||
)}
|
||||
</div>
|
||||
<div className="flex items-center gap-2 md:hidden">
|
||||
<Link
|
||||
to="/settings"
|
||||
className="text-[var(--muted)] hover:text-[var(--fg)] transition-colors"
|
||||
title="Настройки"
|
||||
>
|
||||
⚙️
|
||||
</Link>
|
||||
<button
|
||||
onClick={logout}
|
||||
className="text-[var(--muted)] hover:text-[var(--fg)] transition-colors cursor-pointer"
|
||||
title="Выйти"
|
||||
>
|
||||
🚪
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex gap-1">
|
||||
{TABS.map((tab) => (
|
||||
|
||||
Loading…
Reference in New Issue
Block a user