Socket
Socket
Sign inDemoInstall

@altiore/form

Package Overview
Dependencies
Maintainers
1
Versions
187
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@altiore/form - npm Package Compare versions

Comparing version 0.3.8 to 0.3.9

dist/@common/array-field.child/array-field.child.d.ts

30

dist/@common/types.d.ts

@@ -1,2 +0,2 @@

/// <reference types="react" />
import { MouseEventHandler } from 'react';
export interface ListItem {

@@ -8,21 +8,23 @@ key: string;

}
export interface ListInterface {
export declare type ListInterface<Item extends Record<string, any> = Record<string, any>> = {
map: (arg: (el: ListItem, index: number) => JSX.Element) => JSX.Element[];
add: (index?: any) => void;
add: MouseEventHandler | (() => void) | ((item: Item, index?: number) => void);
remove: (index: number) => void;
}
export declare type RegisterField = (fieldName: string, isArray?: boolean, prevList?: any) => void;
};
export declare type RegisterField = (fieldName: string, isArray: boolean, prevList?: number[]) => void;
export declare type SetErrors = (name: string, errors: string[] | undefined) => void;
export interface FormContextState {
defaultValues: Record<string, any>;
errors: Record<string, string[]>;
fields: Record<string, {
registered: boolean;
list?: ListInterface;
}>;
export declare type FieldMeta<Item extends Record<string, any> = Record<string, any>> = {
name: string;
defaultValue?: any;
errors: string[];
list?: ListInterface<Item>;
setErrors: (errors: string[]) => void;
};
export declare type FormContextState = {
fields: Record<string, FieldMeta<any>>;
registerField: RegisterField;
setErrors: SetErrors;
}
};
export interface ArrayFieldState {
name: string;
}
export declare type ValidateFuncType = (value: string | number) => string | undefined;

@@ -1,23 +0,8 @@

import React from 'react';
/// <reference types="react" />
import { ValidateFuncType } from '../@common/types';
import { InternalFieldProps } from './validated-field';
export declare type FieldProps = {
name: string;
validators?: Array<(v: any) => string | undefined>;
validators?: Array<ValidateFuncType>;
};
declare type InternalFieldProps = {
defaultValue: any;
errors: string[];
inputRef: any;
};
/**
* Компонент принимает пользовательский компонент и возвращает {name, validators, ...props}
*
* @component
*
* @typedef CreateField
* @prop {React.ReactNode} [component] Пользовательский компонент
*
* @example
* return (any)
*/
export declare const createField: <T extends FieldProps>(component: React.FC<T & InternalFieldProps>) => (props: T) => JSX.Element;
export {};
export declare const createField: <T extends FieldProps>(component: (props: Omit<T, "validators"> & InternalFieldProps) => JSX.Element) => (props: T) => JSX.Element;

@@ -1,12 +0,1 @@

