22 lines
512 B
JavaScript
22 lines
512 B
JavaScript
import { untrack } from "svelte";
|
|
/**
|
|
* Returns an object with the mounted state of the component
|
|
* that invokes this function.
|
|
*
|
|
* @see {@link https://runed.dev/docs/utilities/is-mounted}
|
|
*/
|
|
export class IsMounted {
|
|
#isMounted = $state(false);
|
|
constructor() {
|
|
$effect(() => {
|
|
untrack(() => (this.#isMounted = true));
|
|
return () => {
|
|
this.#isMounted = false;
|
|
};
|
|
});
|
|
}
|
|
get current() {
|
|
return this.#isMounted;
|
|
}
|
|
}
|