@ask-ell/react 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.spec.swcrc +22 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/eslint.config.mjs +22 -0
- package/jest.config.ts +21 -0
- package/package.json +8 -8
- package/project.json +29 -0
- package/src/environment.ts +3 -0
- package/src/forms.ts +92 -0
- package/src/index.ts +4 -0
- package/src/keyboard-events.ts +19 -0
- package/src/react.sentry.configuration.ts +22 -0
- package/src/select-events.ts +5 -0
- package/tsconfig.json +13 -0
- package/tsconfig.lib.json +19 -0
- package/tsconfig.spec.json +19 -0
- package/src/environment.d.ts +0 -3
- package/src/environment.d.ts.map +0 -1
- package/src/environment.js +0 -1
- package/src/forms.d.ts +0 -32
- package/src/forms.d.ts.map +0 -1
- package/src/forms.js +0 -50
- package/src/index.d.ts +0 -5
- package/src/index.d.ts.map +0 -1
- package/src/index.js +0 -4
- package/src/keyboard-events.d.ts +0 -5
- package/src/keyboard-events.d.ts.map +0 -1
- package/src/keyboard-events.js +0 -11
- package/src/react.sentry.configuration.d.ts +0 -13
- package/src/react.sentry.configuration.d.ts.map +0 -1
- package/src/react.sentry.configuration.js +0 -14
- package/src/select-events.d.ts +0 -2
- package/src/select-events.d.ts.map +0 -1
- package/src/select-events.js +0 -3
package/.spec.swcrc
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"jsc": {
|
|
3
|
+
"target": "es2017",
|
|
4
|
+
"parser": {
|
|
5
|
+
"syntax": "typescript",
|
|
6
|
+
"decorators": true,
|
|
7
|
+
"dynamicImport": true
|
|
8
|
+
},
|
|
9
|
+
"transform": {
|
|
10
|
+
"decoratorMetadata": true,
|
|
11
|
+
"legacyDecorator": true
|
|
12
|
+
},
|
|
13
|
+
"keepClassNames": true,
|
|
14
|
+
"externalHelpers": true,
|
|
15
|
+
"loose": true
|
|
16
|
+
},
|
|
17
|
+
"module": {
|
|
18
|
+
"type": "es6"
|
|
19
|
+
},
|
|
20
|
+
"sourceMaps": true,
|
|
21
|
+
"exclude": []
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"5.9.3"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import baseConfig from '../../eslint.config.mjs';
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
...baseConfig,
|
|
5
|
+
{
|
|
6
|
+
files: ['**/*.json'],
|
|
7
|
+
rules: {
|
|
8
|
+
'@nx/dependency-checks': [
|
|
9
|
+
'error',
|
|
10
|
+
{
|
|
11
|
+
ignoredFiles: ['{projectRoot}/eslint.config.{js,cjs,mjs,ts,cts,mts}'],
|
|
12
|
+
},
|
|
13
|
+
],
|
|
14
|
+
},
|
|
15
|
+
languageOptions: {
|
|
16
|
+
parser: await import('jsonc-eslint-parser'),
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
ignores: ['**/out-tsc'],
|
|
21
|
+
},
|
|
22
|
+
];
|
package/jest.config.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import { readFileSync } from 'fs';
|
|
3
|
+
|
|
4
|
+
// Reading the SWC compilation config for the spec files
|
|
5
|
+
const swcJestConfig = JSON.parse(
|
|
6
|
+
readFileSync(`${__dirname}/.spec.swcrc`, 'utf-8')
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
// Disable .swcrc look-up by SWC core because we're passing in swcJestConfig ourselves
|
|
10
|
+
swcJestConfig.swcrc = false;
|
|
11
|
+
|
|
12
|
+
export default {
|
|
13
|
+
displayName: '@ask-ell/react',
|
|
14
|
+
preset: '../../jest.preset.js',
|
|
15
|
+
testEnvironment: 'node',
|
|
16
|
+
transform: {
|
|
17
|
+
'^.+\\.[tj]s$': ['@swc/jest', swcJestConfig],
|
|
18
|
+
},
|
|
19
|
+
moduleFileExtensions: ['ts', 'js', 'html'],
|
|
20
|
+
coverageDirectory: 'test-output/jest/coverage',
|
|
21
|
+
};
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ask-ell/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"private": false,
|
|
5
|
-
"type": "
|
|
5
|
+
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
7
7
|
"types": "./src/index.d.ts",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@ask-ell/core": "
|
|
10
|
-
"@ask-ell/sentry": "
|
|
11
|
-
"@sentry/core": "
|
|
12
|
-
"@sentry/react": "
|
|
13
|
-
"react": "
|
|
14
|
-
"tslib": "
|
|
9
|
+
"@ask-ell/core": "*",
|
|
10
|
+
"@ask-ell/sentry": "*",
|
|
11
|
+
"@sentry/core": "*",
|
|
12
|
+
"@sentry/react": "*",
|
|
13
|
+
"react": "*",
|
|
14
|
+
"tslib": "*"
|
|
15
15
|
}
|
|
16
16
|
}
|
package/project.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "react",
|
|
3
|
+
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
+
"sourceRoot": "packages/react/src",
|
|
5
|
+
"projectType": "library",
|
|
6
|
+
"tags": [],
|
|
7
|
+
"targets": {
|
|
8
|
+
"build": {
|
|
9
|
+
"executor": "@nx/js:tsc",
|
|
10
|
+
"dependsOn": ["^build"],
|
|
11
|
+
"outputs": [
|
|
12
|
+
"{options.outputPath}"
|
|
13
|
+
],
|
|
14
|
+
"options": {
|
|
15
|
+
"outputPath": "dist/packages/react",
|
|
16
|
+
"main": "packages/react/src/index.ts",
|
|
17
|
+
"tsConfig": "packages/react/tsconfig.lib.json",
|
|
18
|
+
"assets": [
|
|
19
|
+
"packages/react/*.md"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"test": {
|
|
24
|
+
"options": {
|
|
25
|
+
"passWithNoTests": true
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
package/src/forms.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Dispatch, FormEvent, SetStateAction, useState } from "react";
|
|
2
|
+
|
|
3
|
+
export enum SubmitMode {
|
|
4
|
+
ON_TRIGGER,
|
|
5
|
+
AUTOMATIC
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export type ErrorSetter<FormData> = (key: keyof FormData) => (errorMessage: string) => void;
|
|
9
|
+
|
|
10
|
+
export type OnSubmitCallbackParams<FormData> = {
|
|
11
|
+
formData: FormData;
|
|
12
|
+
appendError: ErrorSetter<FormData>;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type OnSubmitCallback<FormData> = (params: OnSubmitCallbackParams<FormData>) => void;
|
|
16
|
+
|
|
17
|
+
export type UseFormParams<FormData> = {
|
|
18
|
+
defaultValue: FormData;
|
|
19
|
+
onSubmit: OnSubmitCallback<FormData>;
|
|
20
|
+
submitMode?: SubmitMode
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type FormDataFieldUpdater<FormData> = <Key extends keyof FormData>(key: Key) => (value: FormData[Key]) => void;
|
|
24
|
+
|
|
25
|
+
type SubmitTrigger = () => void;
|
|
26
|
+
|
|
27
|
+
export interface ErrorsMap<FormData> extends Map<keyof FormData, string[]> { }
|
|
28
|
+
|
|
29
|
+
export type FormController<FormData> = {
|
|
30
|
+
formData: FormData;
|
|
31
|
+
errors: ErrorsMap<FormData>;
|
|
32
|
+
setFormData: Dispatch<SetStateAction<FormData>>;
|
|
33
|
+
updateFormData: FormDataFieldUpdater<FormData>;
|
|
34
|
+
submit: SubmitTrigger;
|
|
35
|
+
reset: () => void;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export function useFormController<FormData>({ defaultValue, onSubmit, submitMode }: UseFormParams<FormData>): FormController<FormData> {
|
|
39
|
+
const [formData, setFormData] = useState<FormData>(defaultValue);
|
|
40
|
+
const [errors, setErrors] = useState<ErrorsMap<FormData>>(new Map());
|
|
41
|
+
|
|
42
|
+
const appendError: ErrorSetter<FormData> = (key: keyof FormData) => (message: string): void => {
|
|
43
|
+
const existingErrors: string[] = errors.get(key) ?? [];
|
|
44
|
+
existingErrors.push(message);
|
|
45
|
+
errors.set(key, existingErrors);
|
|
46
|
+
setErrors(new Map(errors));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const prepareOnSubmit = (callback: () => void) => {
|
|
50
|
+
errors.clear()
|
|
51
|
+
setErrors(new Map(errors));
|
|
52
|
+
callback();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const updateFormData: FormDataFieldUpdater<FormData> = <Key extends keyof FormData>(key: Key) => (value: FormData[Key]) => {
|
|
56
|
+
setTimeout((): void => {
|
|
57
|
+
const newFormData: FormData = {
|
|
58
|
+
...formData,
|
|
59
|
+
[key]: value
|
|
60
|
+
}
|
|
61
|
+
setFormData(() => newFormData);
|
|
62
|
+
if (submitMode === SubmitMode.AUTOMATIC) {
|
|
63
|
+
prepareOnSubmit(
|
|
64
|
+
(): void => onSubmit({ formData: newFormData, appendError })
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const submit: SubmitTrigger = (): void => prepareOnSubmit(
|
|
71
|
+
(): void => onSubmit({ formData, appendError })
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
const reset = (): void => {
|
|
75
|
+
setFormData(defaultValue)
|
|
76
|
+
errors.clear();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
formData,
|
|
81
|
+
errors,
|
|
82
|
+
setFormData,
|
|
83
|
+
updateFormData,
|
|
84
|
+
submit,
|
|
85
|
+
reset
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export const preventDefault = (callback: () => void) => (event: FormEvent): void => {
|
|
90
|
+
event.preventDefault();
|
|
91
|
+
callback();
|
|
92
|
+
};
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChangeEvent, KeyboardEvent } from 'react';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export const handleEnterKeyDown =
|
|
5
|
+
(callback: () => void) => (event: KeyboardEvent<HTMLInputElement>) => {
|
|
6
|
+
if (event.key === 'Enter') {
|
|
7
|
+
callback();
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const handleKeyboardEvent =
|
|
12
|
+
(callback: (fieldValue: string) => void) => <TargetType>(event: KeyboardEvent<TargetType>) => {
|
|
13
|
+
callback((event.target as any).value as string);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const handleChangeEvent =
|
|
17
|
+
(callback: (fieldValue: string) => void) => <TargetType>(event: ChangeEvent<TargetType>) => {
|
|
18
|
+
callback((event.target as any).value as string);
|
|
19
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ConsoleLogger, ILogger, MaybeUndefined } from "@ask-ell/core";
|
|
2
|
+
import { SentryConfiguration, SentryConfigurationProps } from "@ask-ell/sentry";
|
|
3
|
+
import { BrowserOptions, init } from "@sentry/react";
|
|
4
|
+
import { Client } from "@sentry/core";
|
|
5
|
+
|
|
6
|
+
import { environment } from "./environment";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
type ReactSentryClientFactory = (options: BrowserOptions) => MaybeUndefined<Client>;
|
|
10
|
+
|
|
11
|
+
type ReactSentryConfigurationProps = Omit<SentryConfigurationProps<ReactSentryClientFactory>, "environment" | "logger" | "init"> & { logger?: ILogger };
|
|
12
|
+
|
|
13
|
+
export class ReactSentryConfiguration extends SentryConfiguration<ReactSentryClientFactory> {
|
|
14
|
+
constructor(props: ReactSentryConfigurationProps) {
|
|
15
|
+
super({
|
|
16
|
+
...props,
|
|
17
|
+
init,
|
|
18
|
+
environment,
|
|
19
|
+
logger: props.logger ?? new ConsoleLogger(),
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"baseUrl": ".",
|
|
5
|
+
"rootDir": "src",
|
|
6
|
+
"outDir": "dist",
|
|
7
|
+
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
|
8
|
+
"emitDeclarationOnly": false,
|
|
9
|
+
"forceConsistentCasingInFileNames": true,
|
|
10
|
+
"types": ["node"]
|
|
11
|
+
},
|
|
12
|
+
"include": ["src/**/*.ts"],
|
|
13
|
+
"references": [],
|
|
14
|
+
"exclude": [
|
|
15
|
+
"jest.config.ts",
|
|
16
|
+
"src/**/*.spec.ts",
|
|
17
|
+
"src/**/*.test.ts"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "./out-tsc/jest",
|
|
5
|
+
"types": ["jest", "node"],
|
|
6
|
+
"forceConsistentCasingInFileNames": true
|
|
7
|
+
},
|
|
8
|
+
"include": [
|
|
9
|
+
"jest.config.ts",
|
|
10
|
+
"src/**/*.test.ts",
|
|
11
|
+
"src/**/*.spec.ts",
|
|
12
|
+
"src/**/*.d.ts"
|
|
13
|
+
],
|
|
14
|
+
"references": [
|
|
15
|
+
{
|
|
16
|
+
"path": "./tsconfig.lib.json"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
package/src/environment.d.ts
DELETED
package/src/environment.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../packages/react/src/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,eAAO,MAAM,WAAW,EAAE,cAAc,CAAC,MAAM,CAAiC,CAAC"}
|
package/src/environment.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const environment = process.env.NODE_ENV;
|
package/src/forms.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Dispatch, FormEvent, SetStateAction } from "react";
|
|
2
|
-
export declare enum SubmitMode {
|
|
3
|
-
ON_TRIGGER = 0,
|
|
4
|
-
AUTOMATIC = 1
|
|
5
|
-
}
|
|
6
|
-
export type ErrorSetter<FormData> = (key: keyof FormData) => (errorMessage: string) => void;
|
|
7
|
-
export type OnSubmitCallbackParams<FormData> = {
|
|
8
|
-
formData: FormData;
|
|
9
|
-
appendError: ErrorSetter<FormData>;
|
|
10
|
-
};
|
|
11
|
-
export type OnSubmitCallback<FormData> = (params: OnSubmitCallbackParams<FormData>) => void;
|
|
12
|
-
export type UseFormParams<FormData> = {
|
|
13
|
-
defaultValue: FormData;
|
|
14
|
-
onSubmit: OnSubmitCallback<FormData>;
|
|
15
|
-
submitMode?: SubmitMode;
|
|
16
|
-
};
|
|
17
|
-
type FormDataFieldUpdater<FormData> = <Key extends keyof FormData>(key: Key) => (value: FormData[Key]) => void;
|
|
18
|
-
type SubmitTrigger = () => void;
|
|
19
|
-
export interface ErrorsMap<FormData> extends Map<keyof FormData, string[]> {
|
|
20
|
-
}
|
|
21
|
-
export type FormController<FormData> = {
|
|
22
|
-
formData: FormData;
|
|
23
|
-
errors: ErrorsMap<FormData>;
|
|
24
|
-
setFormData: Dispatch<SetStateAction<FormData>>;
|
|
25
|
-
updateFormData: FormDataFieldUpdater<FormData>;
|
|
26
|
-
submit: SubmitTrigger;
|
|
27
|
-
reset: () => void;
|
|
28
|
-
};
|
|
29
|
-
export declare function useFormController<FormData>({ defaultValue, onSubmit, submitMode }: UseFormParams<FormData>): FormController<FormData>;
|
|
30
|
-
export declare const preventDefault: (callback: () => void) => (event: FormEvent) => void;
|
|
31
|
-
export {};
|
|
32
|
-
//# sourceMappingURL=forms.d.ts.map
|
package/src/forms.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../../packages/react/src/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAY,MAAM,OAAO,CAAC;AAEtE,oBAAY,UAAU;IAClB,UAAU,IAAA;IACV,SAAS,IAAA;CACZ;AAED,MAAM,MAAM,WAAW,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,MAAM,QAAQ,KAAK,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5F,MAAM,MAAM,sBAAsB,CAAC,QAAQ,IAAI;IAC3C,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AAE5F,MAAM,MAAM,aAAa,CAAC,QAAQ,IAAI;IAClC,YAAY,EAAE,QAAQ,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,UAAU,CAAA;CAC1B,CAAC;AAEF,KAAK,oBAAoB,CAAC,QAAQ,IAAI,CAAC,GAAG,SAAS,MAAM,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAE/G,KAAK,aAAa,GAAG,MAAM,IAAI,CAAC;AAEhC,MAAM,WAAW,SAAS,CAAC,QAAQ,CAAE,SAAQ,GAAG,CAAC,MAAM,QAAQ,EAAE,MAAM,EAAE,CAAC;CAAI;AAE9E,MAAM,MAAM,cAAc,CAAC,QAAQ,IAAI;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,cAAc,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAiDrI;AAED,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,IAAI,MAAM,OAAO,SAAS,KAAG,IAG3E,CAAC"}
|
package/src/forms.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { useState } from "react";
|
|
2
|
-
export var SubmitMode;
|
|
3
|
-
(function (SubmitMode) {
|
|
4
|
-
SubmitMode[SubmitMode["ON_TRIGGER"] = 0] = "ON_TRIGGER";
|
|
5
|
-
SubmitMode[SubmitMode["AUTOMATIC"] = 1] = "AUTOMATIC";
|
|
6
|
-
})(SubmitMode || (SubmitMode = {}));
|
|
7
|
-
export function useFormController({ defaultValue, onSubmit, submitMode }) {
|
|
8
|
-
const [formData, setFormData] = useState(defaultValue);
|
|
9
|
-
const [errors, setErrors] = useState(new Map());
|
|
10
|
-
const appendError = (key) => (message) => {
|
|
11
|
-
const existingErrors = errors.get(key) ?? [];
|
|
12
|
-
existingErrors.push(message);
|
|
13
|
-
errors.set(key, existingErrors);
|
|
14
|
-
setErrors(new Map(errors));
|
|
15
|
-
};
|
|
16
|
-
const prepareOnSubmit = (callback) => {
|
|
17
|
-
errors.clear();
|
|
18
|
-
setErrors(new Map(errors));
|
|
19
|
-
callback();
|
|
20
|
-
};
|
|
21
|
-
const updateFormData = (key) => (value) => {
|
|
22
|
-
setTimeout(() => {
|
|
23
|
-
const newFormData = {
|
|
24
|
-
...formData,
|
|
25
|
-
[key]: value
|
|
26
|
-
};
|
|
27
|
-
setFormData(() => newFormData);
|
|
28
|
-
if (submitMode === SubmitMode.AUTOMATIC) {
|
|
29
|
-
prepareOnSubmit(() => onSubmit({ formData: newFormData, appendError }));
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
const submit = () => prepareOnSubmit(() => onSubmit({ formData, appendError }));
|
|
34
|
-
const reset = () => {
|
|
35
|
-
setFormData(defaultValue);
|
|
36
|
-
errors.clear();
|
|
37
|
-
};
|
|
38
|
-
return {
|
|
39
|
-
formData,
|
|
40
|
-
errors,
|
|
41
|
-
setFormData,
|
|
42
|
-
updateFormData,
|
|
43
|
-
submit,
|
|
44
|
-
reset
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
export const preventDefault = (callback) => (event) => {
|
|
48
|
-
event.preventDefault();
|
|
49
|
-
callback();
|
|
50
|
-
};
|
package/src/index.d.ts
DELETED
package/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA"}
|
package/src/index.js
DELETED
package/src/keyboard-events.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ChangeEvent, KeyboardEvent } from 'react';
|
|
2
|
-
export declare const handleEnterKeyDown: (callback: () => void) => (event: KeyboardEvent<HTMLInputElement>) => void;
|
|
3
|
-
export declare const handleKeyboardEvent: (callback: (fieldValue: string) => void) => <TargetType>(event: KeyboardEvent<TargetType>) => void;
|
|
4
|
-
export declare const handleChangeEvent: (callback: (fieldValue: string) => void) => <TargetType>(event: ChangeEvent<TargetType>) => void;
|
|
5
|
-
//# sourceMappingURL=keyboard-events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard-events.d.ts","sourceRoot":"","sources":["../../../../packages/react/src/keyboard-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGnD,eAAO,MAAM,kBAAkB,GAC5B,UAAU,MAAM,IAAI,MAAM,OAAO,aAAa,CAAC,gBAAgB,CAAC,SAIhE,CAAC;AAEJ,eAAO,MAAM,mBAAmB,GAC7B,UAAU,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,MAAM,UAAU,EAAE,OAAO,aAAa,CAAC,UAAU,CAAC,SAExF,CAAC;AAEJ,eAAO,MAAM,iBAAiB,GAC3B,UAAU,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,MAAM,UAAU,EAAE,OAAO,WAAW,CAAC,UAAU,CAAC,SAEtF,CAAC"}
|
package/src/keyboard-events.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export const handleEnterKeyDown = (callback) => (event) => {
|
|
2
|
-
if (event.key === 'Enter') {
|
|
3
|
-
callback();
|
|
4
|
-
}
|
|
5
|
-
};
|
|
6
|
-
export const handleKeyboardEvent = (callback) => (event) => {
|
|
7
|
-
callback(event.target.value);
|
|
8
|
-
};
|
|
9
|
-
export const handleChangeEvent = (callback) => (event) => {
|
|
10
|
-
callback(event.target.value);
|
|
11
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ILogger, MaybeUndefined } from "@ask-ell/core";
|
|
2
|
-
import { SentryConfiguration, SentryConfigurationProps } from "@ask-ell/sentry";
|
|
3
|
-
import { BrowserOptions } from "@sentry/react";
|
|
4
|
-
import { Client } from "@sentry/core";
|
|
5
|
-
type ReactSentryClientFactory = (options: BrowserOptions) => MaybeUndefined<Client>;
|
|
6
|
-
type ReactSentryConfigurationProps = Omit<SentryConfigurationProps<ReactSentryClientFactory>, "environment" | "logger" | "init"> & {
|
|
7
|
-
logger?: ILogger;
|
|
8
|
-
};
|
|
9
|
-
export declare class ReactSentryConfiguration extends SentryConfiguration<ReactSentryClientFactory> {
|
|
10
|
-
constructor(props: ReactSentryConfigurationProps);
|
|
11
|
-
}
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=react.sentry.configuration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.sentry.configuration.d.ts","sourceRoot":"","sources":["../../../../packages/react/src/react.sentry.configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAQ,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC,KAAK,wBAAwB,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC;AAEpF,KAAK,6BAA6B,GAAG,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExJ,qBAAa,wBAAyB,SAAQ,mBAAmB,CAAC,wBAAwB,CAAC;gBAC3E,KAAK,EAAE,6BAA6B;CAQnD"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ConsoleLogger } from "@ask-ell/core";
|
|
2
|
-
import { SentryConfiguration } from "@ask-ell/sentry";
|
|
3
|
-
import { init } from "@sentry/react";
|
|
4
|
-
import { environment } from "./environment";
|
|
5
|
-
export class ReactSentryConfiguration extends SentryConfiguration {
|
|
6
|
-
constructor(props) {
|
|
7
|
-
super({
|
|
8
|
-
...props,
|
|
9
|
-
init,
|
|
10
|
-
environment,
|
|
11
|
-
logger: props.logger ?? new ConsoleLogger(),
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
}
|
package/src/select-events.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-events.d.ts","sourceRoot":"","sources":["../../../../packages/react/src/select-events.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,GAC1B,UAAU,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,MAC5B,CAAC,EAAE,OAAO,CAAC,KAAG,IAElB,CAAC"}
|
package/src/select-events.js
DELETED