Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@solid-primitives/active-element

Package Overview
Dependencies
Maintainers
3
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@solid-primitives/active-element

A reactive document.activeElement. Check which element is currently focused.

  • 2.0.20
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
392
decreased by-19.34%
Maintainers
3
Weekly downloads
 
Created
Source

Solid Primitives Active Element

@solid-primitives/active-element

turborepo size size stage

Non-reactive primitives:
Reactive primitives:
Directives:
  • focus - A directive that notifies you when the element becomes active or inactive.

Installation

npm install @solid-primitives/active-element
# or
yarn add @solid-primitives/active-element

makeActiveElementListener

Added id @2.0.0

Attaches event listeners to window, listening for the changes of the document.activeElement.

import { makeActiveElementListener } from "@solid-primitives/active-element";

const [activeElement, setActiveElement] = createSignal(null);
const clear = makeActiveElementListener(el => setActiveElement(el));

// remove listeners (happens also on cleanup)
clear();
Definition
function makeActiveElementListener(callback: (element: Element | null) => void): VoidFunction;

makeFocusListener

Added id @2.0.0

Attaches "blur" and "focus" event listeners to the element.

import { makeFocusListener } from "@solid-primitives/active-element";

const [isFocused, setIsFocused] = createSignal(false);
const clear = makeFocusListener(focused => setIsFocused(focused));

// remove listeners (happens also on cleanup)
clear();
Definition
function makeFocusListener(
  target: Element,
  callback: (isActive: boolean) => void,
  useCapture?: boolean,
): VoidFunction;

createActiveElement

Provides reactive signal of document.activeElement. Check which element is currently focused.

How to use it
import { createActiveElement } from "@solid-primitives/active-element";

const activeEl = createActiveElement();

createEffect(() => {
  console.log(activeEl()); // T: Element | null
});
Definition
function createActiveElement(): Accessor<Element | null>;

createFocusSignal

Provides a signal representing element's focus state.

How to use it
import { createFocusSignal } from "@solid-primitives/active-element";

const isFocused = createFocusSignal(el);
isFocused(); // T: boolean

// you can also use signals for ref
const [ref, setRef] = createSignal<Element>(el);
const isFocused = createFocusSignal(ref);
// this way if the element changes,
// the "isFocused" will start checking the new element

// is targeting a ref from jsx, pass it as a function
// or wrap primitive in onMount, so that it is accessed once mounted
let ref;
createFocusSignal(() => ref);
<div ref={ref} />;
Definition
function createFocusSignal(target: MaybeAccessor<Element>): Accessor<boolean>;

focus

A directive that notifies you when the element becomes active or inactive.

const [active, setActive] = createSignal(false)
<input use:focus={setActive} />
Definition
Directive<(isActive: boolean) => void>;

Demo

https://codesandbox.io/s/solid-primitives-active-element-q4kul?file=/index.tsx

Changelog

See CHANGELOG.md

Keywords

FAQs

Package last updated on 05 Mar 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc