chore: fill repo url

This commit is contained in:
Joel 2024-11-06 18:13:06 +08:00
parent a7e320dc25
commit e66ba6ffdd
2 changed files with 6 additions and 3 deletions

View File

@ -2,7 +2,6 @@
import type { FC } from 'react' import type { FC } from 'react'
import React, { useCallback, useEffect, useState } from 'react' import React, { useCallback, useEffect, useState } from 'react'
import copy from 'copy-to-clipboard' import copy from 'copy-to-clipboard'
import { import {
RiClipboardLine, RiClipboardLine,
} from '@remixicon/react' } from '@remixicon/react'
@ -11,16 +10,19 @@ import { ClipboardCheck } from '../../base/icons/src/vender/line/files'
import Tooltip from '../../base/tooltip' import Tooltip from '../../base/tooltip'
import cn from '@/utils/classnames' import cn from '@/utils/classnames'
import ActionButton from '@/app/components/base/action-button' import ActionButton from '@/app/components/base/action-button'
type Props = { type Props = {
label: string label: string
labelWidthClassName?: string labelWidthClassName?: string
value: string value: string
valueMaxWidthClassName?: string
} }
const KeyValueItem: FC<Props> = ({ const KeyValueItem: FC<Props> = ({
label, label,
labelWidthClassName = 'w-10', labelWidthClassName = 'w-10',
value, value,
valueMaxWidthClassName = 'max-w-[162px]',
}) => { }) => {
const { t } = useTranslation() const { t } = useTranslation()
const [isCopied, setIsCopied] = useState(false) const [isCopied, setIsCopied] = useState(false)
@ -46,7 +48,7 @@ const KeyValueItem: FC<Props> = ({
<div className='flex items-center gap-1'> <div className='flex items-center gap-1'>
<span className={cn('flex flex-col justify-center items-start text-text-tertiary system-xs-medium', labelWidthClassName)}>{label}</span> <span className={cn('flex flex-col justify-center items-start text-text-tertiary system-xs-medium', labelWidthClassName)}>{label}</span>
<div className='flex justify-center items-center gap-0.5'> <div className='flex justify-center items-center gap-0.5'>
<span className='max-w-[162px] truncate system-xs-medium text-text-secondary'> <span className={cn(valueMaxWidthClassName, ' truncate system-xs-medium text-text-secondary')}>
{value} {value}
</span> </span>
<Tooltip popupContent={t(`common.operation.${isCopied ? 'copied' : 'copy'}`)} position='top'> <Tooltip popupContent={t(`common.operation.${isCopied ? 'copied' : 'copy'}`)} position='top'>

View File

@ -4,6 +4,7 @@ import React from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import KeyValueItem from '../base/key-value-item' import KeyValueItem from '../base/key-value-item'
import Modal from '../../base/modal' import Modal from '../../base/modal'
import { convertRepoToUrl } from '../install-plugin/utils'
const i18nPrefix = 'plugin.pluginInfoModal' const i18nPrefix = 'plugin.pluginInfoModal'
type Props = { type Props = {
@ -30,7 +31,7 @@ const PlugInfo: FC<Props> = ({
closable closable
> >
<div className='mt-5 space-y-3'> <div className='mt-5 space-y-3'>
{repository && <KeyValueItem label={t(`${i18nPrefix}.repository`)} labelWidthClassName={labelWidthClassName} value={repository} />} {repository && <KeyValueItem label={t(`${i18nPrefix}.repository`)} labelWidthClassName={labelWidthClassName} value={`${convertRepoToUrl(repository)}`} valueMaxWidthClassName='max-w-[190px]' />}
{release && <KeyValueItem label={t(`${i18nPrefix}.release`)} labelWidthClassName={labelWidthClassName} value={release} />} {release && <KeyValueItem label={t(`${i18nPrefix}.release`)} labelWidthClassName={labelWidthClassName} value={release} />}
{packageName && <KeyValueItem label={t(`${i18nPrefix}.packageName`)} labelWidthClassName={labelWidthClassName} value={packageName} />} {packageName && <KeyValueItem label={t(`${i18nPrefix}.packageName`)} labelWidthClassName={labelWidthClassName} value={packageName} />}
</div> </div>