diff --git a/web/app/components/plugins/card/index.tsx b/web/app/components/plugins/card/index.tsx
index b67c68c7e4..9b00284fd4 100644
--- a/web/app/components/plugins/card/index.tsx
+++ b/web/app/components/plugins/card/index.tsx
@@ -1,7 +1,6 @@
import React from 'react'
import { RiVerifiedBadgeLine } from '@remixicon/react'
import type { Plugin } from '../types'
-import Badge from '../../base/badge'
import Icon from '../card/base/card-icon'
import CornerMark from './base/corner-mark'
import Title from './base/title'
@@ -14,7 +13,7 @@ type Props = {
className?: string
payload: Plugin
locale: Locale // The component is used in both client and server side, so we can't get the locale from both side(getLocaleOnServer and useContext)
- showVersion?: boolean
+ titleLeft?: React.ReactNode
installed?: boolean
descriptionLineRows?: number
footer?: React.ReactNode
@@ -24,7 +23,7 @@ type Props = {
const Card = ({
className,
payload,
- showVersion,
+ titleLeft,
installed,
descriptionLineRows = 2,
footer,
@@ -42,9 +41,7 @@ const Card = ({
- {
- showVersion &&
- }
+ {titleLeft} {/* This can be version badge */}
) {
-// const serverLocale = getLocaleOnServer()
-// return
-// }
diff --git a/web/app/components/plugins/install-plugin/install-from-marketplace/index.tsx b/web/app/components/plugins/install-plugin/install-from-marketplace/index.tsx
index 36e813bf68..524588132f 100644
--- a/web/app/components/plugins/install-plugin/install-from-marketplace/index.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-marketplace/index.tsx
@@ -1,11 +1,14 @@
'use client'
-import React from 'react'
+import React, { useState } from 'react'
import { useContext } from 'use-context-selector'
+import { RiInformation2Line } from '@remixicon/react'
import Card from '../../card'
import { extensionDallE, modelGPT4, toolNotion } from '../../card/card-mock'
import Modal from '@/app/components/base/modal'
import Button from '@/app/components/base/button'
+import Checkbox from '@/app/components/base/checkbox'
+import Badge, { BadgeState } from '@/app/components/base/badge/index'
import I18n from '@/context/i18n'
type InstallFromMarketplaceProps = {
@@ -17,6 +20,7 @@ const InstallFromMarketplace: React.FC = ({ onClose
// Mock a plugin list
const plugins = [toolNotion, extensionDallE, modelGPT4]
+ const [selectedPlugins, setSelectedPlugins] = useState>(new Set())
return (
= ({ onClose
- {plugins.map((plugin, index) => (
-
+ className='w-full'
+ >
+
+ }
+ {plugins.length > 1 && plugins.map((plugin, index) => (
+
+
{
+ const newSelectedPlugins = new Set(selectedPlugins)
+ if (newSelectedPlugins.has(index))
+ newSelectedPlugins.delete(index)
+ else
+ newSelectedPlugins.add(index)
+
+ setSelectedPlugins(newSelectedPlugins)
+ }}
+ />
+ {plugin.version}
+ : <>
+ {`${plugin.version} -> ${plugin.latest_version}`}
+
+
+ >
+ }
+ />
+
))}