0.0.111 • Published 2 months ago

@solid-primitives/autofocus v0.0.111

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

@solid-primitives/autofocus

turborepo size version stage

Primitives for autofocusing HTML elements.

The native autofocus attribute only works on page load, which makes it incompatible with SolidJS. These primitives run on render, allowing autofocus on initial render as well as dynamically added components.

  • autofocus - Directive to autofocus an element on render.
  • createAutofocus - Reactive primitive to autofocus an element on render.

Installation

npm install @solid-primitives/autofocus
# or
yarn add @solid-primitives/autofocus
# or
pnpm add @solid-primitives/autofocus

autofocus

How to use it

The autofocus directive uses the native autofocus attribute to determine it should focus the element or not. Using this directive without autofocus={true} (or the shorthand autofocus) will not perform anything.

As a directive:

import { autofocus } from "@solid-primitives/autofocus";
// prevents from being tree-shaken by TS
autofocus

<button use:autofocus autofocus>
  Autofocused
</button>;

// Autofocus directive can be disabled if `false` is passed as option
<button use:autofocus={false} autofocus>
  Not Autofocused
</button>;

Or with ref

import { autofocus } from "@solid-primitives/autofocus";

<button ref={autofocus} autofocus>
  Autofocused
</button>;

createAutofocus

createAutofocus reactively autofocuses an element passid in as a signal.

import { createAutofocus } from "@solid-primitives/autofocus";

// Using ref
let ref!: HTMLButtonElement;
createAutofocus(() => ref);

<button ref={ref}>Autofocused</button>;

// Using ref signal
const [ref, setRef] = createSignal<HTMLButtonElement>();
createAutofocus(ref);

<button ref={setRef}>Autofocused</button>;

Demo

You may see the working example here: https://primitives.solidjs.community/playground/autofocus/

Source code: https://github.com/solidjs-community/solid-primitives/blob/main/packages/autofocus/dev/index.tsx

Changelog

See CHANGELOG.md

0.0.111

2 months ago

0.0.110

2 months ago

0.0.109

4 months ago

0.0.108

9 months ago

0.0.106

1 year ago

0.0.107

12 months ago

0.0.105

1 year ago

0.0.104

1 year ago

0.0.103

1 year ago

0.0.102

1 year ago

0.0.102-beta.0

1 year ago

0.0.101

1 year ago

0.0.100

1 year ago