refactor: extract skill save context, stabilize mutation dependency, and deduplicate cache updates

Split SkillSaveContext and useSkillSaveManager into a separate file to
fix react-refresh/only-export-components lint error. Destructure
mutateAsync from useUpdateAppAssetFileContent for a stable callback
reference, preventing unnecessary useCallback cascade rebuilds. Extract
shared patchFileContentCache helper to unify setQueryData logic between
updateCachedContent and the collaboration event handler.
This commit is contained in:
yyh
2026-02-03 21:09:35 +08:00
parent b6b2af45a7
commit f1d099d50d
6 changed files with 42 additions and 40 deletions

View File

@ -0,0 +1,19 @@
import type { FallbackEntry, SaveFileOptions, SaveResult } from './use-skill-save-manager'
import * as React from 'react'
type SkillSaveContextValue = {
saveFile: (fileId: string, options?: SaveFileOptions) => Promise<SaveResult>
saveAllDirty: () => void
registerFallback: (fileId: string, entry: FallbackEntry) => void
unregisterFallback: (fileId: string) => void
}
export const SkillSaveContext = React.createContext<SkillSaveContextValue | null>(null)
export const useSkillSaveManager = () => {
const context = React.useContext(SkillSaveContext)
if (!context)
throw new Error('Missing SkillSaveProvider in the tree')
return context
}