npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

chayns-hooks

v1.0.4

Published

Makes the chayns-js API easier to consume in your react components.

Downloads

2

Readme


chayns-hooks packs some of the functionality of the chayns-js library as React hooks for easier use in React components.

Contrary to chayns-js, this library is also fully typed.

❯ Documentation

useAdminMode

Returns wether the user is currently in admin mode, aswell as methods to toggle the admin mode from your application code.

By default any iframe on a page will be reloaded when the admin mode value switches. This hook will register a chayns.addAdminSwitchListener, which will prevent the default behavior. You will get the updated value in the isAdminMode field and your page will not reload.

Example

const { isAdminMode, activateAdminMode, deactivateAdminMode } = useAdminMode();

Return values

  • isAdminMode: boolean

    Wether the user is currently in admin mode.

  • activateAdminMode: () => void

    A function to activate admin mode. You will receive the updated value in isAdminMode.

  • deactivateAdminMode: () => void

    A function to deactivate admin mode. You will receive the updated value in isAdminMode.

useChaynsUser

Returns the user object of the currently logged in user and subscribes to any changes to it, including logging in or out.

By default any iframe on a page will be reloaded when a user logs in or out. This hook will register a chayns.addAccessTokenChangeListener, which will prevent the default behavior. You will get the updated value in the user field and your page will not reload.

Example

const user = useChaynsUser();

Return value

useVisibilityEffect

This hook allows you to run any side-effect when the visibility of the page changes. Use it similar to a useEffect, but without a dependency array.

Example

useVisibilityEffect((isShown: boolean) => {
  console.log(`The page is now ${isShown ? "shown" : "hidden"}`);
});

Callback arguments

  • isShown

    Indicates wether the page is now hidden (false) or shown (true).

❯ Development

For developing you have to link the project to a React application using yarn link.

Releasing a new version on NPM

To release a new version on npm, run npm version (patch|minor|major) to increase the version. This will create a Git tag for you.

Push this Git tag to GitHub and a GitHub Action will publish the package for you.

❯ Contribute

If you think you have any ideas that could benefit the project, feel free to create an issue or pull request!