|
9084 | 9084 | });
|
9085 | 9085 |
|
9086 | 9086 | // pages/new-tab/app/burning/BurnProvider.js
|
9087 |
| - function BurnProvider({ children, service }) { |
| 9087 | + function BurnProvider({ children, service, showBurnAnimation = true }) { |
9088 | 9088 | const burning = useSignal(
|
9089 | 9089 | /** @type {string[]} */
|
9090 | 9090 | []
|
|
9149 | 9149 | cancelled = true;
|
9150 | 9150 | };
|
9151 | 9151 | });
|
9152 |
| - y2(() => { |
9153 |
| - const handler = (e4) => { |
9154 |
| - if (e4.detail.url) { |
| 9152 | + const doneBurning = q2( |
| 9153 | + (url7) => { |
| 9154 | + if (url7) { |
9155 | 9155 | r3(() => {
|
9156 |
| - burning.value = burning.value.filter((x3) => x3 !== e4.detail.url); |
9157 |
| - exiting.value = exiting.value.concat(e4.detail.url); |
| 9156 | + burning.value = burning.value.filter((x3) => x3 !== url7); |
| 9157 | + exiting.value = exiting.value.concat(url7); |
9158 | 9158 | });
|
9159 | 9159 | }
|
9160 |
| - }; |
9161 |
| - window.addEventListener("done-burning", handler); |
9162 |
| - return () => { |
9163 |
| - window.removeEventListener("done-burning", handler); |
9164 |
| - }; |
9165 |
| - }, [burning, exiting]); |
9166 |
| - return /* @__PURE__ */ _(ActivityBurningSignalContext.Provider, { value: { burning, exiting, animation } }, /* @__PURE__ */ _(ActivityInteractionsContext.Provider, { value: { didClick } }, children)); |
| 9160 | + }, |
| 9161 | + [burning, exiting] |
| 9162 | + ); |
| 9163 | + return /* @__PURE__ */ _(ActivityBurningSignalContext.Provider, { value: { burning, exiting, animation, showBurnAnimation, doneBurning } }, /* @__PURE__ */ _(ActivityInteractionsContext.Provider, { value: { didClick } }, children)); |
9167 | 9164 | }
|
9168 | 9165 | function toPromise(fn2) {
|
9169 | 9166 | return new Promise((resolve) => {
|
|
9284 | 9281 | /** @type {import("@preact/signals").Signal<string[]>} */
|
9285 | 9282 | exiting: d3([]),
|
9286 | 9283 | /** @type {import("@preact/signals").Signal<{state: 'loading' | 'ready' | 'error', data: null | Record<string, any>}>} */
|
9287 |
| - animation: d3({ state: "loading", data: null }) |
| 9284 | + animation: d3({ state: "loading", data: null }), |
| 9285 | + /** @type {boolean} */ |
| 9286 | + showBurnAnimation: true, |
| 9287 | + /** @type {(url: string) => void} */ |
| 9288 | + doneBurning: (_url) => { |
| 9289 | + } |
9288 | 9290 | });
|
9289 | 9291 | }
|
9290 | 9292 | });
|
|
25940 | 25942 | __export(BurnAnimationLottieWeb_exports, {
|
25941 | 25943 | BurnAnimation: () => BurnAnimation
|
25942 | 25944 | });
|
25943 |
| - function BurnAnimation({ url: url7 }) { |
| 25945 | + function BurnAnimation({ url: url7, doneBurning }) { |
25944 | 25946 | const ref = A2(
|
25945 | 25947 | /** @type {Lottie} */
|
25946 | 25948 | null
|
|
25950 | 25952 | if (!ref.current) return;
|
25951 | 25953 | let finished = false;
|
25952 | 25954 | let timer2 = null;
|
25953 |
| - const publish = (reason) => { |
| 25955 | + const publish = (_reason) => { |
25954 | 25956 | if (finished) return;
|
25955 |
| - window.dispatchEvent(new CustomEvent("done-burning", { detail: { url: url7, reason } })); |
| 25957 | + doneBurning(url7); |
25956 | 25958 | finished = true;
|
25957 | 25959 | clearTimeout(timer2);
|
25958 | 25960 | };
|
|
25977 | 25979 | publish("unmount occurred");
|
25978 | 25980 | }
|
25979 | 25981 | };
|
25980 |
| - }, [url7, json]); |
| 25982 | + }, [url7, json, doneBurning]); |
25981 | 25983 | return /* @__PURE__ */ _("div", { ref, "data-lottie-player": true });
|
25982 | 25984 | }
|
25983 | 25985 | var import_lottie_web;
|
|
25997 | 25999 | /** @type {HTMLDivElement|null} */
|
25998 | 26000 | null
|
25999 | 26001 | );
|
26000 |
| - const { exiting, burning } = x2(ActivityBurningSignalContext); |
| 26002 | + const { exiting, burning, showBurnAnimation, doneBurning } = x2(ActivityBurningSignalContext); |
26001 | 26003 | const isBurning = useComputed(() => burning.value.some((x3) => x3 === url7));
|
26002 | 26004 | const isExiting = useComputed(() => exiting.value.some((x3) => x3 === url7));
|
26003 | 26005 | _2(() => {
|
|
26039 | 26041 | canceled = true;
|
26040 | 26042 | };
|
26041 | 26043 | }, [isBurning.value, isExiting.value, url7]);
|
26042 |
| - return /* @__PURE__ */ _("div", { class: (0, import_classnames13.default)(Activity_default.anim, isBurning.value && Activity_default.burning), ref }, !isExiting.value && children, !isExiting.value && isBurning.value && /* @__PURE__ */ _(P3, { fallback: null }, /* @__PURE__ */ _(BurnAnimationLazy, { url: url7 }))); |
| 26044 | + return /* @__PURE__ */ _("div", { class: (0, import_classnames13.default)(Activity_default.anim, isBurning.value && Activity_default.burning), ref }, !isExiting.value && children, !isExiting.value && isBurning.value && showBurnAnimation && /* @__PURE__ */ _(P3, { fallback: null }, /* @__PURE__ */ _(BurnAnimationLazy, { url: url7, doneBurning })), !isExiting.value && isBurning.value && !showBurnAnimation && /* @__PURE__ */ _(NullBurner, { url: url7, doneBurning })); |
| 26045 | + } |
| 26046 | + function NullBurner({ url: url7, doneBurning }) { |
| 26047 | + y2(() => doneBurning(url7), [url7]); |
| 26048 | + return null; |
26043 | 26049 | }
|
26044 | 26050 | var import_classnames13, BurnAnimationLazy;
|
26045 | 26051 | var init_ActivityItemAnimationWrapper = __esm({
|
|
26191 | 26197 | });
|
26192 | 26198 | return /* @__PURE__ */ _(Activity, { batched, itemCount: itemCount.value }, children);
|
26193 | 26199 | }
|
26194 |
| - function ActivityConsumer() { |
| 26200 | + function ActivityConsumer({ showBurnAnimation }) { |
26195 | 26201 | const { state } = x2(ActivityContext);
|
26196 | 26202 | const service = x2(ActivityServiceContext);
|
26197 | 26203 | const platformName = usePlatformName();
|
|
26200 | 26206 | if (platformName === "windows") {
|
26201 | 26207 | return /* @__PURE__ */ _(SignalStateProvider, null, /* @__PURE__ */ _(ActivityConfigured, null, /* @__PURE__ */ _(ActivityBody, { canBurn: false, visibility })));
|
26202 | 26208 | }
|
26203 |
| - return /* @__PURE__ */ _(SignalStateProvider, null, /* @__PURE__ */ _(BurnProvider, { service }, /* @__PURE__ */ _(ActivityConfigured, null, /* @__PURE__ */ _(ActivityBody, { canBurn: true, visibility })))); |
| 26209 | + return /* @__PURE__ */ _(SignalStateProvider, null, /* @__PURE__ */ _(BurnProvider, { service, showBurnAnimation }, /* @__PURE__ */ _(ActivityConfigured, null, /* @__PURE__ */ _(ActivityBody, { canBurn: true, visibility })))); |
26204 | 26210 | }
|
26205 | 26211 | return null;
|
26206 | 26212 | }
|
|
26620 | 26626 | feed: config.feed,
|
26621 | 26627 | setFeed
|
26622 | 26628 | },
|
26623 |
| - config.feed === "activity" && /* @__PURE__ */ _(ActivityProvider, null, /* @__PURE__ */ _(ActivityConsumer, null)), |
| 26629 | + config.feed === "activity" && /* @__PURE__ */ _(ActivityProvider, null, /* @__PURE__ */ _(ActivityConsumer, { showBurnAnimation: config.showBurnAnimation ?? true })), |
26624 | 26630 | config.feed === "privacy-stats" && /* @__PURE__ */ _(PrivacyStatsProvider, null, /* @__PURE__ */ _(BodyExpanderProvider, null, /* @__PURE__ */ _(PrivacyStatsConsumer, null)))
|
26625 | 26631 | );
|
26626 | 26632 | }
|
|
32421 | 32427 | if (url4.searchParams.get("protections.feed") === "activity") {
|
32422 | 32428 | config.feed = "activity";
|
32423 | 32429 | }
|
| 32430 | + if (url4.searchParams.get("protections.burn") === "false") { |
| 32431 | + config.showBurnAnimation = false; |
| 32432 | + } |
32424 | 32433 | return Promise.resolve(config);
|
32425 | 32434 | }
|
32426 | 32435 | default: {
|
|
0 commit comments