import { useConstant } from 'common' import { createContext, PropsWithChildren, useContext } from 'react' import { proxy, useSnapshot } from 'valtio' export function createDatabaseSettingsState() { const state = proxy({ usePoolerConnection: true, setUsePoolerConnection: (value: boolean) => { state.usePoolerConnection = value }, showPoolingModeHelper: false, setShowPoolingModeHelper: (value: boolean) => { state.showPoolingModeHelper = value }, }) return state } export type DatabaseSettingsState = ReturnType export const DatabaseSettingsStateContext = createContext( createDatabaseSettingsState() ) export const DatabaseSettingsStateContextProvider = ({ children }: PropsWithChildren) => { const state = useConstant(createDatabaseSettingsState) return ( {children} ) } export function useDatabaseSettingsStateSnapshot(options?: Parameters[1]) { const state = useContext(DatabaseSettingsStateContext) return useSnapshot(state, options) }