mirror of
https://github.com/langgenius/dify.git
synced 2026-07-31 09:19:29 +08:00
Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: yyh <yuanyouhuilyz@gmail.com> Co-authored-by: Yansong Zhang <916125788@qq.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
25 lines
1.2 KiB
TypeScript
25 lines
1.2 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 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)
|
|
})
|