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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@goldlabelapps/uberedux

v3.5.6

Published

Shared Redux store/provider/hooks used across NX apps.

Readme

@goldlabelapps/uberedux

Shared Redux store, providers, theme preference store, and custom React hooks used across Gold Label Apps and NX client applications.

Features

  • Global Redux Store: Dynamic key-value state slice (redux) with dot-notation object update actions (setUbereduxKey) and state reset (resetUberedux).
  • React Server Components (RSC) Compatible: Ready for Next.js App Router and React 18/19 with 'use client' pragmas.
  • Theme Preference Store: Persisted theme management store backed by redux-persist supporting 'light', 'dark', and 'system' modes.
  • TypeScript Support: Full type safety with exported interfaces for root states, dispatch, and theme preferences.

Installation

npm install @goldlabelapps/uberedux @reduxjs/toolkit react react-redux redux redux-persist
# or
yarn add @goldlabelapps/uberedux @reduxjs/toolkit react react-redux redux redux-persist
# or
pnpm add @goldlabelapps/uberedux @reduxjs/toolkit react react-redux redux redux-persist

Usage

1. Global Redux Store & Provider

Wrap your React app tree with UbereduxProvider:

// app/providers.tsx or index.tsx
import { UbereduxProvider } from '@goldlabelapps/uberedux';

export function Providers({ children }: { children: React.ReactNode }) {
  return <UbereduxProvider>{children}</UbereduxProvider>;
}

2. Reading and Dispatching State

Use useSlice to read state properties and useDispatch with setUbereduxKey or resetUberedux to update state:

import { useDispatch, useSlice, setUbereduxKey, resetUberedux } from '@goldlabelapps/uberedux';

export function UserSettings() {
  const state = useSlice();
  const dispatch = useDispatch();

  const handleToggleTheme = () => {
    // Supports nested key paths via dot notation
    dispatch(setUbereduxKey({ key: 'user.preferences.notifications', value: true }));
  };

  const handleReset = () => {
    dispatch(resetUberedux());
  };

  return (
    <div>
      <p>Notifications: {String(state.user?.preferences?.notifications)}</p>
      <button onClick={handleToggleTheme}>Enable Notifications</button>
      <button onClick={handleReset}>Reset State</button>
    </div>
  );
}

3. Theme Preference Store

A dedicated persisted store for client theme mode (light | dark | system):

import {
  themePreferenceStore,
  setPersistedThemeMode,
  clearPersistedThemeMode,
  selectPersistedThemeMode,
  readPersistedThemeModeFromStorage,
} from '@goldlabelapps/uberedux';

// Set mode
themePreferenceStore.dispatch(setPersistedThemeMode('dark'));

// Select current mode
const currentMode = selectPersistedThemeMode(themePreferenceStore.getState());

// Read directly from storage (useful for SSR initial theme hydration script)
const storedMode = readPersistedThemeModeFromStorage();

// Clear theme preference
themePreferenceStore.dispatch(clearPersistedThemeMode());

Subpath Exports

The package supports clean modular imports via entrypoints:

| Export Path | Description | | :--- | :--- | | @goldlabelapps/uberedux | Main index entrypoint exporting all utilities and types | | @goldlabelapps/uberedux/store | Redux store instance (store), actions (setUbereduxKey, resetUberedux), initialState | | @goldlabelapps/uberedux/UbereduxProvider | React Redux Provider component | | @goldlabelapps/uberedux/hooks/useDispatch | Typed useDispatch hook | | @goldlabelapps/uberedux/hooks/useSlice | Typed useSlice hook | | @goldlabelapps/uberedux/themePreferenceStore | Persisted theme preference store, persistor, actions, and storage helper |


License

MIT