import React from 'react'; import { App, Button, Card, Layout, Space, Tooltip, Typography } from 'antd'; import ProjectList from 'Components/Client/Projects/ProjectList'; import ProjectTabs from 'Components/Client/Projects/ProjectTabs'; import { useHistory } from 'react-router-dom'; import { useStore } from '@/mstore'; import { observer } from 'mobx-react-lite'; import { PlusOutlined, KeyOutlined } from '@ant-design/icons'; import ProjectTabContent from 'Components/Client/Projects/ProjectTabContent'; import { useModal } from 'Components/ModalContext'; import ProjectForm from 'Components/Client/Projects/ProjectForm'; import Project from '@/mstore/types/project'; import { useTranslation } from 'react-i18next'; function Projects() { const { t } = useTranslation(); const { projectsStore, customFieldStore } = useStore(); const history = useHistory(); const { project, pid, tab } = projectsStore.config; const { openModal, closeModal } = useModal(); React.useEffect(() => { const params = new URLSearchParams(history.location.search); const pid = params.get('pid'); const tab = params.get('tab'); projectsStore.setConfigProject(pid ? parseInt(pid) : undefined); projectsStore.setConfigTab(tab); return () => { void customFieldStore.fetchListActive(`${projectsStore.activeSiteId}`); }; }, []); React.useEffect(() => { const params = new URLSearchParams(history.location.search); if (projectsStore.config.pid) { params.set('pid', `${projectsStore.config.pid}`); } if (projectsStore.config.tab) { params.set('tab', projectsStore.config.tab); } history.push({ search: params.toString() }); }, [pid, tab]); const createProject = () => { openModal(, { title: t('Add Project'), }); }; return ( {t('Projects')} } extra={ } >
{project?.name}
{project && }
); } export default observer(Projects); function ProjectKeyButton({ project }: { project: Project | null }) { const { message } = App.useApp(); const { t } = useTranslation(); const copyKey = () => { if (!project || !project.projectKey) { void message.error(t('Project key not found')); return; } void navigator.clipboard.writeText(project?.projectKey || ''); void message.success(t('Project key copied to clipboard')); }; return (