✨(front) add icon to button to configure a domain (#1054)
Added an icon to help understanding of the configuration button/tag
This commit is contained in:
@@ -10,6 +10,7 @@ and this project adheres to
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- ✨(front) add icon to button to configure a domain
|
||||||
- ✨(invitations) allow delete invitations mails domains access by an admin
|
- ✨(invitations) allow delete invitations mails domains access by an admin
|
||||||
- ✨(front) delete invitations mails domains access
|
- ✨(front) delete invitations mails domains access
|
||||||
- ✨(front) add show invitations mails domains access #1040
|
- ✨(front) add show invitations mails domains access #1040
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Tooltip } from '@openfun/cunningham-react';
|
import { Tooltip } from '@openfun/cunningham-react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
import { Box } from '@/components';
|
import { Box, Icon } from '@/components';
|
||||||
import { useCunninghamTheme } from '@/cunningham';
|
import { useCunninghamTheme } from '@/cunningham';
|
||||||
|
|
||||||
interface TagContentProps {
|
interface TagContentProps {
|
||||||
@@ -9,9 +9,10 @@ interface TagContentProps {
|
|||||||
showTooltip?: boolean;
|
showTooltip?: boolean;
|
||||||
tooltipType?: 'domain' | 'mail';
|
tooltipType?: 'domain' | 'mail';
|
||||||
placement?: 'top' | 'bottom';
|
placement?: 'top' | 'bottom';
|
||||||
|
showIcon?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TagContent = ({ status }: TagContentProps) => {
|
const TagContent = ({ status, showIcon }: TagContentProps) => {
|
||||||
const { colorsTokens } = useCunninghamTheme();
|
const { colorsTokens } = useCunninghamTheme();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
@@ -33,17 +34,35 @@ const TagContent = ({ status }: TagContentProps) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Box
|
<Box
|
||||||
|
$display="flex"
|
||||||
|
$direction="row"
|
||||||
|
$gap="4px"
|
||||||
$background={backgroundColor[status]}
|
$background={backgroundColor[status]}
|
||||||
$color={textColor[status]}
|
$color={textColor[status]}
|
||||||
$radius="4px"
|
$radius="4px"
|
||||||
$css={`
|
$css={`
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
cursor: default;
|
|
||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
`}
|
`}
|
||||||
>
|
>
|
||||||
{t(status).replace('_', ' ')}
|
{t(status).replace('_', ' ')}
|
||||||
|
{showIcon &&
|
||||||
|
(status === 'enabled' ? (
|
||||||
|
<Icon
|
||||||
|
$size="small"
|
||||||
|
$weight="bold"
|
||||||
|
iconName="check"
|
||||||
|
$color="inherit"
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<Icon
|
||||||
|
$size="small"
|
||||||
|
$weight="bold"
|
||||||
|
iconName="arrow_forward"
|
||||||
|
$color="inherit"
|
||||||
|
/>
|
||||||
|
))}
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -80,10 +99,10 @@ export const Tag = ({ ...props }: TagContentProps) => {
|
|||||||
return props.showTooltip ? (
|
return props.showTooltip ? (
|
||||||
<Tooltip content={tooltipContent} placement={props.placement || 'top'}>
|
<Tooltip content={tooltipContent} placement={props.placement || 'top'}>
|
||||||
<Box>
|
<Box>
|
||||||
<TagContent status={props.status} />
|
<TagContent status={props.status} showIcon={props.showIcon} />
|
||||||
</Box>
|
</Box>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
) : (
|
) : (
|
||||||
<TagContent status={props.status} />
|
<TagContent status={props.status} showIcon={props.showIcon} />
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -89,15 +89,14 @@ export const MailDomainView = ({
|
|||||||
{mailDomain.name}
|
{mailDomain.name}
|
||||||
</Text>
|
</Text>
|
||||||
|
|
||||||
{(mailDomain?.status === 'pending' ||
|
{mailDomain?.status && (
|
||||||
mailDomain?.status === 'action_required' ||
|
|
||||||
mailDomain?.status) && (
|
|
||||||
<button
|
<button
|
||||||
data-testid="actions_required"
|
data-testid="actions_required"
|
||||||
onClick={handleShowModal}
|
onClick={handleShowModal}
|
||||||
style={{
|
style={{
|
||||||
backgroundColor: 'transparent',
|
backgroundColor: 'transparent',
|
||||||
border: 'none',
|
border: 'none',
|
||||||
|
cursor: 'pointer',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Tag
|
<Tag
|
||||||
@@ -105,6 +104,7 @@ export const MailDomainView = ({
|
|||||||
status={mailDomain.status}
|
status={mailDomain.status}
|
||||||
tooltipType="domain"
|
tooltipType="domain"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
|
showIcon={true}
|
||||||
></Tag>
|
></Tag>
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -47,18 +47,27 @@ export const ModalRequiredActionDomain = ({
|
|||||||
|
|
||||||
const steps = [
|
const steps = [
|
||||||
{
|
{
|
||||||
title: t('Required actions on domain'),
|
title:
|
||||||
|
mailDomain.status !== 'enabled'
|
||||||
|
? t('Required actions on domain')
|
||||||
|
: t('Domain configuration'),
|
||||||
content: (
|
content: (
|
||||||
<Text>
|
<Text>
|
||||||
<p>
|
{mailDomain.status !== 'enabled' ? (
|
||||||
{t(
|
<>
|
||||||
'The domain is currently in action required status. Please take the necessary actions to resolve those following issues.',
|
<p>
|
||||||
)}
|
{t(
|
||||||
</p>
|
'The domain is currently in action required status. Please take the necessary actions to resolve those following issues.',
|
||||||
<h3>{t('Actions required detail')}</h3>
|
)}
|
||||||
<pre>
|
</p>
|
||||||
{mailDomain.action_required_details &&
|
<h3>{t('Actions required detail')}</h3>
|
||||||
Object.entries(mailDomain.action_required_details).map(
|
</>
|
||||||
|
) : (
|
||||||
|
<p>{t('The domain is currently enabled.')}</p>
|
||||||
|
)}
|
||||||
|
{mailDomain.action_required_details && (
|
||||||
|
<pre>
|
||||||
|
{Object.entries(mailDomain.action_required_details).map(
|
||||||
([check, value], index) => (
|
([check, value], index) => (
|
||||||
<ul key={`action-required-list-${index}`}>
|
<ul key={`action-required-list-${index}`}>
|
||||||
<li key={`action-required-${index}`}>
|
<li key={`action-required-${index}`}>
|
||||||
@@ -67,10 +76,15 @@ export const ModalRequiredActionDomain = ({
|
|||||||
</ul>
|
</ul>
|
||||||
),
|
),
|
||||||
)}
|
)}
|
||||||
</pre>
|
</pre>
|
||||||
|
)}
|
||||||
{mailDomain.expected_config && (
|
{mailDomain.expected_config && (
|
||||||
<Box $margin={{ bottom: 'medium' }}>
|
<Box $margin={{ bottom: 'medium' }}>
|
||||||
<h3>{t('DNS Configuration Required:')}</h3>
|
<h3>
|
||||||
|
{mailDomain.status === 'action_required'
|
||||||
|
? t('DNS Configuration Required:')
|
||||||
|
: t('DNS Configuration:')}
|
||||||
|
</h3>
|
||||||
<pre>
|
<pre>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
Reference in New Issue
Block a user