Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/forms / src / new-forms / strategies / ValidationStrategyContext.tsx
Size: Mime:
import { NO_OP } from 'exotic'
import { createContext } from 'react'
import { ValidationStrategy } from './typings'

/**
 * in production, use NO_OP, in dev, default to console debugs
 */
const EMPTY_VALIDATION_STRATEGY =
  process.env.NODE_ENV === 'production'
    ? Object.freeze({
        onChange: NO_OP,
        onBlur: NO_OP,
        onFocus: NO_OP,
        onSubmit: NO_OP,
      })
    : Object.freeze({
        onChange: () => console.debug('[1input]{Strategy} default onChange'),
        onBlur: () => console.debug('[1input]{Strategy} default onBlur'),
        onFocus: () => console.debug('[1input]{Strategy} default onFocus'),
        onSubmit: () => console.debug('[1input]{Strategy} default onSubmit'),
      })

export const ValidationStrategyContext = createContext<ValidationStrategy>(
  EMPTY_VALIDATION_STRATEGY as any
)
export const { Provider, Consumer } = ValidationStrategyContext