@solid-primitives/page-visibility
Advanced tools
Comparing version
@@ -1,3 +0,2 @@ | ||
import { Accessor } from 'solid-js'; | ||
import { Accessor } from "solid-js"; | ||
/** | ||
@@ -15,3 +14,3 @@ * Creates a signal with a boolean value identifying the page visibility state. | ||
*/ | ||
declare const createPageVisibility: () => Accessor<boolean>; | ||
export declare const createPageVisibility: () => Accessor<boolean>; | ||
/** | ||
@@ -31,4 +30,2 @@ * Returns a signal with a boolean value identifying the page visibility state. | ||
*/ | ||
declare const usePageVisibility: () => Accessor<boolean>; | ||
export { createPageVisibility, usePageVisibility }; | ||
export declare const usePageVisibility: () => Accessor<boolean>; |
@@ -1,18 +0,41 @@ | ||
import { isServer } from 'solid-js/web'; | ||
import { createHydratableSingletonRoot } from '@solid-primitives/rootless'; | ||
import { trueFn, createHydratableSignal } from '@solid-primitives/utils'; | ||
import { makeEventListener } from '@solid-primitives/event-listener'; | ||
// src/index.ts | ||
var createPageVisibility = () => { | ||
if (isServer) { | ||
return trueFn; | ||
} | ||
const checkVisibility = () => document.visibilityState === "visible"; | ||
const [isVisible, setVisible] = createHydratableSignal(true, checkVisibility); | ||
makeEventListener(document, "visibilitychange", () => setVisible(checkVisibility)); | ||
return isVisible; | ||
import { isServer } from "solid-js/web"; | ||
import { createHydratableSingletonRoot } from "@solid-primitives/rootless"; | ||
import { createHydratableSignal, trueFn } from "@solid-primitives/utils"; | ||
import { makeEventListener } from "@solid-primitives/event-listener"; | ||
/** | ||
* Creates a signal with a boolean value identifying the page visibility state. | ||
* | ||
* @example | ||
* ```ts | ||
* const visible = createPageVisibility(); | ||
* | ||
* createEffect(() => { | ||
* visible() // => boolean | ||
* }) | ||
* ``` | ||
*/ | ||
export const createPageVisibility = () => { | ||
if (isServer) { | ||
return trueFn; | ||
} | ||
const checkVisibility = () => document.visibilityState === "visible"; | ||
const [isVisible, setVisible] = createHydratableSignal(true, checkVisibility); | ||
makeEventListener(document, "visibilitychange", () => setVisible(checkVisibility)); | ||
return isVisible; | ||
}; | ||
var usePageVisibility = /* @__PURE__ */ createHydratableSingletonRoot(createPageVisibility); | ||
export { createPageVisibility, usePageVisibility }; | ||
/** | ||
* Returns a signal with a boolean value identifying the page visibility state. | ||
* | ||
* This is a [singleton root primitive](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot) except if during hydration. | ||
* | ||
* @example | ||
* ```ts | ||
* const visible = usePageVisibility(); | ||
* | ||
* createEffect(() => { | ||
* visible() // => boolean | ||
* }) | ||
* ``` | ||
*/ | ||
export const usePageVisibility = | ||
/*#__PURE__*/ createHydratableSingletonRoot(createPageVisibility); |
{ | ||
"name": "@solid-primitives/page-visibility", | ||
"version": "2.0.17", | ||
"version": "2.1.0", | ||
"description": "Primitive to track page visibility", | ||
@@ -30,3 +30,2 @@ "author": "David Di Biase", | ||
"type": "module", | ||
"main": "./dist/index.cjs", | ||
"module": "./dist/index.js", | ||
@@ -36,9 +35,6 @@ "browser": {}, | ||
"exports": { | ||
"@solid-primitives/source": "./src/index.ts", | ||
"import": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/index.js" | ||
}, | ||
"require": { | ||
"types": "./dist/index.d.cts", | ||
"default": "./dist/index.cjs" | ||
} | ||
@@ -53,5 +49,5 @@ }, | ||
"dependencies": { | ||
"@solid-primitives/event-listener": "^2.3.3", | ||
"@solid-primitives/utils": "^6.2.3", | ||
"@solid-primitives/rootless": "^1.4.5" | ||
"@solid-primitives/event-listener": "^2.4.0", | ||
"@solid-primitives/rootless": "^1.5.0", | ||
"@solid-primitives/utils": "^6.3.0" | ||
}, | ||
@@ -58,0 +54,0 @@ "peerDependencies": { |
@@ -7,3 +7,2 @@ <p> | ||
[](https://turborepo.org/) | ||
[](https://bundlephobia.com/package/@solid-primitives/page-visibility) | ||
@@ -13,4 +12,4 @@ [](https://www.npmjs.com/package/@solid-primitives/page-visibility) | ||
- [`createPageVisibility`](#createPageVisibility) - Creates a signal with a boolean value identifying the page visibility state | ||
- [`usePageVisibility`](#usePageVisibility) - A [singleton root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot) alternative. | ||
- [`createPageVisibility`](#createpagevisibility) - Creates a signal with a boolean value identifying the page visibility state | ||
- [`usePageVisibility`](#usepagevisibility) - A [singleton root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot) alternative. | ||
@@ -17,0 +16,0 @@ ## Installation |
7008
-21.71%5
-37.5%70
-10.26%57
-1.72%