@mittwald/flow-react-components 0.2.0-alpha.572 → 0.2.0-alpha.573

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.
@@ -1,14 +1,25 @@
1
1
  "use client"
2
2
  /* */
3
- import { useEffect, startTransition } from 'react';
3
+ import { useRef, useEffect, startTransition } from 'react';
4
4
  import { isPromise } from 'remeda';
5
5
 
6
6
  const usePolicyValidationResult = (validationPolicy, password, onValidationStart, onValidationResult) => {
7
+ const cache = useRef(null);
7
8
  useEffect(() => {
8
9
  onValidationStart?.();
10
+ if (cache.current?.password === password) {
11
+ onValidationResult?.({
12
+ password: cache.current.password,
13
+ isValid: Boolean(cache.current.results.isValid),
14
+ results: cache.current.results
15
+ });
16
+ return;
17
+ }
9
18
  validationPolicy.validate(password).then((validationResult) => {
10
19
  const setValidationResult = (password2, policyValidationResult) => {
20
+ const results = policyValidationResult;
11
21
  const isValid = Boolean(policyValidationResult.isValid);
22
+ cache.current = { password: password2, results };
12
23
  onValidationResult?.({
13
24
  password: password2,
14
25
  isValid,
@@ -1 +1 @@
1
- {"version":3,"file":"usePolicyValidationResult.mjs","sources":["../../../../../../../src/components/PasswordCreationField/lib/usePolicyValidationResult.ts"],"sourcesContent":["import { startTransition, useEffect } from \"react\";\nimport type { PolicyValidationResult } from \"@/integrations/@mittwald/password-tools-js\";\nimport { isPromise } from \"remeda\";\nimport type { Policy } from \"@/integrations/@mittwald/password-tools-js\";\nimport type { ResolvedPolicyValidationResult } from \"@/components/PasswordCreationField/PasswordCreationField\";\n\nexport const usePolicyValidationResult = (\n validationPolicy: Policy,\n password: string,\n onValidationStart?: () => void,\n onValidationResult?: (data: {\n password: string;\n isValid: boolean;\n results: ResolvedPolicyValidationResult;\n }) => void,\n) => {\n useEffect(() => {\n onValidationStart?.();\n validationPolicy.validate(password).then((validationResult) => {\n const setValidationResult = (\n password: string,\n policyValidationResult: PolicyValidationResult,\n ) => {\n const isValid = Boolean(policyValidationResult.isValid);\n onValidationResult?.({\n password,\n isValid,\n results: policyValidationResult as ResolvedPolicyValidationResult,\n });\n };\n\n startTransition(async () => {\n if (!isPromise(validationResult.isValid)) {\n return setValidationResult(password, validationResult);\n }\n\n void Promise.all([\n Promise.resolve(password),\n Promise.resolve(validationResult),\n ...validationResult.ruleResults,\n ]).then(\n ([\n resolvedValue,\n resolvedValidationResult,\n ...resolvedValidationRuleResults\n ]) => {\n startTransition(() => {\n setValidationResult(resolvedValue, {\n complexity: resolvedValidationResult.complexity,\n ruleResults: resolvedValidationRuleResults,\n isValid:\n resolvedValidationResult.isValid &&\n resolvedValidationRuleResults.every((r) => r.isValid),\n });\n });\n },\n );\n });\n });\n }, [password, validationPolicy]);\n};\n"],"names":["password"],"mappings":";;;AAMO,MAAM,yBAAA,GAA4B,CACvC,gBAAA,EACA,QAAA,EACA,mBACA,kBAAA,KAKG;AACH,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,iBAAA,IAAoB;AACpB,IAAA,gBAAA,CAAiB,QAAA,CAAS,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,gBAAA,KAAqB;AAC7D,MAAA,MAAM,mBAAA,GAAsB,CAC1BA,SAAAA,EACA,sBAAA,KACG;AACH,QAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,sBAAA,CAAuB,OAAO,CAAA;AACtD,QAAA,kBAAA,GAAqB;AAAA,UACnB,QAAA,EAAAA,SAAAA;AAAA,UACA,OAAA;AAAA,UACA,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH,CAAA;AAEA,MAAA,eAAA,CAAgB,YAAY;AAC1B,QAAA,IAAI,CAAC,SAAA,CAAU,gBAAA,CAAiB,OAAO,CAAA,EAAG;AACxC,UAAA,OAAO,mBAAA,CAAoB,UAAU,gBAAgB,CAAA;AAAA,QACvD;AAEA,QAAA,KAAK,QAAQ,GAAA,CAAI;AAAA,UACf,OAAA,CAAQ,QAAQ,QAAQ,CAAA;AAAA,UACxB,OAAA,CAAQ,QAAQ,gBAAgB,CAAA;AAAA,UAChC,GAAG,gBAAA,CAAiB;AAAA,SACrB,CAAA,CAAE,IAAA;AAAA,UACD,CAAC;AAAA,YACC,aAAA;AAAA,YACA,wBAAA;AAAA,YACG,GAAA;AAAA,WACL,KAAM;AACJ,YAAA,eAAA,CAAgB,MAAM;AACpB,cAAA,mBAAA,CAAoB,aAAA,EAAe;AAAA,gBACjC,YAAY,wBAAA,CAAyB,UAAA;AAAA,gBACrC,WAAA,EAAa,6BAAA;AAAA,gBACb,OAAA,EACE,yBAAyB,OAAA,IACzB,6BAAA,CAA8B,MAAM,CAAC,CAAA,KAAM,EAAE,OAAO;AAAA,eACvD,CAAA;AAAA,YACH,CAAC,CAAA;AAAA,UACH;AAAA,SACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,QAAA,EAAU,gBAAgB,CAAC,CAAA;AACjC;;;;"}
1
+ {"version":3,"file":"usePolicyValidationResult.mjs","sources":["../../../../../../../src/components/PasswordCreationField/lib/usePolicyValidationResult.ts"],"sourcesContent":["import { startTransition, useEffect, useRef } from \"react\";\nimport type {\n Policy,\n PolicyValidationResult,\n} from \"@/integrations/@mittwald/password-tools-js\";\nimport { isPromise } from \"remeda\";\nimport type { ResolvedPolicyValidationResult } from \"@/components/PasswordCreationField/PasswordCreationField\";\n\nexport const usePolicyValidationResult = (\n validationPolicy: Policy,\n password: string,\n onValidationStart?: () => void,\n onValidationResult?: (data: {\n password: string;\n isValid: boolean;\n results: ResolvedPolicyValidationResult;\n }) => void,\n) => {\n const cache = useRef<{\n password: string;\n results: ResolvedPolicyValidationResult;\n } | null>(null);\n\n useEffect(() => {\n onValidationStart?.();\n\n if (cache.current?.password === password) {\n onValidationResult?.({\n password: cache.current.password,\n isValid: Boolean(cache.current.results.isValid),\n results: cache.current.results,\n });\n return;\n }\n\n validationPolicy.validate(password).then((validationResult) => {\n const setValidationResult = (\n password: string,\n policyValidationResult: PolicyValidationResult,\n ) => {\n const results =\n policyValidationResult as ResolvedPolicyValidationResult;\n const isValid = Boolean(policyValidationResult.isValid);\n\n cache.current = { password, results };\n onValidationResult?.({\n password,\n isValid,\n results: policyValidationResult as ResolvedPolicyValidationResult,\n });\n };\n\n startTransition(async () => {\n if (!isPromise(validationResult.isValid)) {\n return setValidationResult(password, validationResult);\n }\n\n void Promise.all([\n Promise.resolve(password),\n Promise.resolve(validationResult),\n ...validationResult.ruleResults,\n ]).then(\n ([\n resolvedValue,\n resolvedValidationResult,\n ...resolvedValidationRuleResults\n ]) => {\n startTransition(() => {\n setValidationResult(resolvedValue, {\n complexity: resolvedValidationResult.complexity,\n ruleResults: resolvedValidationRuleResults,\n isValid:\n resolvedValidationResult.isValid &&\n resolvedValidationRuleResults.every((r) => r.isValid),\n });\n });\n },\n );\n });\n });\n }, [password, validationPolicy]);\n};\n"],"names":["password"],"mappings":";;;AAQO,MAAM,yBAAA,GAA4B,CACvC,gBAAA,EACA,QAAA,EACA,mBACA,kBAAA,KAKG;AACH,EAAA,MAAM,KAAA,GAAQ,OAGJ,IAAI,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,iBAAA,IAAoB;AAEpB,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,QAAA,KAAa,QAAA,EAAU;AACxC,MAAA,kBAAA,GAAqB;AAAA,QACnB,QAAA,EAAU,MAAM,OAAA,CAAQ,QAAA;AAAA,QACxB,OAAA,EAAS,OAAA,CAAQ,KAAA,CAAM,OAAA,CAAQ,QAAQ,OAAO,CAAA;AAAA,QAC9C,OAAA,EAAS,MAAM,OAAA,CAAQ;AAAA,OACxB,CAAA;AACD,MAAA;AAAA,IACF;AAEA,IAAA,gBAAA,CAAiB,QAAA,CAAS,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,gBAAA,KAAqB;AAC7D,MAAA,MAAM,mBAAA,GAAsB,CAC1BA,SAAAA,EACA,sBAAA,KACG;AACH,QAAA,MAAM,OAAA,GACJ,sBAAA;AACF,QAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,sBAAA,CAAuB,OAAO,CAAA;AAEtD,QAAA,KAAA,CAAM,OAAA,GAAU,EAAE,QAAA,EAAAA,SAAAA,EAAU,OAAA,EAAQ;AACpC,QAAA,kBAAA,GAAqB;AAAA,UACnB,QAAA,EAAAA,SAAAA;AAAA,UACA,OAAA;AAAA,UACA,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH,CAAA;AAEA,MAAA,eAAA,CAAgB,YAAY;AAC1B,QAAA,IAAI,CAAC,SAAA,CAAU,gBAAA,CAAiB,OAAO,CAAA,EAAG;AACxC,UAAA,OAAO,mBAAA,CAAoB,UAAU,gBAAgB,CAAA;AAAA,QACvD;AAEA,QAAA,KAAK,QAAQ,GAAA,CAAI;AAAA,UACf,OAAA,CAAQ,QAAQ,QAAQ,CAAA;AAAA,UACxB,OAAA,CAAQ,QAAQ,gBAAgB,CAAA;AAAA,UAChC,GAAG,gBAAA,CAAiB;AAAA,SACrB,CAAA,CAAE,IAAA;AAAA,UACD,CAAC;AAAA,YACC,aAAA;AAAA,YACA,wBAAA;AAAA,YACG,GAAA;AAAA,WACL,KAAM;AACJ,YAAA,eAAA,CAAgB,MAAM;AACpB,cAAA,mBAAA,CAAoB,aAAA,EAAe;AAAA,gBACjC,YAAY,wBAAA,CAAyB,UAAA;AAAA,gBACrC,WAAA,EAAa,6BAAA;AAAA,gBACb,OAAA,EACE,yBAAyB,OAAA,IACzB,6BAAA,CAA8B,MAAM,CAAC,CAAA,KAAM,EAAE,OAAO;AAAA,eACvD,CAAA;AAAA,YACH,CAAC,CAAA;AAAA,UACH;AAAA,SACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,QAAA,EAAU,gBAAgB,CAAC,CAAA;AACjC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,KAAuB,MAAM,oBAAoB,CAAC;AAmBzD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CA+C5B,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AAEpC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,cAAc,EAAE,KAmC5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAoBzB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAEtC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAG7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAoCtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAoC/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqC5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqC5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAiE7B,CAAC;AAUF,eAAO,MAAM,YAAY,EAAE,KAa1B,CAAC"}
1
+ {"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,KAAuB,MAAM,oBAAoB,CAAC;AAmBzD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CA+C5B,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AAEpC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,cAAc,EAAE,KAmC5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAoBzB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAEtC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAG7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAkCtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAkC/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqC5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqC5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAiE7B,CAAC;AAUF,eAAO,MAAM,YAAY,EAAE,KAa1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePolicyValidationResult.d.ts","sourceRoot":"","sources":["../../../../../src/components/PasswordCreationField/lib/usePolicyValidationResult.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0DAA0D,CAAC;AAE/G,eAAO,MAAM,yBAAyB,GACpC,kBAAkB,MAAM,EACxB,UAAU,MAAM,EAChB,oBAAoB,MAAM,IAAI,EAC9B,qBAAqB,CAAC,IAAI,EAAE;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,8BAA8B,CAAC;CACzC,KAAK,IAAI,SA8CX,CAAC"}
1
+ {"version":3,"file":"usePolicyValidationResult.d.ts","sourceRoot":"","sources":["../../../../../src/components/PasswordCreationField/lib/usePolicyValidationResult.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,MAAM,EAEP,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0DAA0D,CAAC;AAE/G,eAAO,MAAM,yBAAyB,GACpC,kBAAkB,MAAM,EACxB,UAAU,MAAM,EAChB,oBAAoB,MAAM,IAAI,EAC9B,qBAAqB,CAAC,IAAI,EAAE;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,8BAA8B,CAAC;CACzC,KAAK,IAAI,SAiEX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Section/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,OAAO,MAAM,YAAY,CAAC;AA+BjC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAc9B,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,OAAO,CAAC,CAAC;AAEtC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,gBAAgB,EAAE,KA0B9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAyE/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAyB7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA0B3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAe3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAgCtB,CAAC"}
1
+ {"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Section/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,OAAO,MAAM,YAAY,CAAC;AA+BjC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAc9B,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,OAAO,CAAC,CAAC;AAEtC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,gBAAgB,EAAE,KA0B9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAyE/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAyB7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA0B3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAe3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAmCtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mittwald/flow-react-components",
3
- "version": "0.2.0-alpha.572",
3
+ "version": "0.2.0-alpha.573",
4
4
  "type": "module",
5
5
  "description": "A React implementation of Flow, mittwald’s design system",
6
6
  "homepage": "https://mittwald.github.io/flow",
@@ -58,7 +58,7 @@
58
58
  "dependencies": {
59
59
  "@internationalized/string-compiler": "^3.2.6",
60
60
  "@mittwald/password-tools-js": "3.0.0-alpha.18",
61
- "@mittwald/react-tunnel": "0.2.0-alpha.572",
61
+ "@mittwald/react-tunnel": "0.2.0-alpha.573",
62
62
  "@mittwald/react-use-promise": "^4.2.2",
63
63
  "@react-aria/form": "^3.1.2",
64
64
  "@react-aria/live-announcer": "^3.4.4",
@@ -103,7 +103,7 @@
103
103
  "@faker-js/faker": "^10.1.0",
104
104
  "@internationalized/date": "^3.10.0",
105
105
  "@mittwald/flow-core": "",
106
- "@mittwald/flow-design-tokens": "0.2.0-alpha.572",
106
+ "@mittwald/flow-design-tokens": "0.2.0-alpha.573",
107
107
  "@mittwald/react-use-promise": "^4.2.2",
108
108
  "@mittwald/remote-dom-react": "1.2.2-mittwald.10",
109
109
  "@mittwald/typescript-config": "",
@@ -176,5 +176,5 @@
176
176
  "optional": true
177
177
  }
178
178
  },
179
- "gitHead": "f3fdcb5c86ea1ee41b9aadbe3bae9b5b0b4b0132"
179
+ "gitHead": "29cc5ba272667c6d25f6f1dd39f738f595a036e9"
180
180
  }