import { Tabs, Tab } from '@material-ui/core'; import { useState } from 'react'; import { Archive, FileCopy } from '@material-ui/icons'; import { Route, useHistory, useParams, Link } from 'react-router-dom'; import useFeatureApi from '../../../hooks/api/actions/useFeatureApi/useFeatureApi'; import useFeature from '../../../hooks/api/getters/useFeature/useFeature'; import useTabs from '../../../hooks/useTabs'; import useToast from '../../../hooks/useToast'; import { IFeatureViewParams } from '../../../interfaces/params'; import { UPDATE_FEATURE } from '../../AccessProvider/permissions'; import Dialogue from '../../common/Dialogue'; import PermissionIconButton from '../../common/PermissionIconButton/PermissionIconButton'; import FeatureLog from './FeatureLog/FeatureLog'; import FeatureMetrics from './FeatureMetrics/FeatureMetrics'; import FeatureOverview from './FeatureOverview/FeatureOverview'; import FeatureStrategies from './FeatureStrategies/FeatureStrategies'; import FeatureVariants from './FeatureVariants/FeatureVariants'; import { useStyles } from './FeatureView2.styles'; import FeatureSettings from './FeatureSettings/FeatureSettings'; const FeatureView2 = () => { const { projectId, featureId } = useParams(); const { feature } = useFeature(projectId, featureId); const { a11yProps } = useTabs(0); const { archiveFeatureToggle } = useFeatureApi(); const { toast, setToastData } = useToast(); const [showDelDialog, setShowDelDialog] = useState(false); const styles = useStyles(); const history = useHistory(); const basePath = `/projects/${projectId}/features2/${featureId}`; const archiveToggle = async () => { try { await archiveFeatureToggle(projectId, featureId); setToastData({ text: 'Feature archived', type: 'success', show: true, }); setShowDelDialog(false); history.push(`/projects/${projectId}`); } catch (e) { setToastData({ show: true, type: 'error', text: e.toString(), }); setShowDelDialog(false); } }; const handleCancel = () => setShowDelDialog(false); const tabData = [ { title: 'Overview', path: `${basePath}/overview`, name: 'overview', }, { title: 'Strategies', path: `${basePath}/strategies`, name: 'strategies', }, { title: 'Metrics', path: `${basePath}/metrics`, name: 'Metrics', }, { title: 'Event log', path: `${basePath}/logs`, name: 'Event log', }, { title: 'Variants', path: `${basePath}/variants`, name: 'Variants' }, { title: 'Settings', path: `${basePath}/settings`, name: 'Settings' }, ]; const renderTabs = () => { return tabData.map((tab, index) => { return ( { history.push(tab.path); }} className={styles.tabButton} /> ); }); }; return ( <>

{feature.name}

setShowDelDialog(true)} >
{renderTabs()}
archiveToggle()} open={showDelDialog} onClose={handleCancel} primaryButtonText="Archive toggle" secondaryButtonText="Cancel" title="Archive feature toggle" > Are you sure you want to archive this feature toggle? {toast} ); }; export default FeatureView2;