Socket
Socket
Sign inDemoInstall

formula-one

Package Overview
Dependencies
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

formula-one - npm Package Compare versions

Comparing version 0.3.1 to 0.4.0

4

CHANGELOG.md
# Changelog
### v0.4.0
- Implement all of the feedback strategies.
### v0.3.1

@@ -4,0 +8,0 @@

35

dist/Form.js

@@ -90,2 +90,5 @@ "use strict";

// FEATURE(zach): Change these to be mix-and-matchable (i.e. OnSubmit & OnChange, OnSuccess | OnTouch)
function getShouldShowError(strategy) {

@@ -98,10 +101,24 @@ switch (strategy) {

case "OnFirstTouch":
return function (meta) {
return function (_metaForm, meta) {
return meta.touched;
};
case "OnFirstChange":
return function (meta) {
return function (_metaForm, meta) {
return meta.changed;
};
case "OnFirstSuccess":
return function (_metaForm, meta) {
return meta.succeeded;
};
case "OnFirstSuccessOrFirstTouch":
return function (_metaForm, meta) {
return meta.succeeded || meta.touched;
};
case "OnSubmit":
return function (metaForm) {
return metaForm.submitted;
};
default:
// eslint-disable-next-line no-unused-expressions
strategy;
throw new Error("Unimplemented feedback strategy: " + strategy);

@@ -193,2 +210,6 @@ }

var metaForm = {
pristine: this.state.pristine,
submitted: this.state.submitted
};

@@ -198,7 +219,5 @@ return React.createElement(

{
value: {
shouldShowError: getShouldShowError(this.props.feedbackStrategy),
pristine: this.state.pristine,
submitted: this.state.submitted
}
value: _extends({
shouldShowError: getShouldShowError(this.props.feedbackStrategy).bind(null, metaForm)
}, metaForm)
},

@@ -213,3 +232,3 @@ this.props.children({

changed: (0, _formState2.getExtras)(formState).meta.changed,
shouldShowErrors: getShouldShowError(this.props.feedbackStrategy)((0, _formState2.getExtras)(formState).meta),
shouldShowErrors: getShouldShowError(this.props.feedbackStrategy)(metaForm, (0, _formState2.getExtras)(formState).meta),
unfilteredErrors: (0, _formState2.flatRootErrors)(formState),

@@ -216,0 +235,0 @@ asyncValidationInFlight: false, // no validations on Form

{
"name": "formula-one",
"version": "0.3.1",
"version": "0.4.0",
"description": "Strongly-typed React form state management",

@@ -15,3 +15,3 @@ "author": "Zach Gotsch",

"build": "babel -d dist/ src/",
"prepublishOnly": "npm run-script build",
"prepublishOnly": "yarn run flow && yarn run jest && yarn run build",
"test": "jest"

@@ -18,0 +18,0 @@ },

@@ -7,2 +7,3 @@ // @flow strict

MetaField,
MetaForm,
OnBlur,

@@ -28,3 +29,3 @@ OnValidation,

export type FormContextPayload = {
shouldShowError: (meta: MetaField) => boolean,
shouldShowError: (metaField: MetaField) => boolean,
// These values are taken into account in shouldShowError, but are also

@@ -94,11 +95,14 @@ // available in their raw form, for convenience.

// FEATURE(zach): Change these to be mix-and-matchable (i.e. OnSubmit & OnChange, OnSuccess | OnTouch)
export type FeedbackStrategy =
| "Always"
| "OnFirstTouch"
| "OnFirstTouch" // A touch is a blur or a change
| "OnFirstChange"
| "OnFirstSuccess"
| "OnFirstSuccessOrFirstBlur"
| "OnFirstSuccessOrFirstTouch"
| "OnSubmit";
function getShouldShowError(strategy: FeedbackStrategy): MetaField => boolean {
function getShouldShowError(
strategy: FeedbackStrategy
): (MetaForm, MetaField) => boolean {
switch (strategy) {

@@ -108,6 +112,14 @@ case "Always":

case "OnFirstTouch":
return (meta: MetaField) => meta.touched;
return (_metaForm, meta: MetaField) => meta.touched;
case "OnFirstChange":
return (meta: MetaField) => meta.changed;
return (_metaForm, meta: MetaField) => meta.changed;
case "OnFirstSuccess":
return (_metaForm, meta: MetaField) => meta.succeeded;
case "OnFirstSuccessOrFirstTouch":
return (_metaForm, meta: MetaField) => meta.succeeded || meta.touched;
case "OnSubmit":
return (metaForm: MetaForm) => metaForm.submitted;
default:
// eslint-disable-next-line no-unused-expressions
(strategy: empty);
throw new Error("Unimplemented feedback strategy: " + strategy);

@@ -220,2 +232,6 @@ }

const {formState} = this.state;
const metaForm = {
pristine: this.state.pristine,
submitted: this.state.submitted,
};

@@ -225,5 +241,7 @@ return (

value={{
shouldShowError: getShouldShowError(this.props.feedbackStrategy),
pristine: this.state.pristine,
submitted: this.state.submitted,
shouldShowError: getShouldShowError(this.props.feedbackStrategy).bind(
null,
metaForm
),
...metaForm,
}}

@@ -243,2 +261,3 @@ >

shouldShowErrors: getShouldShowError(this.props.feedbackStrategy)(
metaForm,
getExtras(formState).meta

@@ -245,0 +264,0 @@ ),

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc