Compare commits

..

3 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
ba1de9408d Fix prettier formatting issue in PluginCardComponent
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com>
2025-11-24 17:18:13 +00:00
copilot-swe-agent[bot]
f49f9fdff1 Add View Source menu item and remove clickable source badges
- Add "viewSource" translation key to all language files
- Add View Source menu item to plugin card dropdown (only for GitHub/marketplace plugins)
- Remove onClick handlers and ExternalLink icons from source badges
- Keep the badges themselves for visual indication of plugin source

Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com>
2025-11-24 17:15:02 +00:00
copilot-swe-agent[bot]
6b20cb7144 Initial plan 2025-11-24 17:08:09 +00:00
5 changed files with 29 additions and 19 deletions

View File

@@ -91,16 +91,8 @@ export default function PluginCardComponent({
<Badge
variant="outline"
className="text-[0.7rem] border-blue-400 text-blue-400 flex-shrink-0"
onClick={(e) => {
e.stopPropagation();
window.open(
cardVO.install_info.github_url,
'_blank',
);
}}
>
{t('plugins.fromGithub')}
<ExternalLink className="w-4 h-4" />
</Badge>
)}
{cardVO.install_source === 'local' && (
@@ -115,19 +107,8 @@ export default function PluginCardComponent({
<Badge
variant="outline"
className="text-[0.7rem] border-purple-400 text-purple-400 flex-shrink-0"
onClick={(e) => {
e.stopPropagation();
window.open(
getCloudServiceClientSync().getPluginMarketplaceURL(
cardVO.author,
cardVO.name,
),
'_blank',
);
}}
>
{t('plugins.fromMarketplace')}
<ExternalLink className="w-4 h-4" />
</Badge>
)}
</>
@@ -200,6 +181,31 @@ export default function PluginCardComponent({
<span>{t('plugins.update')}</span>
</DropdownMenuItem>
)}
{/**view source */}
{(cardVO.install_source === 'github' ||
cardVO.install_source === 'marketplace') && (
<DropdownMenuItem
className="flex flex-row items-center justify-start gap-[0.4rem] cursor-pointer"
onClick={(e) => {
e.stopPropagation();
if (cardVO.install_source === 'github') {
window.open(cardVO.install_info.github_url, '_blank');
} else if (cardVO.install_source === 'marketplace') {
window.open(
getCloudServiceClientSync().getPluginMarketplaceURL(
cardVO.author,
cardVO.name,
),
'_blank',
);
}
setDropdownOpen(false);
}}
>
<ExternalLink className="w-4 h-4" />
<span>{t('plugins.viewSource')}</span>
</DropdownMenuItem>
)}
<DropdownMenuItem
className="flex flex-row items-center justify-start gap-[0.4rem] cursor-pointer text-red-600 focus:text-red-600"
onClick={(e) => {

View File

@@ -282,6 +282,7 @@ const enUS = {
saveConfigError: 'Configuration save failed: ',
config: 'Configuration',
readme: 'Documentation',
viewSource: 'View Source',
loadingReadme: 'Loading documentation...',
noReadme: 'This plugin does not provide README documentation',
fileUpload: {

View File

@@ -283,6 +283,7 @@ const jaJP = {
saveConfigError: '設定の保存に失敗しました:',
config: '設定',
readme: 'ドキュメント',
viewSource: 'ソースを表示',
loadingReadme: 'ドキュメントを読み込み中...',
noReadme: 'このプラグインはREADMEドキュメントを提供していません',
fileUpload: {

View File

@@ -268,6 +268,7 @@ const zhHans = {
saveConfigError: '保存配置失败:',
config: '配置',
readme: '文档',
viewSource: '查看来源',
loadingReadme: '正在加载文档...',
noReadme: '该插件没有提供 README 文档',
fileUpload: {

View File

@@ -267,6 +267,7 @@ const zhHant = {
saveConfigError: '儲存配置失敗:',
config: '配置',
readme: '文件',
viewSource: '查看來源',
loadingReadme: '正在載入文件...',
noReadme: '該插件沒有提供 README 文件',
fileUpload: {