feat(workspaces): add workspace management page
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
import React, { useState, useRef, useEffect } from "react";
|
||||
import { useWorkspace } from "../context/WorkspaceContext";
|
||||
import { useTranslation } from "../hooks/useTranslation";
|
||||
import { Check, ChevronDown, Plus, Briefcase } from "lucide-react";
|
||||
import { Check, ChevronDown, Plus, Briefcase, Settings } from "lucide-react";
|
||||
import { CreateWorkspaceModal } from "./CreateWorkspaceModal"; // Adjust path if needed
|
||||
import { useNavigate } from "react-router-dom";
|
||||
|
||||
export const WorkspaceSelector: React.FC = () => {
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
|
||||
const dropdownRef = useRef<HTMLDivElement>(null);
|
||||
const navigate = useNavigate()
|
||||
|
||||
const { workspaces, activeWorkspace, setActiveWorkspace, addWorkspace } = useWorkspace();
|
||||
const { t, lang } = useTranslation();
|
||||
@@ -34,7 +36,7 @@ export const WorkspaceSelector: React.FC = () => {
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setIsOpen(!isOpen)}
|
||||
className="flex items-center gap-2 px-3 py-2 text-sm font-medium text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors"
|
||||
className="flex items-center gap-2 px-3 py-2 text-base font-medium text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors"
|
||||
>
|
||||
<div className="w-6 h-6 flex items-center justify-center bg-blue-100 dark:bg-blue-900/50 text-blue-600 dark:text-blue-400 rounded-md">
|
||||
{activeWorkspace?.name?.charAt(0) || <Briefcase className="w-4 h-4" />}
|
||||
@@ -93,6 +95,16 @@ export const WorkspaceSelector: React.FC = () => {
|
||||
<Plus className="w-4 h-4" />
|
||||
{t.workspace?.createNew || "Create New Workspace"}
|
||||
</button>
|
||||
<button
|
||||
onClick={() => {
|
||||
setIsOpen(false);
|
||||
navigate('/workspaces');
|
||||
}}
|
||||
className="flex w-full items-center gap-3 px-4 py-2.5 text-sm font-medium text-slate-700 dark:text-slate-200 hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors"
|
||||
>
|
||||
<Settings className="h-4 w-4" />
|
||||
{ t.workspace?.manage || "Manage Workspaces" }
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user