dify/web/features/agent-v2/agent-composer/store.ts
Stephen Zhou a84c2d36a3
style: format with vp fmt (#38803)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-12 15:57:46 +00:00

51 lines
1.6 KiB
TypeScript

import type { AgentSoulConfig } from '@dify/contracts/api/console/agent/types.gen'
import type { AgentSoulConfigFormState } from './form-state'
import isEqual from 'fast-deep-equal'
import { atom } from 'jotai'
import { defaultAgentSoulConfigFormState } from './form-state'
export const agentComposerOriginalConfigAtom = atom<AgentSoulConfig | undefined>(undefined)
export const agentComposerOriginalDraftAtom = atom<AgentSoulConfigFormState | undefined>(
defaultAgentSoulConfigFormState,
)
export const agentComposerPublishedDraftAtom = atom<AgentSoulConfigFormState | undefined>(
defaultAgentSoulConfigFormState,
)
export const agentComposerDraftAtom = atom<AgentSoulConfigFormState>(
defaultAgentSoulConfigFormState,
)
export const rebaseAgentComposerDraftAtom = atom(
null,
(
_get,
set,
{
draft,
originalConfig,
}: {
draft: AgentSoulConfigFormState
originalConfig?: AgentSoulConfig
},
) => {
set(agentComposerOriginalConfigAtom, originalConfig)
set(agentComposerDraftAtom, draft)
set(agentComposerOriginalDraftAtom, draft)
set(agentComposerPublishedDraftAtom, draft)
},
)
export const isAgentComposerDirtyAtom = atom((get) => {
const originalDraft = get(agentComposerOriginalDraftAtom)
const draft = get(agentComposerDraftAtom)
return !isEqual(draft, originalDraft ?? defaultAgentSoulConfigFormState)
})
export const hasAgentComposerUnpublishedChangesAtom = atom((get) => {
const publishedDraft = get(agentComposerPublishedDraftAtom)
const draft = get(agentComposerDraftAtom)
return !isEqual(draft, publishedDraft ?? defaultAgentSoulConfigFormState)
})