1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-24 17:51:14 +02:00
unleash.unleash/frontend/src/component/segments/CreateSegmentButton/CreateSegmentButton.tsx
Nuno Góis 2c2da4ad3f
Feat project segments permissions (#3346)
- Adds `UPDATE_PROJECT_SEGMENT` permission checks;
- Allows `PermissionIconButton` to evaluate multiple permissions, just
like `PermissionButton`;
- Also includes a possible fix for `hasAccess` in `AccessProvider`.
2023-03-17 17:43:48 +00:00

31 lines
1.0 KiB
TypeScript

import {
CREATE_SEGMENT,
UPDATE_PROJECT_SEGMENT,
} from 'component/providers/AccessProvider/permissions';
import PermissionButton from 'component/common/PermissionButton/PermissionButton';
import { NAVIGATE_TO_CREATE_SEGMENT } from 'utils/testIds';
import { useNavigate } from 'react-router-dom';
import { useOptionalPathParam } from 'hooks/useOptionalPathParam';
export const CreateSegmentButton = () => {
const projectId = useOptionalPathParam('projectId');
const navigate = useNavigate();
return (
<PermissionButton
onClick={() => {
if (projectId) {
navigate(`/projects/${projectId}/settings/segments/create`);
} else {
navigate('/segments/create');
}
}}
permission={[CREATE_SEGMENT, UPDATE_PROJECT_SEGMENT]}
projectId={projectId}
data-testid={NAVIGATE_TO_CREATE_SEGMENT}
>
New segment
</PermissionButton>
);
};