import omit from 'lodash/omit'; import React, { useCallback, useState } from 'react'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; import { Button, Form, Menu, Radio, Segment } from 'semantic-ui-react'; import { Popup } from '../../lib/custom-ui'; import { BoardMembershipRoles } from '../../constants/Enums'; import styles from './BoardMembershipPermissionsSelectStep.module.scss'; const BoardMembershipPermissionsSelectStep = React.memo( ({ defaultData, title, buttonContent, onSelect, onBack }) => { const [t] = useTranslation(); const [data, setData] = useState(() => ({ role: BoardMembershipRoles.EDITOR, canComment: null, ...defaultData, })); const handleRoleSelectClick = useCallback((role) => { setData((prevData) => ({ ...prevData, role, canComment: role === BoardMembershipRoles.EDITOR ? null : !!prevData.canComment, })); }, []); const handleSettingChange = useCallback((_, { name: fieldName, checked: value }) => { setData((prevData) => ({ ...prevData, [fieldName]: value, })); }, []); const handleSubmit = useCallback(() => { onSelect(data.role === BoardMembershipRoles.EDITOR ? omit(data, 'canComment') : data); }, [onSelect, data]); return ( <> {t(title, { context: 'title', })}
handleRoleSelectClick(BoardMembershipRoles.EDITOR)} >
{t('common.editor')}
{t('common.canEditContentOfBoard')}
handleRoleSelectClick(BoardMembershipRoles.VIEWER)} >
{t('common.viewer')}
{t('common.canOnlyViewBoard')}
{data.role !== BoardMembershipRoles.EDITOR && ( )}