var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __rest = (this && this.__rest) || function (s, e) {

@@ -24,26 +13,17 @@ var t = {};

import React from 'react';
import { FormContext } from '../@common/form-context';
import FieldComponentInsideForm from './field-component-inside-form';
import FieldComponentOutsideForm from './field-component-outside-form';
/**
* Компонент принимает пользовательский компонент и возвращает {name, validators, ...props}
*
* @component
*
* @typedef CreateField
* @prop {React.ReactNode} [component] Пользовательский компонент
*
* @example
* return (any)
*/
import ArrayFieldChild from '../@common/array-field.child';
import FormChild from '../@common/form.child';
import ValidatedField from './validated-field';
export var createField = function (component) {
return function (_a) {
var name = _a.name, props = __rest(_a, ["name"]);
return (React.createElement(FormContext.Consumer, null, function (value) {
if (!value) {
return (React.createElement(FieldComponentOutsideForm, __assign({}, __assign({ component: component, name: name }, props))));
}
return (React.createElement(FieldComponentInsideForm, __assign({}, __assign({ component: component, form: value, name: name }, props))));
}));
};
return React.memo(function (_a) {
var name = _a.name, validators = _a.validators, props = __rest(_a, ["name", "validators"]);
return (React.createElement(FormChild, { component: ArrayFieldChild, componentProps: {
component: ValidatedField,
componentProps: {
component: component,
componentProps: props,
validators: validators,
},
}, isArray: false, name: name }));
});
};

@@ -13,5 +13,7 @@ var __assign = (this && this.__assign) || function () {

import React, { useCallback, useRef, useState, } from 'react';
import get from 'lodash/get';
import isEqual from 'lodash/isEqual';
import set from 'lodash/set';
import { FormContext } from '../@common/form-context';
import { List } from '../create-field-array/list';
import { List } from '../create-array-field/list';
/**

@@ -38,4 +40,2 @@ * Компонент Form принимает children, defaultValues, onSubmit

var _b = useState({
defaultValues: defaultValues,
errors: {},
fields: {},

@@ -46,3 +46,8 @@ }), formState = _b[0], setFormState = _b[1];

var _a;
return (__assign(__assign({}, s), { errors: __assign(__assign({}, s.errors), (_a = {}, _a[fieldName] = errors, _a)) }));
if (isEqual(s.fields[fieldName].errors, errors)) {
return s;
}
return __assign(__assign({}, s), { fields: (_a = {},
_a[fieldName] = __assign(__assign({}, s.fields[fieldName]), { errors: errors }),
_a) });
});

@@ -53,11 +58,15 @@ }, [setFormState]);

var _a;
var _b;
return (__assign(__assign({}, s), { fields: __assign(__assign({}, s.fields), (_a = {}, _a[fieldName] = {
var defaultValue = get(defaultValues, fieldName.split('.'));
return __assign(__assign({}, s), { fields: __assign(__assign({}, s.fields), (_a = {}, _a[fieldName] = {
defaultValue: defaultValue,
errors: [],
items: isArray ? [] : undefined,
list: isArray
? new List(registerField, (_b = s.defaultValues) === null || _b === void 0 ? void 0 : _b[fieldName], fieldName, prevList)
? new List(registerField, defaultValue, fieldName, prevList)
: undefined,
registered: true,
}, _a)) }));
name: fieldName,
setErrors: setErrors.bind({}, fieldName),
}, _a)) });
});
}, [setFormState]);
}, [defaultValues, setFormState]);
var handleSubmit = useCallback(function (evt) {

@@ -75,3 +84,3 @@ var _a;

return (React.createElement("form", { onSubmit: handleSubmit, ref: formRef },
React.createElement(FormContext.Provider, { value: __assign(__assign({}, formState), { registerField: registerField, setErrors: setErrors }) }, children)));
React.createElement(FormContext.Provider, { value: __assign(__assign({}, formState), { registerField: registerField }) }, children)));
};

@@ -0,3 +1,4 @@

export * from './create-array-field';
export * from './create-field';
export * from './form';
export * from './validators';

@@ -0,3 +1,4 @@

export * from './create-array-field';
export * from './create-field';
export * from './form';
export * from './validators';

@@ -1,2 +0,2 @@

import { ValidateFuncType } from '../../@common';
import { ValidateFuncType } from '../../@common/types';
export declare const maxLength: (length: number) => ValidateFuncType;

@@ -1,2 +0,2 @@

import { ValidateFuncType } from '../../@common';
import { ValidateFuncType } from '../../@common/types';
export declare const minLength: (length: number) => ValidateFuncType;

@@ -7,3 +7,3 @@ export var minLength = function (length) {

}
if (stringedValue.length != 0 && stringedValue.length < length) {
if (stringedValue.length < length) {
return "The length of the entered value should be no more than " + length + " characters";

@@ -10,0 +10,0 @@ }

@@ -1,2 +0,2 @@

import { ValidateFuncType } from '../../@common';
import { ValidateFuncType } from '../../@common/types';
export declare const regexp: (regex: RegExp) => ValidateFuncType;
{
"name": "@altiore/form",
"version": "0.3.8",
"version": "0.3.9",
"description": "Form helper for building powerful forms",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

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