diff --git a/web/app/(commonLayout)/plugins/Container.tsx b/web/app/(commonLayout)/plugins/Container.tsx index 3e8642c947..1c03b08d37 100644 --- a/web/app/(commonLayout)/plugins/Container.tsx +++ b/web/app/(commonLayout)/plugins/Container.tsx @@ -44,7 +44,7 @@ const Container = () => { : 'bg-background-body', )} > -
+
{ +const MarketplacePage = () => { return ( -
-
-

- Empower your AI development -

-

- Discover - - models - - , - - tools - - , - - extensions - - and - - bundles - - in Dify Marketplace -

-
- {}} /> -
- {}} /> -
-
+ + + ) } -export default Marketplace +export default MarketplacePage diff --git a/web/app/components/plugins/marketplace/list.tsx b/web/app/components/plugins/marketplace/list.tsx new file mode 100644 index 0000000000..a42e6e3edb --- /dev/null +++ b/web/app/components/plugins/marketplace/list.tsx @@ -0,0 +1,90 @@ +import Card from '@/app/components/plugins/card' +import CardMoreInfo from '@/app/components/plugins/card/card-more-info' +import { toolNotion } from '@/app/components/plugins/card/card-mock' + +const List = () => { + return ( +
+
+
Featured
+
Our top picks to get you started
+
+ + } + /> + + } + /> + + } + /> + + } + /> + + } + /> +
+
+
+
Popular
+
Explore the library and discover the incredible work of our community
+
+ + } + /> + + } + /> + + } + /> + + } + /> + + } + /> + + } + /> +
+
+
+ ) +} + +export default List diff --git a/web/app/components/plugins/marketplace/marketplace-wrapper.tsx b/web/app/components/plugins/marketplace/marketplace-wrapper.tsx new file mode 100644 index 0000000000..6c78d73c39 --- /dev/null +++ b/web/app/components/plugins/marketplace/marketplace-wrapper.tsx @@ -0,0 +1,12 @@ +'use client' + +type WrapperProps = { + children: React.ReactNode +} +const MarketplaceWrapper = ({ + children, +}: WrapperProps) => { + return children +} + +export default MarketplaceWrapper diff --git a/web/app/components/plugins/marketplace/marketplace.tsx b/web/app/components/plugins/marketplace/marketplace.tsx new file mode 100644 index 0000000000..bc40e6c245 --- /dev/null +++ b/web/app/components/plugins/marketplace/marketplace.tsx @@ -0,0 +1,41 @@ +import SearchBox from './search-box' +import PluginTypeSwitch from './plugin-type-switch' +import List from './list' + +const Marketplace = () => { + return ( +
+
+

+ Empower your AI development +

+

+ Discover + + models + + , + + tools + + , + + extensions + + and + + bundles + + in Dify Marketplace +

+
+ {}} /> +
+ {}} /> +
+ +
+ ) +} + +export default Marketplace diff --git a/web/app/components/plugins/marketplace/plugin-type-switch.tsx b/web/app/components/plugins/marketplace/plugin-type-switch.tsx index 3793e463f7..607bd362a6 100644 --- a/web/app/components/plugins/marketplace/plugin-type-switch.tsx +++ b/web/app/components/plugins/marketplace/plugin-type-switch.tsx @@ -1,3 +1,5 @@ +'use client' + import { useState } from 'react' import { RiHammerLine, diff --git a/web/app/components/plugins/marketplace/search-box/index.tsx b/web/app/components/plugins/marketplace/search-box/index.tsx index 1addb4cdd5..627f387aef 100644 --- a/web/app/components/plugins/marketplace/search-box/index.tsx +++ b/web/app/components/plugins/marketplace/search-box/index.tsx @@ -1,4 +1,5 @@ 'use client' + import { useCallback, useState, diff --git a/web/app/components/plugins/marketplace/search-box/tags-filter.tsx b/web/app/components/plugins/marketplace/search-box/tags-filter.tsx index 1615478af6..83c1ba2872 100644 --- a/web/app/components/plugins/marketplace/search-box/tags-filter.tsx +++ b/web/app/components/plugins/marketplace/search-box/tags-filter.tsx @@ -5,7 +5,6 @@ import { RiArrowDownSLine, RiCloseCircleFill, RiFilter3Line, - RiSearchLine, } from '@remixicon/react' import { PortalToFollowElem, @@ -14,6 +13,7 @@ import { } from '@/app/components/base/portal-to-follow-elem' import Checkbox from '@/app/components/base/checkbox' import cn from '@/utils/classnames' +import Input from '@/app/components/base/input' type TagsFilterProps = { value: string[] @@ -98,14 +98,12 @@ const TagsFilter = ({
-
- - setSearchText(e.target.value)} - /> -
+ setSearchText(e.target.value)} + placeholder='Search tags' + />
{