diff --git a/frontend/src/component/feature/FeatureView/FeatureMetrics/FeatureImpactMetrics.tsx b/frontend/src/component/feature/FeatureView/FeatureMetrics/FeatureImpactMetrics.tsx index 1591b2ed96..8a7f6960b6 100644 --- a/frontend/src/component/feature/FeatureView/FeatureMetrics/FeatureImpactMetrics.tsx +++ b/frontend/src/component/feature/FeatureView/FeatureMetrics/FeatureImpactMetrics.tsx @@ -10,7 +10,7 @@ import { useRequiredPathParam } from 'hooks/useRequiredPathParam.ts'; import { useFeatureImpactMetrics } from 'hooks/api/getters/useFeatureImpactMetrics/useFeatureImpactMetrics.ts'; import { ChartItem } from '../../../impact-metrics/ChartItem.tsx'; import PermissionButton from 'component/common/PermissionButton/PermissionButton.tsx'; -import { ADMIN } from 'component/providers/AccessProvider/permissions.ts'; +import { UPDATE_FEATURE } from 'component/providers/AccessProvider/permissions.ts'; import useToast from 'hooks/useToast.tsx'; import { formatUnknownError } from 'utils/formatUnknownError.ts'; import type { ChartConfig } from '../../../impact-metrics/types.ts'; @@ -28,6 +28,7 @@ type ModalState = export const FeatureImpactMetrics: FC = () => { const feature = useRequiredPathParam('featureId'); + const project = useRequiredPathParam('projectId'); const [modalState, setModalState] = useState({ type: 'closed', @@ -109,7 +110,8 @@ export const FeatureImpactMetrics: FC = () => { startIcon={} onClick={handleAddChart} disabled={metadataLoading || !!metadataError} - permission={ADMIN} + permission={UPDATE_FEATURE} + projectId={project} > Add Chart @@ -123,6 +125,8 @@ export const FeatureImpactMetrics: FC = () => { config={config} onEdit={() => handleEditChart(config)} onDelete={() => handleDeleteChart(config.id)} + permission={UPDATE_FEATURE} + projectId={project} /> ))} diff --git a/frontend/src/component/impact-metrics/ChartItem.tsx b/frontend/src/component/impact-metrics/ChartItem.tsx index 2fb3d458df..1ee3a93121 100644 --- a/frontend/src/component/impact-metrics/ChartItem.tsx +++ b/frontend/src/component/impact-metrics/ChartItem.tsx @@ -12,6 +12,8 @@ export interface ChartItemProps { config: DisplayChartConfig; onEdit: (config: ChartConfig) => void; onDelete: (id: string) => void; + permission?: string; + projectId?: string; } const getConfigDescription = (config: DisplayChartConfig): string => { @@ -104,7 +106,13 @@ const StyledChartActions = styled(Box)(({ theme }) => ({ gap: theme.spacing(0.5), })); -export const ChartItem: FC = ({ config, onEdit, onDelete }) => ( +export const ChartItem: FC = ({ + config, + onEdit, + onDelete, + permission = ADMIN, + projectId, +}) => ( @@ -121,13 +129,15 @@ export const ChartItem: FC = ({ config, onEdit, onDelete }) => ( onEdit(config)} - permission={ADMIN} + permission={permission} + projectId={projectId} > onDelete(config.id)} - permission={ADMIN} + permission={permission} + projectId={projectId} >