- import { createStore } from 'zustand'
 - import type { Features } from './types'
 - import { Resolution, 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: {
 -       moreLikeThis: {
 -         enabled: false,
 -       },
 -       opening: {
 -         enabled: false,
 -       },
 -       suggested: {
 -         enabled: false,
 -       },
 -       text2speech: {
 -         enabled: false,
 -       },
 -       speech2text: {
 -         enabled: false,
 -       },
 -       citation: {
 -         enabled: false,
 -       },
 -       moderation: {
 -         enabled: false,
 -       },
 -       file: {
 -         image: {
 -           enabled: false,
 -           detail: Resolution.high,
 -           number_limits: 3,
 -           transfer_methods: [TransferMethod.local_file, TransferMethod.remote_url],
 -         },
 -       },
 -       annotationReply: {
 -         enabled: false,
 -       },
 -     },
 -   }
 -   return createStore<FeatureStoreState>()(set => ({
 -     ...DEFAULT_PROPS,
 -     ...initProps,
 -     setFeatures: features => set(() => ({ features })),
 -     showFeaturesModal: false,
 -     setShowFeaturesModal: showFeaturesModal => set(() => ({ showFeaturesModal })),
 -   }))
 - }
 
 
  |