@shivaedev/effect-react 0.1.2 → 0.2.1
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/CHANGELOG.md +14 -0
- package/README.md +2 -2
- package/dist/create.d.ts +1 -1
- package/dist/create.d.ts.map +1 -1
- package/dist/editor.d.ts +1 -1
- package/dist/editor.d.ts.map +1 -1
- package/dist/field-rejection.d.ts +1 -1
- package/dist/field-rejection.d.ts.map +1 -1
- package/dist/resume-signal.d.ts +5 -16
- package/dist/resume-signal.d.ts.map +1 -1
- package/dist/resume-signal.js +4 -22
- package/dist/resume-signal.js.map +1 -1
- package/dist/save-state.d.ts +1 -1
- package/dist/save-state.d.ts.map +1 -1
- package/dist/save-state.js +1 -1
- package/dist/save-state.js.map +1 -1
- package/dist/submission.d.ts +1 -1
- package/dist/submission.d.ts.map +1 -1
- package/dist/submission.js +1 -1
- package/dist/submission.js.map +1 -1
- package/package.json +21 -20
- package/src/create.ts +1 -1
- package/src/editor.ts +1 -1
- package/src/field-rejection.ts +1 -1
- package/src/resume-signal.ts +12 -40
- package/src/save-state.ts +1 -1
- package/src/submission.ts +2 -1
- package/dist/form.d.ts +0 -7
- package/dist/form.d.ts.map +0 -1
- package/dist/form.js +0 -3
- package/dist/form.js.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +0 -1
- package/src/form.ts +0 -6
- package/src/index.ts +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.1 - 2026-10-05
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Delegate the existing `resume-signal.ts` entry to the shared browser-safe implementation in effect-contract. Install that package as a runtime dependency so existing imports keep working; signal types and behavior remain compatible. Work Board can import the shared native implementation without React peers.
|
|
8
|
+
|
|
9
|
+
## 0.2.0 - 2026-10-04
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Breaking: no root entry and no module that re-exports another. `exports` maps one `"./*.ts"` pattern to every module (`src` under the `source` condition, `dist` otherwise), so you import the module that defines a name, and a bundler sees only the modules you use. Where each name now lives:
|
|
14
|
+
- `@shivaedev/effect-react`: `@shivaedev/effect-react/result-state.ts` (`ActionState`, `QueryState`, `ResultState`, `isUnauthorized`, `useAction`, `useQuery`), `@shivaedev/effect-react/resume-signal.ts` (`ResumeOptions`, `ResumeSource`, `ResumeWindow`, `resumeSignal`), `@shivaedev/effect-react/session-boundary.ts` (`SessionBoundaryProps`, `SessionBoundary`, `useSessionRecheck`)
|
|
15
|
+
- `@shivaedev/effect-react/form`: `@shivaedev/effect-react/create.ts` (`Create`, `CreateConfig`, `useCreate`), `@shivaedev/effect-react/editor.ts` (`Editor`, `EditorConfig`, `useEditor`), `@shivaedev/effect-react/field-rejection.ts` (`FieldRejection`, `FieldRejectionMapping`, `RejectField`), `@shivaedev/effect-react/save-state.ts` (`SaveState`)
|
|
16
|
+
|
|
3
17
|
## 0.1.2 - 2026-10-04
|
|
4
18
|
|
|
5
19
|
### Changed
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Given an `Api` service constructed with native `AtomRpc.Service`, and RPCs `Orde
|
|
|
10
10
|
|
|
11
11
|
```tsx
|
|
12
12
|
import { RegistryProvider } from "@effect/atom-react"
|
|
13
|
-
import { useAction, useQuery } from "@shivaedev/effect-react"
|
|
13
|
+
import { useAction, useQuery } from "@shivaedev/effect-react/result-state.ts"
|
|
14
14
|
import { Option } from "effect"
|
|
15
15
|
|
|
16
16
|
function Orders() {
|
|
@@ -45,7 +45,7 @@ function App() {
|
|
|
45
45
|
|
|
46
46
|
## Editing
|
|
47
47
|
|
|
48
|
-
`useEditor` and `useCreate` from `@shivaedev/effect-react/
|
|
48
|
+
`useEditor` from `@shivaedev/effect-react/editor.ts` and `useCreate` from `@shivaedev/effect-react/create.ts` bind `@shivaedev/effect-form` to a query atom and a save Effect, for example from an `@shivaedev/effect-contract` binding `api`. `@shivaedev/effect-form` is an optional peer dependency: install it only when you import these modules; the other modules do not load it. See the [editing guide](../../docs/framework/editing.md).
|
|
49
49
|
|
|
50
50
|
```ts
|
|
51
51
|
const editor = useEditor({
|
package/dist/create.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Effect, Option, type Schema } from "effect";
|
|
2
2
|
import type * as Atom from "effect/unstable/reactivity/Atom";
|
|
3
|
-
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form";
|
|
3
|
+
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form/shape.ts";
|
|
4
4
|
import type { AtomServices, FieldRejectionMapping } from "./field-rejection.ts";
|
|
5
5
|
import { type SaveState } from "./save-state.ts";
|
|
6
6
|
export type CreateConfig<F extends Fields, Created, SE, R, ER> = {
|
package/dist/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAS,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,KAAK,KAAK,IAAI,MAAM,iCAAiC,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAS,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,KAAK,KAAK,IAAI,MAAM,iCAAiC,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,iBAAiB,CAAC;AAG/D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACvD,GAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAEjC,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAE,SAAQ,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IACpF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,CAAC,CAAC;CACvD;AAOD,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAiBtI,CAAC"}
|
package/dist/editor.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Effect, type Schema } from "effect";
|
|
2
2
|
import type * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
3
3
|
import type * as Atom from "effect/unstable/reactivity/Atom";
|
|
4
|
-
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form";
|
|
4
|
+
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form/shape.ts";
|
|
5
5
|
import type { AtomServices, FieldRejectionMapping } from "./field-rejection.ts";
|
|
6
6
|
import { type QueryState } from "./result-state.ts";
|
|
7
7
|
import { type SaveState } from "./save-state.ts";
|
package/dist/editor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAU,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,KAAK,KAAK,WAAW,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,KAAK,IAAI,MAAM,iCAAiC,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAU,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,KAAK,KAAK,WAAW,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,KAAK,IAAI,MAAM,iCAAiC,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,KAAK,UAAU,EAAY,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,iBAAiB,CAAC;AAG/D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI;IAChE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACvD,GAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAEjC,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,SAAQ,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IACpF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;CACpC;AAQD,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CA4BtI,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Effect, type Schema, type Scope } from "effect";
|
|
2
2
|
import type { AtomRegistry } from "effect/unstable/reactivity/AtomRegistry";
|
|
3
3
|
import type { Reactivity } from "effect/unstable/reactivity/Reactivity";
|
|
4
|
-
import type { FieldFailure, Fields, Name, Submitter } from "@shivaedev/effect-form";
|
|
4
|
+
import type { FieldFailure, Fields, Name, Submitter } from "@shivaedev/effect-form/shape.ts";
|
|
5
5
|
export interface FieldRejection<N extends string> {
|
|
6
6
|
readonly field: N;
|
|
7
7
|
readonly message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-rejection.d.ts","sourceRoot":"","sources":["../src/field-rejection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"field-rejection.d.ts","sourceRoot":"","sources":["../src/field-rejection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE7F,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM;IAC/C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1E,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAEjG,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChG,OAAO,SAAS,MAAM,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GACxC,KAAK,GACN,KAAK,CAAC;AAET,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACvI,OAAO,GACP;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,CAAC,CAAC;AAEhD,eAAO,MAAM,gBAAgB,GAC3B,CAAC,SAAS,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAC1C,OAAO,OAAO,KAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAO3C,CAAC;AAEH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACrD,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACxB,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3C,QAAQ,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,MAG7B,QAAQ,CAAC,EAAE,WAAW,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,CAKvF,CAAC"}
|
package/dist/resume-signal.d.ts
CHANGED
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
export type ResumeSource =
|
|
3
|
-
type
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
readonly document: {
|
|
7
|
-
readonly visibilityState: string;
|
|
8
|
-
};
|
|
9
|
-
readonly removeEventListener: (type: ResumeEvent, listener: () => void) => void;
|
|
10
|
-
}
|
|
11
|
-
export interface ResumeOptions {
|
|
12
|
-
readonly native?: ResumeSource;
|
|
13
|
-
readonly window?: ResumeWindow;
|
|
14
|
-
}
|
|
15
|
-
export declare const resumeSignal: ({ window, native }: ResumeOptions) => Atom.Atom<number>;
|
|
16
|
-
export {};
|
|
1
|
+
import { type ResumeOptions as ContractOptions, type ResumeSource as ContractSource, type ResumeWindow as ContractWindow } from "@shivaedev/effect-contract/resume.ts";
|
|
2
|
+
export type ResumeSource = ContractSource;
|
|
3
|
+
export type ResumeWindow = ContractWindow;
|
|
4
|
+
export type ResumeOptions = ContractOptions;
|
|
5
|
+
export declare function resumeSignal(options: ResumeOptions): import("effect/unstable/reactivity/Atom").Atom<number>;
|
|
17
6
|
//# sourceMappingURL=resume-signal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume-signal.d.ts","sourceRoot":"","sources":["../src/resume-signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"resume-signal.d.ts","sourceRoot":"","sources":["../src/resume-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,aAAa,IAAI,eAAe,EACrC,KAAK,YAAY,IAAI,cAAc,EACnC,KAAK,YAAY,IAAI,cAAc,EAEnC,MAAM,sCAAsC,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC;AAC1C,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC;AAC1C,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAC5C,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,0DAElD"}
|
package/dist/resume-signal.js
CHANGED
|
@@ -1,23 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
resume();
|
|
6
|
-
}
|
|
7
|
-
};
|
|
8
|
-
target.addEventListener(type, visible);
|
|
9
|
-
return () => target.removeEventListener(type, visible);
|
|
10
|
-
};
|
|
11
|
-
export const resumeSignal = ({ window, native }) => {
|
|
12
|
-
const browser = window === undefined ? [] : [whileVisible(window, "visibilitychange"), whileVisible(window, "online")];
|
|
13
|
-
const sources = native === undefined ? browser : [...browser, native];
|
|
14
|
-
return Atom.readable((get) => {
|
|
15
|
-
let count = 0;
|
|
16
|
-
const resume = () => get.setSelf(++count);
|
|
17
|
-
for (const source of sources) {
|
|
18
|
-
get.addFinalizer(source(resume));
|
|
19
|
-
}
|
|
20
|
-
return count;
|
|
21
|
-
});
|
|
22
|
-
};
|
|
1
|
+
import { resumeSignal as contractResumeSignal, } from "@shivaedev/effect-contract/resume.ts";
|
|
2
|
+
export function resumeSignal(options) {
|
|
3
|
+
return contractResumeSignal(options);
|
|
4
|
+
}
|
|
23
5
|
//# sourceMappingURL=resume-signal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume-signal.js","sourceRoot":"","sources":["../src/resume-signal.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"resume-signal.js","sourceRoot":"","sources":["../src/resume-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,YAAY,IAAI,oBAAoB,GACpC,MAAM,sCAAsC,CAAC;AAK9C,MAAM,UAAU,YAAY,CAAC,OAAsB;IAClD,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/save-state.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Option } from "effect";
|
|
2
|
-
import { FieldFailure, type Fields, type Form } from "@shivaedev/effect-form";
|
|
2
|
+
import { FieldFailure, type Fields, type Form } from "@shivaedev/effect-form/shape.ts";
|
|
3
3
|
export interface SaveState<E> {
|
|
4
4
|
readonly dirty: boolean;
|
|
5
5
|
readonly failure: Option.Option<E>;
|
package/dist/save-state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-state.d.ts","sourceRoot":"","sources":["../src/save-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"save-state.d.ts","sourceRoot":"","sources":["../src/save-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAW,MAAM,iCAAiC,CAAC;AAOhG,MAAM,WAAW,SAAS,CAAC,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EACtD,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,GAAG,SAAS,EAClD,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,KAC1B,SAAS,CAAC,CAAC,GAAG,EAAE,CA6BlB,CAAC"}
|
package/dist/save-state.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Option } from "effect";
|
|
|
3
3
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
4
4
|
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
5
5
|
import { useCallback, useContext, useEffect } from "react";
|
|
6
|
-
import { FieldFailure, Invalid } from "@shivaedev/effect-form";
|
|
6
|
+
import { FieldFailure, Invalid } from "@shivaedev/effect-form/shape.ts";
|
|
7
7
|
import { isUnauthorized } from "./result-state.js";
|
|
8
8
|
import { useSessionRecheck } from "./session-boundary.js";
|
|
9
9
|
const idle = Atom.make(AsyncResult.initial());
|
package/dist/save-state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-state.js","sourceRoot":"","sources":["../src/save-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAC;AACtE,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,YAAY,EAA0B,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"save-state.js","sourceRoot":"","sources":["../src/save-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAC;AACtE,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,YAAY,EAA0B,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAU/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAC3B,IAAkD,EAClD,OAA4B,EACR,EAAE;IACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAgE,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IAC/G,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACtB,SAAS,CACR,GAAG,EAAE,CACJ,IAAI;WACD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3C,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACF,CAAC,CAAC,EACH,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CACzB,CAAC;IACF,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7D,OAAO;QACR,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAmB,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC;IACnJ,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AACjE,CAAC,CAAC"}
|
package/dist/submission.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Effect, Schema } from "effect";
|
|
2
2
|
import type * as Atom from "effect/unstable/reactivity/Atom";
|
|
3
|
-
import {
|
|
3
|
+
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form/shape.ts";
|
|
4
4
|
import { type AtomServices, type RejectField } from "./field-rejection.ts";
|
|
5
5
|
export interface SubmissionConfig<F extends Fields, A, E, R, ER> {
|
|
6
6
|
readonly fields: Schema.Struct<F>;
|
package/dist/submission.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,KAAK,IAAI,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,KAAK,IAAI,MAAM,iCAAiC,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAa,MAAM,sBAAsB,CAAC;AAEtF,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACrD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjD;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAa1H,CAAC"}
|
package/dist/submission.js
CHANGED
package/dist/submission.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAEtD,OAAO,EAAuC,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAetF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAgC,MAAwC,EAA2B,EAAE;IAC9H,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAClD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAChE,IAAI,SAAiC,CAAC;IACtC,MAAM,IAAI,GAAqC,IAAI,CAAC,MAAM,EAAE;QAC3D,aAAa;QACb,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;YACzC,SAAS,GAAG,QAAQ,CAAC;YACrB,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChC,CAAC;QACD,OAAO;KACP,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AAC7C,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/effect-react",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "React query, action, editor and session hooks for native Effect atoms",
|
|
5
5
|
"homepage": "https://github.com/ShivaeDev/platform/tree/main/packages/effect-react#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"type": "module",
|
|
17
17
|
"imports": {
|
|
18
|
-
"#test/*": "./test/*",
|
|
18
|
+
"#test/*": "./src/test-support/*",
|
|
19
19
|
"#*.ts": {
|
|
20
20
|
"source": "./src/*.ts",
|
|
21
21
|
"types": "./dist/*.d.ts",
|
|
@@ -23,34 +23,35 @@
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"exports": {
|
|
26
|
-
"
|
|
27
|
-
"types": "./dist
|
|
28
|
-
"source": "./src
|
|
29
|
-
"import": "./dist
|
|
30
|
-
"default": "./dist
|
|
31
|
-
},
|
|
32
|
-
"./form": {
|
|
33
|
-
"types": "./dist/form.d.ts",
|
|
34
|
-
"source": "./src/form.ts",
|
|
35
|
-
"import": "./dist/form.js",
|
|
36
|
-
"default": "./dist/form.js"
|
|
26
|
+
"./*.ts": {
|
|
27
|
+
"types": "./dist/*.d.ts",
|
|
28
|
+
"source": "./src/*.ts",
|
|
29
|
+
"import": "./dist/*.js",
|
|
30
|
+
"default": "./dist/*.js"
|
|
37
31
|
},
|
|
38
32
|
"./package.json": "./package.json"
|
|
39
33
|
},
|
|
40
34
|
"files": [
|
|
41
35
|
"dist",
|
|
42
36
|
"src",
|
|
37
|
+
"!src/**/*.test.ts",
|
|
38
|
+
"!src/**/*.test.tsx",
|
|
39
|
+
"!src/**/*.spec.ts",
|
|
40
|
+
"!src/**/*.spec.tsx",
|
|
41
|
+
"!src/**/test-support",
|
|
43
42
|
"CHANGELOG.md",
|
|
44
43
|
"README.md"
|
|
45
44
|
],
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@shivaedev/effect-contract": "0.4.0"
|
|
47
|
+
},
|
|
46
48
|
"devDependencies": {
|
|
47
49
|
"@effect/atom-react": "4.0.0-rc.112",
|
|
48
50
|
"@effect/sql-sqlite-node": "4.0.0-rc.112",
|
|
49
|
-
"@shivaedev/effect-
|
|
50
|
-
"@shivaedev/effect-
|
|
51
|
-
"@shivaedev/effect-
|
|
52
|
-
"@shivaedev/
|
|
53
|
-
"@shivaedev/quality": "0.7.3",
|
|
51
|
+
"@shivaedev/effect-form": "0.2.0",
|
|
52
|
+
"@shivaedev/effect-service": "0.2.0",
|
|
53
|
+
"@shivaedev/effect-sql": "0.2.0",
|
|
54
|
+
"@shivaedev/quality": "0.15.0",
|
|
54
55
|
"@types/node": "24.10.1",
|
|
55
56
|
"@types/react": "19.2.18",
|
|
56
57
|
"@types/react-dom": "19.2.4",
|
|
@@ -60,11 +61,11 @@
|
|
|
60
61
|
"react": "19.2.8",
|
|
61
62
|
"react-dom": "19.2.8",
|
|
62
63
|
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
63
|
-
"vitest": "4.1.
|
|
64
|
+
"vitest": "4.1.11"
|
|
64
65
|
},
|
|
65
66
|
"peerDependencies": {
|
|
66
67
|
"@effect/atom-react": "4.0.0-rc.112",
|
|
67
|
-
"@shivaedev/effect-form": "0.
|
|
68
|
+
"@shivaedev/effect-form": "0.2.0",
|
|
68
69
|
"effect": "4.0.0-rc.112",
|
|
69
70
|
"react": "19.2.8"
|
|
70
71
|
},
|
package/src/create.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Effect, Equal, Option, type Schema } from "effect";
|
|
2
2
|
import type * as Atom from "effect/unstable/reactivity/Atom";
|
|
3
3
|
import { useCallback, useState } from "react";
|
|
4
|
-
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form";
|
|
4
|
+
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form/shape.ts";
|
|
5
5
|
import type { AtomServices, FieldRejectionMapping } from "./field-rejection.ts";
|
|
6
6
|
import { type SaveState, useSaveState } from "./save-state.ts";
|
|
7
7
|
import { submission } from "./submission.ts";
|
package/src/editor.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type Effect, Option, type Schema } from "effect";
|
|
|
2
2
|
import type * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
3
3
|
import type * as Atom from "effect/unstable/reactivity/Atom";
|
|
4
4
|
import { useCallback, useEffect, useState } from "react";
|
|
5
|
-
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form";
|
|
5
|
+
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form/shape.ts";
|
|
6
6
|
import type { AtomServices, FieldRejectionMapping } from "./field-rejection.ts";
|
|
7
7
|
import { type QueryState, useQuery } from "./result-state.ts";
|
|
8
8
|
import { type SaveState, useSaveState } from "./save-state.ts";
|
package/src/field-rejection.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Effect, Predicate, type Schema, type Scope } from "effect";
|
|
2
2
|
import type { AtomRegistry } from "effect/unstable/reactivity/AtomRegistry";
|
|
3
3
|
import type { Reactivity } from "effect/unstable/reactivity/Reactivity";
|
|
4
|
-
import type { FieldFailure, Fields, Name, Submitter } from "@shivaedev/effect-form";
|
|
4
|
+
import type { FieldFailure, Fields, Name, Submitter } from "@shivaedev/effect-form/shape.ts";
|
|
5
5
|
|
|
6
6
|
export interface FieldRejection<N extends string> {
|
|
7
7
|
readonly field: N;
|
package/src/resume-signal.ts
CHANGED
|
@@ -1,41 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import {
|
|
2
|
+
type ResumeOptions as ContractOptions,
|
|
3
|
+
type ResumeSource as ContractSource,
|
|
4
|
+
type ResumeWindow as ContractWindow,
|
|
5
|
+
resumeSignal as contractResumeSignal,
|
|
6
|
+
} from "@shivaedev/effect-contract/resume.ts";
|
|
7
|
+
|
|
8
|
+
export type ResumeSource = ContractSource;
|
|
9
|
+
export type ResumeWindow = ContractWindow;
|
|
10
|
+
export type ResumeOptions = ContractOptions;
|
|
11
|
+
export function resumeSignal(options: ResumeOptions) {
|
|
12
|
+
return contractResumeSignal(options);
|
|
11
13
|
}
|
|
12
|
-
|
|
13
|
-
export interface ResumeOptions {
|
|
14
|
-
readonly native?: ResumeSource;
|
|
15
|
-
readonly window?: ResumeWindow;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const whileVisible =
|
|
19
|
-
(target: ResumeWindow, type: ResumeEvent): ResumeSource =>
|
|
20
|
-
(resume) => {
|
|
21
|
-
const visible = () => {
|
|
22
|
-
if (target.document.visibilityState === "visible") {
|
|
23
|
-
resume();
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
target.addEventListener(type, visible);
|
|
27
|
-
return () => target.removeEventListener(type, visible);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const resumeSignal = ({ window, native }: ResumeOptions): Atom.Atom<number> => {
|
|
31
|
-
const browser = window === undefined ? [] : [whileVisible(window, "visibilitychange"), whileVisible(window, "online")];
|
|
32
|
-
const sources = native === undefined ? browser : [...browser, native];
|
|
33
|
-
return Atom.readable((get) => {
|
|
34
|
-
let count = 0;
|
|
35
|
-
const resume = () => get.setSelf(++count);
|
|
36
|
-
for (const source of sources) {
|
|
37
|
-
get.addFinalizer(source(resume));
|
|
38
|
-
}
|
|
39
|
-
return count;
|
|
40
|
-
});
|
|
41
|
-
};
|
package/src/save-state.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Option } from "effect";
|
|
|
3
3
|
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
|
|
4
4
|
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
5
5
|
import { useCallback, useContext, useEffect } from "react";
|
|
6
|
-
import { FieldFailure, type Fields, type Form, Invalid } from "@shivaedev/effect-form";
|
|
6
|
+
import { FieldFailure, type Fields, type Form, Invalid } from "@shivaedev/effect-form/shape.ts";
|
|
7
7
|
import { isUnauthorized } from "./result-state.ts";
|
|
8
8
|
import { useSessionRecheck } from "./session-boundary.ts";
|
|
9
9
|
|
package/src/submission.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Effect, Schema } from "effect";
|
|
2
2
|
import type * as Atom from "effect/unstable/reactivity/Atom";
|
|
3
|
-
import {
|
|
3
|
+
import { make } from "@shivaedev/effect-form/form.ts";
|
|
4
|
+
import type { Decoded, Encoded, FieldFailure, Fields, Form, Services } from "@shivaedev/effect-form/shape.ts";
|
|
4
5
|
import { type AtomServices, type RejectField, rejecting } from "./field-rejection.ts";
|
|
5
6
|
|
|
6
7
|
export interface SubmissionConfig<F extends Fields, A, E, R, ER> {
|
package/dist/form.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type { Create, CreateConfig } from "./create.ts";
|
|
2
|
-
export { useCreate } from "./create.ts";
|
|
3
|
-
export type { Editor, EditorConfig } from "./editor.ts";
|
|
4
|
-
export { useEditor } from "./editor.ts";
|
|
5
|
-
export type { FieldRejection, FieldRejectionMapping, RejectField } from "./field-rejection.ts";
|
|
6
|
-
export type { SaveState } from "./save-state.ts";
|
|
7
|
-
//# sourceMappingURL=form.d.ts.map
|
package/dist/form.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/F,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/form.js
DELETED
package/dist/form.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type { ActionState, QueryState, ResultState } from "./result-state.ts";
|
|
2
|
-
export { isUnauthorized, useAction, useQuery } from "./result-state.ts";
|
|
3
|
-
export type { ResumeOptions, ResumeSource, ResumeWindow } from "./resume-signal.ts";
|
|
4
|
-
export { resumeSignal } from "./resume-signal.ts";
|
|
5
|
-
export type { SessionBoundaryProps } from "./session-boundary.ts";
|
|
6
|
-
export { SessionBoundary, useSessionRecheck } from "./session-boundary.ts";
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/src/form.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export type { Create, CreateConfig } from "./create.ts";
|
|
2
|
-
export { useCreate } from "./create.ts";
|
|
3
|
-
export type { Editor, EditorConfig } from "./editor.ts";
|
|
4
|
-
export { useEditor } from "./editor.ts";
|
|
5
|
-
export type { FieldRejection, FieldRejectionMapping, RejectField } from "./field-rejection.ts";
|
|
6
|
-
export type { SaveState } from "./save-state.ts";
|
package/src/index.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export type { ActionState, QueryState, ResultState } from "./result-state.ts";
|
|
2
|
-
export { isUnauthorized, useAction, useQuery } from "./result-state.ts";
|
|
3
|
-
export type { ResumeOptions, ResumeSource, ResumeWindow } from "./resume-signal.ts";
|
|
4
|
-
export { resumeSignal } from "./resume-signal.ts";
|
|
5
|
-
export type { SessionBoundaryProps } from "./session-boundary.ts";
|
|
6
|
-
export { SessionBoundary, useSessionRecheck } from "./session-boundary.ts";
|