mirror of
https://github.com/langgenius/dify.git
synced 2026-05-06 02:18:08 +08:00
merge feat/plugins
This commit is contained in:
@ -31,8 +31,10 @@ import ModelLoadBalancingModal from '@/app/components/header/account-setting/mod
|
||||
import OpeningSettingModal from '@/app/components/base/features/new-feature-panel/conversation-opener/modal'
|
||||
import type { OpeningStatement } from '@/app/components/base/features/types'
|
||||
import type { InputVar } from '@/app/components/workflow/types'
|
||||
import type { UpdatePluginPayload } from '@/app/components/plugins/types'
|
||||
import UpdatePlugin from '@/app/components/plugins/update-plugin'
|
||||
|
||||
export interface ModalState<T> {
|
||||
export type ModalState<T> = {
|
||||
payload: T
|
||||
onCancelCallback?: () => void
|
||||
onSaveCallback?: (newPayload: T) => void
|
||||
@ -43,7 +45,7 @@ export interface ModalState<T> {
|
||||
datasetBindings?: { id: string; name: string }[]
|
||||
}
|
||||
|
||||
export interface ModelModalType {
|
||||
export type ModelModalType = {
|
||||
currentProvider: ModelProvider
|
||||
currentConfigurationMethod: ConfigurationMethodEnum
|
||||
currentCustomConfigurationModelFixedFields?: CustomConfigurationModelFixedFields
|
||||
@ -52,7 +54,8 @@ export type LoadBalancingEntryModalType = ModelModalType & {
|
||||
entry?: ModelLoadBalancingConfigEntry
|
||||
index?: number
|
||||
}
|
||||
export interface ModalContextState {
|
||||
|
||||
export type ModalContextState = {
|
||||
setShowAccountSettingModal: Dispatch<SetStateAction<ModalState<string> | null>>
|
||||
setShowApiBasedExtensionModal: Dispatch<SetStateAction<ModalState<ApiBasedExtension> | null>>
|
||||
setShowModerationSettingModal: Dispatch<SetStateAction<ModalState<ModerationConfig> | null>>
|
||||
@ -68,6 +71,7 @@ export interface ModalContextState {
|
||||
workflowVariables?: InputVar[]
|
||||
onAutoAddPromptVariable?: (variable: PromptVariable[]) => void
|
||||
}> | null>>
|
||||
setShowUpdatePluginModal: Dispatch<SetStateAction<ModalState<UpdatePluginPayload> | null>>
|
||||
}
|
||||
const ModalContext = createContext<ModalContextState>({
|
||||
setShowAccountSettingModal: () => { },
|
||||
@ -81,6 +85,7 @@ const ModalContext = createContext<ModalContextState>({
|
||||
setShowModelLoadBalancingModal: () => { },
|
||||
setShowModelLoadBalancingEntryModal: () => { },
|
||||
setShowOpeningModal: () => { },
|
||||
setShowUpdatePluginModal: () => { },
|
||||
})
|
||||
|
||||
export const useModalContext = () => useContext(ModalContext)
|
||||
@ -90,7 +95,7 @@ export const useModalContext = () => useContext(ModalContext)
|
||||
export const useModalContextSelector = <T,>(selector: (state: ModalContextState) => T): T =>
|
||||
useContextSelector(ModalContext, selector)
|
||||
|
||||
interface ModalContextProviderProps {
|
||||
type ModalContextProviderProps = {
|
||||
children: React.ReactNode
|
||||
}
|
||||
export const ModalContextProvider = ({
|
||||
@ -109,6 +114,8 @@ export const ModalContextProvider = ({
|
||||
workflowVariables?: InputVar[]
|
||||
onAutoAddPromptVariable?: (variable: PromptVariable[]) => void
|
||||
}> | null>(null)
|
||||
const [showUpdatePluginModal, setShowUpdatePluginModal] = useState<ModalState<UpdatePluginPayload> | null>(null)
|
||||
|
||||
const searchParams = useSearchParams()
|
||||
const router = useRouter()
|
||||
const [showPricingModal, setShowPricingModal] = useState(searchParams.get('show-pricing') === '1')
|
||||
@ -228,6 +235,7 @@ export const ModalContextProvider = ({
|
||||
setShowModelLoadBalancingModal,
|
||||
setShowModelLoadBalancingEntryModal,
|
||||
setShowOpeningModal,
|
||||
setShowUpdatePluginModal,
|
||||
}}>
|
||||
<>
|
||||
{children}
|
||||
@ -338,6 +346,22 @@ export const ModalContextProvider = ({
|
||||
onAutoAddPromptVariable={showOpeningModal.payload.onAutoAddPromptVariable}
|
||||
/>
|
||||
)}
|
||||
|
||||
{
|
||||
!!showUpdatePluginModal && (
|
||||
<UpdatePlugin
|
||||
{...showUpdatePluginModal.payload}
|
||||
onCancel={() => {
|
||||
setShowUpdatePluginModal(null)
|
||||
showUpdatePluginModal.onCancelCallback?.()
|
||||
}}
|
||||
onSave={() => {
|
||||
setShowUpdatePluginModal(null)
|
||||
showUpdatePluginModal.onSaveCallback?.({} as any)
|
||||
}}
|
||||
/>
|
||||
)
|
||||
}
|
||||
</>
|
||||
</ModalContext.Provider>
|
||||
)
|
||||
|
||||
15
web/context/query-client.tsx
Normal file
15
web/context/query-client.tsx
Normal file
@ -0,0 +1,15 @@
|
||||
'use client'
|
||||
|
||||
import type { FC, PropsWithChildren } from 'react'
|
||||
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
||||
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
|
||||
|
||||
const client = new QueryClient()
|
||||
|
||||
export const TanstackQueryIniter: FC<PropsWithChildren> = (props) => {
|
||||
const { children } = props
|
||||
return <QueryClientProvider client={client}>
|
||||
{children}
|
||||
<ReactQueryDevtools initialIsOpen={false} />
|
||||
</QueryClientProvider>
|
||||
}
|
||||
Reference in New Issue
Block a user