Skip to content

Commit 7a17e21

Browse files
authored
chore: remove managed_effect (#10926)
* chore: remove managed_effect * remove managed_pre_effect
1 parent bbd44e9 commit 7a17e21

File tree

3 files changed

+12
-54
lines changed

3 files changed

+12
-54
lines changed

packages/svelte/src/internal/client/dom/elements/bindings/media.js

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { hydrating } from '../../hydration.js';
2-
import { destroy_effect, managed_effect, render_effect } from '../../../reactivity/effects.js';
2+
import { render_effect, user_effect } from '../../../reactivity/effects.js';
33
import { listen } from './shared.js';
44

55
/** @param {TimeRanges} ranges */
@@ -115,48 +115,22 @@ export function bind_ready_state(media, update) {
115115
export function bind_playback_rate(media, get_value, update) {
116116
var updating = false;
117117

118-
var callback = () => {
119-
if (!updating) {
120-
update(media.playbackRate);
121-
}
122-
updating = false;
123-
};
124-
125118
// Needs to happen after the element is inserted into the dom, else playback will be set back to 1 by the browser.
126119
// For hydration we could do it immediately but the additional code is not worth the lost microtask.
120+
user_effect(() => {
121+
var value = get_value();
127122

128-
/** @type {import('#client').Effect | undefined} */
129-
var render;
130-
var destroyed = false;
131-
132-
var effect = managed_effect(() => {
133-
destroy_effect(effect);
134-
135-
if (destroyed) return;
136-
137-
if (get_value() == null) {
138-
callback();
123+
// through isNaN we also allow number strings, which is more robust
124+
if (!isNaN(/** @type {any} */ (value)) && value !== media.playbackRate) {
125+
updating = true;
126+
media.playbackRate = /** @type {number} */ (value);
139127
}
140128

141-
listen(media, ['ratechange'], callback, false);
142-
143-
render = render_effect(() => {
144-
var value = get_value();
145-
146-
// through isNaN we also allow number strings, which is more robust
147-
if (!isNaN(/** @type {any} */ (value)) && value !== media.playbackRate) {
148-
updating = true;
149-
media.playbackRate = /** @type {number} */ (value);
150-
}
129+
listen(media, ['ratechange'], () => {
130+
if (!updating) update(media.playbackRate);
131+
updating = false;
151132
});
152133
});
153-
154-
render_effect(() => () => {
155-
destroyed = true;
156-
if (render) {
157-
destroy_effect(render);
158-
}
159-
});
160134
}
161135

162136
/**

packages/svelte/src/internal/client/reactivity/effects.js

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -128,22 +128,6 @@ export function effect(fn) {
128128
return create_effect(EFFECT, fn, false);
129129
}
130130

131-
/**
132-
* @param {() => void | (() => void)} fn
133-
* @returns {import('#client').Effect}
134-
*/
135-
export function managed_effect(fn) {
136-
return create_effect(EFFECT | MANAGED, fn, false);
137-
}
138-
139-
/**
140-
* @param {() => void | (() => void)} fn
141-
* @returns {import('#client').Effect}
142-
*/
143-
export function managed_pre_effect(fn) {
144-
return create_effect(PRE_EFFECT | MANAGED, fn, false);
145-
}
146-
147131
/**
148132
* Internal representation of `$effect.pre(...)`
149133
* @param {() => void | (() => void)} fn

playgrounds/demo/src/entry-client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// @ts-ignore
2-
import { hydrate, unmount } from 'svelte';
2+
import { mount, unmount } from 'svelte';
33
// @ts-ignore you need to create this file
44
import App from './App.svelte';
5-
const component = hydrate(App, {
5+
const component = mount(App, {
66
target: document.getElementById('root')!
77
});
88
// @ts-ignore

0 commit comments

Comments
 (0)