@effect-app/vue 2.54.3 → 2.54.4
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 +6 -0
- package/dist/experimental/commander.d.ts +1 -1
- package/dist/experimental/toast.d.ts +3 -3
- package/dist/experimental/toast.d.ts.map +1 -1
- package/dist/experimental/toast.js +8 -6
- package/dist/experimental/withToast.d.ts.map +1 -1
- package/dist/experimental/withToast.js +7 -6
- package/package.json +1 -1
- package/src/experimental/toast.ts +9 -7
- package/src/experimental/withToast.ts +7 -5
package/CHANGELOG.md
CHANGED
|
@@ -151,7 +151,7 @@ declare const Commander_base: Effect.Service.Class<Commander, "Commander", {
|
|
|
151
151
|
*/
|
|
152
152
|
fn: <RT>(runtime: Runtime.Runtime<RT>) => (actionName: string) => Commander.Gen<RT> & Commander.NonGen<RT>;
|
|
153
153
|
alt: <RT>(runtime: Runtime.Runtime<RT>) => (actionName: string) => <Args extends Array<any>, A, E, R extends RT | CommandContext>(handler: (...args: Args) => Effect.Effect<A, E, R>) => Commander.CommandOut<Args, A, E>;
|
|
154
|
-
}, never,
|
|
154
|
+
}, never, I18n | Confirm | WithToast>;
|
|
155
155
|
}>;
|
|
156
156
|
export declare class Commander extends Commander_base {
|
|
157
157
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Context, Effect } from "effect-app";
|
|
2
2
|
export type ToastId = string | number;
|
|
3
3
|
export type ToastOpts = {
|
|
4
|
-
id?: ToastId
|
|
4
|
+
id?: ToastId;
|
|
5
5
|
timeout?: number;
|
|
6
6
|
};
|
|
7
7
|
export type ToastOptsInternal = {
|
|
8
|
-
id?: ToastId |
|
|
8
|
+
id?: ToastId | null;
|
|
9
9
|
timeout?: number;
|
|
10
10
|
};
|
|
11
11
|
export type UseToast = () => {
|
|
@@ -30,7 +30,7 @@ declare const CurrentToastId_base: (abstract new (service: {
|
|
|
30
30
|
} & {
|
|
31
31
|
use: <X>(body: (_: {
|
|
32
32
|
toastId: ToastId;
|
|
33
|
-
}) => X) => X extends Effect.Effect<infer A, infer E, infer R_2> ? Effect.Effect<A, E,
|
|
33
|
+
}) => X) => X extends Effect.Effect<infer A, infer E, infer R_2> ? Effect.Effect<A, E, R_2 | CurrentToastId> : Effect.Effect<X, never, CurrentToastId>;
|
|
34
34
|
};
|
|
35
35
|
export declare class CurrentToastId extends CurrentToastId_base {
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/experimental/toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAU,MAAM,YAAY,CAAA;AAEpD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AACrC,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,CAAC,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/experimental/toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAU,MAAM,YAAY,CAAA;AAEpD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AACrC,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAC1D,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzE,MAAM,MAAM,QAAQ,GAAG,MAAM;IAC3B,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,OAAO,CAAA;IACpE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,OAAO,CAAA;IACtE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,OAAO,CAAA;IACtE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,OAAO,CAAA;IACnE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C,CAAA;;aAE8F,OAAO;;aAAP,OAAO;;aAAP,OAAO;;;;;;;;;iBAAP,OAAO;;;AAAtG,qBAAa,cAAe,SAAQ,mBAAuE;CAAG;AAE9G,+FAA+F;AAC/F,eAAO,MAAM,IAAI,GAAI,OAAO,UAAU,CAAC,QAAQ,CAAC;qBAE3B,MAAM,YAAY,iBAAiB;oBAAnC,MAAM,YAAY,iBAAiB;uBAAnC,MAAM,YAAY,iBAAiB;uBAAnC,MAAM,YAAY,iBAAiB;uBAmBjC,OAAO;CAE7B,CAAA;;qBArBoB,MAAM,YAAY,iBAAiB;oBAAnC,MAAM,YAAY,iBAAiB;uBAAnC,MAAM,YAAY,iBAAiB;uBAAnC,MAAM,YAAY,iBAAiB;uBAmBjC,OAAO;;qBAnBT,MAAM,YAAY,iBAAiB;oBAAnC,MAAM,YAAY,iBAAiB;uBAAnC,MAAM,YAAY,iBAAiB;uBAAnC,MAAM,YAAY,iBAAiB;uBAmBjC,OAAO;;qBAnBT,MAAM,YAAY,iBAAiB;oBAAnC,MAAM,YAAY,iBAAiB;uBAAnC,MAAM,YAAY,iBAAiB;uBAAnC,MAAM,YAAY,iBAAiB;uBAmBjC,OAAO;;;;;;;;;;;;;yBAnBT,MAAM,YAAY,iBAAiB;wBAAnC,MAAM,YAAY,iBAAiB;2BAAnC,MAAM,YAAY,iBAAiB;2BAAnC,MAAM,YAAY,iBAAiB;2BAmBjC,OAAO;;;AAI9B,qBAAa,KAAM,SAAQ,UAAwD;CAClF"}
|
|
@@ -4,11 +4,13 @@ export class CurrentToastId extends Context.TagId("CurrentToastId")() {
|
|
|
4
4
|
/** fallback to CurrentToastId when available unless id is explicitly set to a value or null */
|
|
5
5
|
export const wrap = (toast) => {
|
|
6
6
|
const wrap = (toastHandler) => {
|
|
7
|
-
return (message, options) => Effect.serviceOption(CurrentToastId).pipe(Effect.
|
|
8
|
-
...options
|
|
9
|
-
|
|
10
|
-
?
|
|
11
|
-
: Option.getOrUndefined(Option.map(currentToast, (_) => _.toastId))
|
|
7
|
+
return (message, options) => Effect.serviceOption(CurrentToastId).pipe(Effect.flatMap((currentToast) => Effect.sync(() => {
|
|
8
|
+
const { id: _id, ...rest } = options ?? {};
|
|
9
|
+
const id = _id !== undefined
|
|
10
|
+
? _id ?? undefined
|
|
11
|
+
: Option.getOrUndefined(Option.map(currentToast, (_) => _.toastId));
|
|
12
|
+
// when id is undefined, we may end up with no toast at all..
|
|
13
|
+
return toastHandler(message, id !== undefined ? { ...rest, id } : rest);
|
|
12
14
|
})));
|
|
13
15
|
};
|
|
14
16
|
return {
|
|
@@ -21,4 +23,4 @@ export const wrap = (toast) => {
|
|
|
21
23
|
};
|
|
22
24
|
export class Toast extends Context.TagId("Toast")() {
|
|
23
25
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwZXJpbWVudGFsL3RvYXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQWNwRCxNQUFNLE9BQU8sY0FBZSxTQUFRLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBd0M7Q0FBRztBQUU5RywrRkFBK0Y7QUFDL0YsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBMkIsRUFBRSxFQUFFO0lBQ2xELE1BQU0sSUFBSSxHQUFHLENBQUMsWUFBK0QsRUFBRSxFQUFFO1FBQy9FLE9BQU8sQ0FBQyxPQUFlLEVBQUUsT0FBMkIsRUFBRSxFQUFFLENBQ3RELE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUN2QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDZixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUE7WUFDMUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxLQUFLLFNBQVM7Z0JBQzFCLENBQUMsQ0FBQyxHQUFHLElBQUksU0FBUztnQkFDbEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1lBQ3JFLDZEQUE2RDtZQUM3RCxPQUFPLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekUsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFBO0lBQ0wsQ0FBQyxDQUFBO0lBQ0QsT0FBTztRQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM1QixPQUFPLEVBQUUsQ0FBQyxPQUFnQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDekUsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sT0FBTyxLQUFNLFNBQVEsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBa0M7Q0FDbEYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withToast.d.ts","sourceRoot":"","sources":["../../src/experimental/withToast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAkB,KAAK,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GAAG,IAAI,CAAA;IACtD,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GAAG,IAAI,CAAA;IAC5D,SAAS,EACL,MAAM,GACN,CAAC,CACD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACvB,GAAG,IAAI,EAAE,IAAI,KACV,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC9D;;qCAMW,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,WACzC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;;AAJvC,qBAAa,SAAU,SAAQ,
|
|
1
|
+
{"version":3,"file":"withToast.d.ts","sourceRoot":"","sources":["../../src/experimental/withToast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAkB,KAAK,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GAAG,IAAI,CAAA;IACtD,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GAAG,IAAI,CAAA;IAC5D,SAAS,EACL,MAAM,GACN,CAAC,CACD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACvB,GAAG,IAAI,EAAE,IAAI,KACV,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC9D;;qCAMW,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,WACzC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;;AAJvC,qBAAa,SAAU,SAAQ,cA6C7B;CAAG"}
|
|
@@ -15,7 +15,7 @@ export class WithToast extends Effect.Service()("WithToast", {
|
|
|
15
15
|
);
|
|
16
16
|
return yield* self.pipe(Effect.tap((a) => options.onSuccess === null ? Effect.void : toast.success(typeof options.onSuccess === "string"
|
|
17
17
|
? options.onSuccess
|
|
18
|
-
: options.onSuccess(a, ...args), { id: toastId, timeout: baseTimeout })), Effect.tapErrorCause(Effect.fnUntraced(function* (cause) {
|
|
18
|
+
: options.onSuccess(a, ...args), toastId !== undefined ? { id: toastId, timeout: baseTimeout } : { timeout: baseTimeout })), Effect.tapErrorCause(Effect.fnUntraced(function* (cause) {
|
|
19
19
|
if (Cause.isInterruptedOnly(cause)) {
|
|
20
20
|
if (toastId)
|
|
21
21
|
yield* toast.dismiss(toastId);
|
|
@@ -24,15 +24,16 @@ export class WithToast extends Effect.Service()("WithToast", {
|
|
|
24
24
|
const t = typeof options.onFailure === "string"
|
|
25
25
|
? options.onFailure
|
|
26
26
|
: options.onFailure(Cause.failureOption(cause), ...args);
|
|
27
|
+
const opts = { timeout: baseTimeout * 2 };
|
|
27
28
|
if (typeof t === "object") {
|
|
28
29
|
return t.level === "warn"
|
|
29
|
-
? yield* toast.warning(t.message, { id: toastId
|
|
30
|
-
: yield* toast.error(t.message, { id: toastId
|
|
30
|
+
? yield* toast.warning(t.message, toastId !== undefined ? { ...opts, id: toastId } : opts)
|
|
31
|
+
: yield* toast.error(t.message, toastId !== undefined ? { ...opts, id: toastId } : opts);
|
|
31
32
|
}
|
|
32
|
-
yield* toast.error(t, { id: toastId
|
|
33
|
-
})), toastId ? Effect.provideService(CurrentToastId, CurrentToastId.of({ toastId })) : (_) => _);
|
|
33
|
+
yield* toast.error(t, toastId !== undefined ? { ...opts, id: toastId } : opts);
|
|
34
|
+
})), toastId !== undefined ? Effect.provideService(CurrentToastId, CurrentToastId.of({ toastId })) : (_) => _);
|
|
34
35
|
});
|
|
35
36
|
})
|
|
36
37
|
}) {
|
|
37
38
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cGVyaW1lbnRhbC93aXRoVG9hc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxZQUFZLENBQUE7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFjbEQsbUVBQW1FO0FBQ25FLE1BQU0sT0FBTyxTQUFVLFNBQVEsTUFBTSxDQUFDLE9BQU8sRUFBYSxDQUFDLFdBQVcsRUFBRTtJQUN0RSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQzFCLE9BQU8sQ0FDTCxPQUFpQyxFQUNqQyxFQUFFLENBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUE0QixFQUFFLEdBQUcsSUFBVTtZQUNyRSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQTtZQUM1QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUN4RSxXQUFXO1lBQ1gsT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVE7Z0JBQ25DLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDbkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDOUIseUJBQXlCO2FBQzFCLENBQUE7WUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNmLE9BQU8sQ0FB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
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Context, Effect, Option } from "effect-app"
|
|
2
2
|
|
|
3
3
|
export type ToastId = string | number
|
|
4
|
-
export type ToastOpts = { id?: ToastId
|
|
5
|
-
export type ToastOptsInternal = { id?: ToastId |
|
|
4
|
+
export type ToastOpts = { id?: ToastId; timeout?: number }
|
|
5
|
+
export type ToastOptsInternal = { id?: ToastId | null; timeout?: number }
|
|
6
6
|
|
|
7
7
|
export type UseToast = () => {
|
|
8
8
|
error: (this: void, message: string, options?: ToastOpts) => ToastId
|
|
@@ -19,12 +19,14 @@ export const wrap = (toast: ReturnType<UseToast>) => {
|
|
|
19
19
|
const wrap = (toastHandler: (message: string, options?: ToastOpts) => ToastId) => {
|
|
20
20
|
return (message: string, options?: ToastOptsInternal) =>
|
|
21
21
|
Effect.serviceOption(CurrentToastId).pipe(
|
|
22
|
-
Effect.
|
|
23
|
-
|
|
24
|
-
...options
|
|
25
|
-
|
|
26
|
-
?
|
|
22
|
+
Effect.flatMap((currentToast) =>
|
|
23
|
+
Effect.sync(() => {
|
|
24
|
+
const { id: _id, ...rest } = options ?? {}
|
|
25
|
+
const id = _id !== undefined
|
|
26
|
+
? _id ?? undefined
|
|
27
27
|
: Option.getOrUndefined(Option.map(currentToast, (_) => _.toastId))
|
|
28
|
+
// when id is undefined, we may end up with no toast at all..
|
|
29
|
+
return toastHandler(message, id !== undefined ? { ...rest, id } : rest)
|
|
28
30
|
})
|
|
29
31
|
)
|
|
30
32
|
)
|
|
@@ -35,7 +35,7 @@ export class WithToast extends Effect.Service<WithToast>()("WithToast", {
|
|
|
35
35
|
typeof options.onSuccess === "string"
|
|
36
36
|
? options.onSuccess
|
|
37
37
|
: options.onSuccess(a, ...args),
|
|
38
|
-
{ id: toastId, timeout: baseTimeout }
|
|
38
|
+
toastId !== undefined ? { id: toastId, timeout: baseTimeout } : { timeout: baseTimeout }
|
|
39
39
|
)
|
|
40
40
|
),
|
|
41
41
|
Effect.tapErrorCause(Effect.fnUntraced(function*(cause) {
|
|
@@ -46,14 +46,16 @@ export class WithToast extends Effect.Service<WithToast>()("WithToast", {
|
|
|
46
46
|
const t = typeof options.onFailure === "string"
|
|
47
47
|
? options.onFailure
|
|
48
48
|
: options.onFailure(Cause.failureOption(cause), ...args)
|
|
49
|
+
const opts = { timeout: baseTimeout * 2 }
|
|
50
|
+
|
|
49
51
|
if (typeof t === "object") {
|
|
50
52
|
return t.level === "warn"
|
|
51
|
-
? yield* toast.warning(t.message, { id: toastId
|
|
52
|
-
: yield* toast.error(t.message, { id: toastId
|
|
53
|
+
? yield* toast.warning(t.message, toastId !== undefined ? { ...opts, id: toastId } : opts)
|
|
54
|
+
: yield* toast.error(t.message, toastId !== undefined ? { ...opts, id: toastId } : opts)
|
|
53
55
|
}
|
|
54
|
-
yield* toast.error(t, { id: toastId
|
|
56
|
+
yield* toast.error(t, toastId !== undefined ? { ...opts, id: toastId } : opts)
|
|
55
57
|
})),
|
|
56
|
-
toastId ? Effect.provideService(CurrentToastId, CurrentToastId.of({ toastId })) : (_) => _
|
|
58
|
+
toastId !== undefined ? Effect.provideService(CurrentToastId, CurrentToastId.of({ toastId })) : (_) => _
|
|
57
59
|
)
|
|
58
60
|
})
|
|
59
61
|
})
|