diff --git a/packages/console/src/components/Status/index.module.scss b/packages/console/src/components/Status/index.module.scss index 0303a4855..fa08f6f29 100644 --- a/packages/console/src/components/Status/index.module.scss +++ b/packages/console/src/components/Status/index.module.scss @@ -3,16 +3,29 @@ .status { display: flex; align-items: center; -} + font: var(--font-label-medium); -.icon { - width: 10px; - height: 10px; - border-radius: 50%; - margin-right: _.unit(2); - background: var(--color-success-70); -} + .icon { + width: 10px; + height: 10px; + border-radius: 50%; + margin-right: _.unit(2); + background: var(--color-success-70); + } -.status.offline .icon { - background: var(--color-neutral-70); + &.disabled { + .icon { + background: var(--color-neutral-70); + } + } + + &.outlined { + padding: _.unit(0.5) _.unit(2); + border-radius: 10px; + background: var(--color-success-99); + + &.disabled { + background: var(--color-neutral-variant-95); + } + } } diff --git a/packages/console/src/components/Status/index.tsx b/packages/console/src/components/Status/index.tsx index dce25768a..0cf5a0dc0 100644 --- a/packages/console/src/components/Status/index.tsx +++ b/packages/console/src/components/Status/index.tsx @@ -6,10 +6,11 @@ import * as styles from './index.module.scss'; type Props = { status: 'enabled' | 'disabled'; children: ReactNode; + varient?: 'plain' | 'outlined'; }; -const Status = ({ status, children }: Props) => ( -
+const Status = ({ status, children, varient = 'plain' }: Props) => ( +
{children}
diff --git a/packages/console/src/pages/ConnectorDetails/components/ConnectorTypeName/index.module.scss b/packages/console/src/pages/ConnectorDetails/components/ConnectorTypeName/index.module.scss new file mode 100644 index 000000000..789047ee3 --- /dev/null +++ b/packages/console/src/pages/ConnectorDetails/components/ConnectorTypeName/index.module.scss @@ -0,0 +1,9 @@ +@use '@/scss/underscore' as _; + +.connectorType { + background: var(--color-surface-variant); + border-radius: 10px; + padding: _.unit(0.5) _.unit(2); + color: var(--color-text); + font: var(--font-label-medium); +} diff --git a/packages/console/src/pages/ConnectorDetails/components/ConnectorTypeName/index.tsx b/packages/console/src/pages/ConnectorDetails/components/ConnectorTypeName/index.tsx new file mode 100644 index 000000000..edb2469f3 --- /dev/null +++ b/packages/console/src/pages/ConnectorDetails/components/ConnectorTypeName/index.tsx @@ -0,0 +1,23 @@ +import { ConnectorType } from '@logto/schemas'; +import React from 'react'; +import { useTranslation } from 'react-i18next'; + +import * as styles from './index.module.scss'; + +type Props = { + type: ConnectorType; +}; + +const ConnectorTypeName = ({ type }: Props) => { + const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); + + return ( +
+ {type === ConnectorType.Email && t('connector_details.type_email')} + {type === ConnectorType.SMS && t('connector_details.type_sms')} + {type === ConnectorType.Social && t('connector_details.type_social')} +
+ ); +}; + +export default ConnectorTypeName; diff --git a/packages/console/src/pages/ConnectorDetails/index.module.scss b/packages/console/src/pages/ConnectorDetails/index.module.scss index 74e01eae5..c5a5c2f16 100644 --- a/packages/console/src/pages/ConnectorDetails/index.module.scss +++ b/packages/console/src/pages/ConnectorDetails/index.module.scss @@ -59,6 +59,11 @@ font: var(--font-subhead-2); color: var(--color-caption); } + + .verticalBar { + @include _.vertical-bar; + height: 12px; + } } } diff --git a/packages/console/src/pages/ConnectorDetails/index.tsx b/packages/console/src/pages/ConnectorDetails/index.tsx index c5971c66e..c476f5634 100644 --- a/packages/console/src/pages/ConnectorDetails/index.tsx +++ b/packages/console/src/pages/ConnectorDetails/index.tsx @@ -26,6 +26,7 @@ import * as detailsStyles from '@/scss/details.module.scss'; import CreateForm from '../Connectors/components/CreateForm'; import ConnectorTabs from './components/ConnectorTabs'; +import ConnectorTypeName from './components/ConnectorTypeName'; import SenderTester from './components/SenderTester'; import * as styles from './index.module.scss'; @@ -121,14 +122,17 @@ const ConnectorDetails = () => {
-
{data.id}
- + +
+ {t('connectors.connector_status', { context: data.enabled ? 'enabled' : 'disabled', })} +
+
{data.id}
diff --git a/packages/phrases/src/locales/en.ts b/packages/phrases/src/locales/en.ts index 69e60762a..222a1de34 100644 --- a/packages/phrases/src/locales/en.ts +++ b/packages/phrases/src/locales/en.ts @@ -278,6 +278,9 @@ const translation = { more_options: 'MORE OPTIONS', connector_deleted: 'The connector has been deleted.', not_set: '(Not set)', + type_email: 'Email connector', + type_sms: 'SMS connector', + type_social: 'Social connector', }, get_started: { progress: 'Get started guide: {{completed}}/{{total}}', diff --git a/packages/phrases/src/locales/zh-cn.ts b/packages/phrases/src/locales/zh-cn.ts index a8bab92b4..5f24320cc 100644 --- a/packages/phrases/src/locales/zh-cn.ts +++ b/packages/phrases/src/locales/zh-cn.ts @@ -276,6 +276,9 @@ const translation = { more_options: '更多选项', connector_deleted: '成功删除连接器。', not_set: '(未设置)', + type_email: '邮件连接器', + type_sms: '短信连接器', + type_social: '社交连接器', }, get_started: { progress: '开始使用: {{completed}}/{{total}}',