mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 02:42:59 +00:00 
			
		
		
		
	 7753ba2d37
			
		
	
	
		7753ba2d37
		
			
		
	
	
	
	
		
			
			Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: Yeuoly <admin@srmxy.cn> Co-authored-by: JzoNg <jzongcode@gmail.com> Co-authored-by: StyleZhang <jasonapring2015@outlook.com> Co-authored-by: jyong <jyong@dify.ai> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: jyong <718720800@qq.com>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { createStore } from 'zustand'
 | |
| import type { Features } from './types'
 | |
| import { TransferMethod } from '@/types/app'
 | |
| 
 | |
| export type FeaturesModal = {
 | |
|   showFeaturesModal: boolean
 | |
|   setShowFeaturesModal: (showFeaturesModal: boolean) => void
 | |
| }
 | |
| 
 | |
| export type FeaturesState = {
 | |
|   features: Features
 | |
| }
 | |
| 
 | |
| export type FeaturesAction = {
 | |
|   setFeatures: (features: Features) => void
 | |
| }
 | |
| 
 | |
| export type FeatureStoreState = FeaturesState & FeaturesAction & FeaturesModal
 | |
| 
 | |
| export type FeaturesStore = ReturnType<typeof createFeaturesStore>
 | |
| 
 | |
| export const createFeaturesStore = (initProps?: Partial<FeaturesState>) => {
 | |
|   const DEFAULT_PROPS: FeaturesState = {
 | |
|     features: {
 | |
|       opening: {
 | |
|         enabled: false,
 | |
|       },
 | |
|       suggested: {
 | |
|         enabled: false,
 | |
|       },
 | |
|       text2speech: {
 | |
|         enabled: false,
 | |
|       },
 | |
|       speech2text: {
 | |
|         enabled: false,
 | |
|       },
 | |
|       citation: {
 | |
|         enabled: false,
 | |
|       },
 | |
|       moderation: {
 | |
|         enabled: false,
 | |
|       },
 | |
|       file: {
 | |
|         image: {
 | |
|           enabled: false,
 | |
|           number_limits: 3,
 | |
|           transfer_methods: [TransferMethod.local_file, TransferMethod.remote_url],
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|   }
 | |
|   return createStore<FeatureStoreState>()(set => ({
 | |
|     ...DEFAULT_PROPS,
 | |
|     ...initProps,
 | |
|     setFeatures: features => set(() => ({ features })),
 | |
|     showFeaturesModal: false,
 | |
|     setShowFeaturesModal: showFeaturesModal => set(() => ({ showFeaturesModal })),
 | |
|   }))
 | |
| }
 |