diff --git a/ui/web/src/pages/teams/board/board-container.tsx b/ui/web/src/pages/teams/board/board-container.tsx index 02197056..6330ea0d 100644 --- a/ui/web/src/pages/teams/board/board-container.tsx +++ b/ui/web/src/pages/teams/board/board-container.tsx @@ -24,11 +24,12 @@ interface BoardContainerProps { getTeamTasks: (teamId: string, status?: string, channel?: string, chatId?: string) => Promise<{ tasks: TeamTaskData[]; count: number }>; getTaskDetail: (teamId: string, taskId: string) => Promise<{ task: TeamTaskData; comments: TeamTaskComment[]; events: TeamTaskEvent[]; attachments: TeamTaskAttachment[] }>; deleteTask?: (teamId: string, taskId: string) => Promise; + onWorkspace?: () => void; } export const BoardContainer = memo(function BoardContainer({ teamId, members, scopes, isTeamV2, - getTeamTasks, getTaskDetail, deleteTask, + getTeamTasks, getTaskDetail, deleteTask, onWorkspace, }: BoardContainerProps) { const { t } = useTranslation("teams"); const viewMode = useBoardStore((s) => s.viewMode); @@ -133,6 +134,7 @@ export const BoardContainer = memo(function BoardContainer({ spinning={refreshing} onRefresh={handleRefresh} onCreateTask={handleCreateTask} + onWorkspace={onWorkspace} />
diff --git a/ui/web/src/pages/teams/board/board-header.tsx b/ui/web/src/pages/teams/board/board-header.tsx index 763adfa2..e0dfde2c 100644 --- a/ui/web/src/pages/teams/board/board-header.tsx +++ b/ui/web/src/pages/teams/board/board-header.tsx @@ -1,6 +1,6 @@ import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; -import { ArrowLeft, Settings, Trash2, FolderOpen, Users } from "lucide-react"; +import { ArrowLeft, Settings, Trash2, Users } from "lucide-react"; import { useTranslation } from "react-i18next"; import type { TeamData, TeamMemberData, TeamAccessSettings } from "@/types/team"; @@ -11,11 +11,10 @@ interface BoardHeaderProps { onDelete: () => void; onSettings: () => void; onMembers: () => void; - onWorkspace: () => void; onV2Click?: () => void; } -export function BoardHeader({ team, members, onBack, onDelete, onSettings, onMembers, onWorkspace, onV2Click }: BoardHeaderProps) { +export function BoardHeader({ team, members, onBack, onDelete, onSettings, onMembers, onV2Click }: BoardHeaderProps) { const { t } = useTranslation("teams"); const settings = (team.settings ?? {}) as TeamAccessSettings; const isV2 = (settings.version ?? 1) >= 2; @@ -62,9 +61,6 @@ export function BoardHeader({ team, members, onBack, onDelete, onSettings, onMem - diff --git a/ui/web/src/pages/teams/board/board-toolbar.tsx b/ui/web/src/pages/teams/board/board-toolbar.tsx index e9444558..fff147ea 100644 --- a/ui/web/src/pages/teams/board/board-toolbar.tsx +++ b/ui/web/src/pages/teams/board/board-toolbar.tsx @@ -3,7 +3,7 @@ import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; -import { RefreshCw, Plus, LayoutGrid, List } from "lucide-react"; +import { RefreshCw, Plus, LayoutGrid, List, FolderOpen } from "lucide-react"; import { useTranslation } from "react-i18next"; import { useBoardStore } from "../stores/use-board-store"; import type { GroupBy } from "../stores/use-board-store"; @@ -20,6 +20,7 @@ interface BoardToolbarProps { spinning: boolean; onRefresh: () => void; onCreateTask: () => void; + onWorkspace?: () => void; } const STATUS_FILTERS: { value: StatusFilter; labelKey: string }[] = [ @@ -37,7 +38,7 @@ const GROUP_OPTIONS: { value: GroupBy; labelKey: string }[] = [ export const BoardToolbar = memo(function BoardToolbar({ statusFilter, onStatusFilter, scopes, selectedScope, onScopeChange, - spinning, onRefresh, onCreateTask, + spinning, onRefresh, onCreateTask, onWorkspace, }: BoardToolbarProps) { const { t } = useTranslation("teams"); const { viewMode, setViewMode, groupBy, setGroupBy } = useBoardStore(); @@ -109,6 +110,14 @@ export const BoardToolbar = memo(function BoardToolbar({
+ {/* Workspace */} + {onWorkspace && ( + + )} + {/* View toggle */}