mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-15 20:25:52 +08:00
mock data of list
This commit is contained in:
parent
5a8c12470c
commit
2dbad07433
@ -1,6 +1,7 @@
|
|||||||
'use client'
|
'use client'
|
||||||
import React from 'react'
|
import { useMemo } from 'react'
|
||||||
import NewMCPCard from './create-card'
|
import NewMCPCard from './create-card'
|
||||||
|
import { useAllMCPTools, useInvalidateAllMCPTools } from '@/service/use-tools'
|
||||||
import cn from '@/utils/classnames'
|
import cn from '@/utils/classnames'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
@ -10,9 +11,16 @@ type Props = {
|
|||||||
const MCPList = ({
|
const MCPList = ({
|
||||||
searchText,
|
searchText,
|
||||||
}: Props) => {
|
}: Props) => {
|
||||||
const handleCreate = () => {
|
const { data: list = [] } = useAllMCPTools()
|
||||||
console.log('handleCreate')
|
const invalidateMCPList = useInvalidateAllMCPTools()
|
||||||
}
|
|
||||||
|
const filteredList = useMemo(() => {
|
||||||
|
return list.filter((collection) => {
|
||||||
|
if (searchText)
|
||||||
|
return Object.values(collection.name).some(value => (value as string).toLowerCase().includes(searchText.toLowerCase()))
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
}, [list, searchText])
|
||||||
|
|
||||||
function renderDefaultCard() {
|
function renderDefaultCard() {
|
||||||
const defaultCards = Array.from({ length: 36 }, (_, index) => (
|
const defaultCards = Array.from({ length: 36 }, (_, index) => (
|
||||||
@ -37,11 +45,14 @@ const MCPList = ({
|
|||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
'relative grid shrink-0 grid-cols-1 content-start gap-4 px-12 pb-4 pt-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4',
|
'relative grid shrink-0 grid-cols-1 content-start gap-4 px-12 pb-4 pt-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4',
|
||||||
'h-[calc(100vh_-_136px)] overflow-hidden',
|
!list.length && 'h-[calc(100vh_-_136px)] overflow-hidden',
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<NewMCPCard handleCreate={handleCreate} />
|
<NewMCPCard handleCreate={invalidateMCPList} />
|
||||||
{renderDefaultCard()}
|
{filteredList.map((item, index) => (
|
||||||
|
<div key={index}></div>
|
||||||
|
))}
|
||||||
|
{!list.length && renderDefaultCard()}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
35
web/app/components/tools/mcp/mock.ts
Normal file
35
web/app/components/tools/mcp/mock.ts
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
export const listData = [
|
||||||
|
{
|
||||||
|
id: 'fdjklajfkljadslf',
|
||||||
|
author: 'KVOJJJin',
|
||||||
|
name: 'GOGOGO',
|
||||||
|
icon: 'https://cloud.dify.dev/console/api/workspaces/694cc430-fa36-4458-86a0-4a98c09c4684/model-providers/langgenius/openai/openai/icon_large/en_US',
|
||||||
|
server_url: 'https://mcp.composio.dev/notion/****/abc',
|
||||||
|
type: 'mcp',
|
||||||
|
is_team_authorization: false,
|
||||||
|
tools: ['aaa', 'bbb'],
|
||||||
|
update_elapsed_time: 1742892299,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fdjklajfkljadslf',
|
||||||
|
author: 'KVOJJJin',
|
||||||
|
name: 'GOGOGO2',
|
||||||
|
icon: 'https://cloud.dify.dev/console/api/workspaces/694cc430-fa36-4458-86a0-4a98c09c4684/model-providers/langgenius/openai/openai/icon_large/en_US',
|
||||||
|
server_url: 'https://mcp.composio.dev/notion/****/abc',
|
||||||
|
type: 'mcp',
|
||||||
|
is_team_authorization: false,
|
||||||
|
tools: ['aaa', 'bbb'],
|
||||||
|
update_elapsed_time: 1742892299,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fdjklajfkljadslf',
|
||||||
|
author: 'KVOJJJin',
|
||||||
|
name: 'GOGOGO3',
|
||||||
|
icon: 'https://cloud.dify.dev/console/api/workspaces/694cc430-fa36-4458-86a0-4a98c09c4684/model-providers/langgenius/openai/openai/icon_large/en_US',
|
||||||
|
server_url: 'https://mcp.composio.dev/notion/****/abc',
|
||||||
|
type: 'mcp',
|
||||||
|
is_team_authorization: false,
|
||||||
|
tools: ['aaa', 'bbb'],
|
||||||
|
update_elapsed_time: 1742892299,
|
||||||
|
},
|
||||||
|
]
|
@ -29,6 +29,7 @@ export enum CollectionType {
|
|||||||
custom = 'api',
|
custom = 'api',
|
||||||
model = 'model',
|
model = 'model',
|
||||||
workflow = 'workflow',
|
workflow = 'workflow',
|
||||||
|
mcp = 'mcp',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Emoji = {
|
export type Emoji = {
|
||||||
@ -168,3 +169,15 @@ export type WorkflowToolProviderResponse = {
|
|||||||
}
|
}
|
||||||
privacy_policy: string
|
privacy_policy: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type MCPProvider = {
|
||||||
|
id: string
|
||||||
|
author: string
|
||||||
|
name: string
|
||||||
|
icon: string | Emoji
|
||||||
|
server_url: string
|
||||||
|
type: CollectionType
|
||||||
|
is_team_authorization: boolean
|
||||||
|
tools: string[]
|
||||||
|
update_elapsed_time: number
|
||||||
|
}
|
||||||
|
@ -4,6 +4,7 @@ import type {
|
|||||||
Tool,
|
Tool,
|
||||||
} from '@/app/components/tools/types'
|
} from '@/app/components/tools/types'
|
||||||
import type { ToolWithProvider } from '@/app/components/workflow/types'
|
import type { ToolWithProvider } from '@/app/components/workflow/types'
|
||||||
|
import type { MCPProvider } from '@/app/components/tools/types'
|
||||||
import { useInvalid } from './use-base'
|
import { useInvalid } from './use-base'
|
||||||
import {
|
import {
|
||||||
useMutation,
|
useMutation,
|
||||||
@ -11,6 +12,8 @@ import {
|
|||||||
useQueryClient,
|
useQueryClient,
|
||||||
} from '@tanstack/react-query'
|
} from '@tanstack/react-query'
|
||||||
|
|
||||||
|
import { listData } from '@/app/components/tools/mcp/mock'
|
||||||
|
|
||||||
const NAME_SPACE = 'tools'
|
const NAME_SPACE = 'tools'
|
||||||
|
|
||||||
const useAllToolProvidersKey = [NAME_SPACE, 'allToolProviders']
|
const useAllToolProvidersKey = [NAME_SPACE, 'allToolProviders']
|
||||||
@ -61,6 +64,21 @@ export const useInvalidateAllWorkflowTools = () => {
|
|||||||
return useInvalid(useAllWorkflowToolsKey)
|
return useInvalid(useAllWorkflowToolsKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const useAllMCPToolsKey = [NAME_SPACE, 'MCPTools']
|
||||||
|
export const useAllMCPTools = () => {
|
||||||
|
return useQuery<MCPProvider[]>({
|
||||||
|
queryKey: useAllMCPToolsKey,
|
||||||
|
// queryFn: () => get<MCPProvider[]>('/workspaces/current/tools/mcp'),
|
||||||
|
queryFn: () => {
|
||||||
|
return listData as unknown as MCPProvider[]
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export const useInvalidateAllMCPTools = () => {
|
||||||
|
return useInvalid(useAllMCPToolsKey)
|
||||||
|
}
|
||||||
|
|
||||||
export const useBuiltinProviderInfo = (providerName: string) => {
|
export const useBuiltinProviderInfo = (providerName: string) => {
|
||||||
return useQuery({
|
return useQuery({
|
||||||
queryKey: [NAME_SPACE, 'builtin-provider-info', providerName],
|
queryKey: [NAME_SPACE, 'builtin-provider-info', providerName],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user