Puro - simple react context provider

Last update: May 5, 2022

puro - simple react context provider

puro is a react typescript utility library from plasmo to create react context with minimal boilerplate using the react hook API.

Usage

Install

pnpm add puro

Create a provider and hook pairs:

{ const [x, _setX] = useState(0) const [y, _setY] = useState(0) return { x, y, setX:(newX: string | number) => _setX(parseFloat(newX)), setY:(newY: string | number) => _setY(parseFloat(newY)) } } const { BaseContext, Provider } = createProvider(useViewProvider) export const ViewProvider = Provider export const useView = () => useContext(BaseContext)">
// providers/view-provider.tsx
import { useContext, useState } from "react"

import { createProvider } from "puro"

// A simple example of a provider hook
const useViewProvider = () => {
  const [x, _setX] = useState(0)
  const [y, _setY] = useState(0)

  return {
    x,
    y,
    setX:(newX: string | number) => _setX(parseFloat(newX)),
    setY:(newY: string | number) => _setY(parseFloat(newY))
  }
}

const { BaseContext, Provider } = createProvider(useViewProvider)

export const ViewProvider = Provider

export const useView = () => useContext(BaseContext)

Wrap your top component with the provider, here's a NextJS example using _app.tsx:

) } export default CoolApp">
// _app.tsx
import { ViewProvider } from "~providers/view-provider"
import type { AppProps } from "next/app"

function CoolApp({ Component, pageProps }: AppProps) {
  return (
    <ViewProvider>
      <Component {...pageProps} />
    </ViewProvider>
  )
}

export default CoolApp

Use the context hook in your component

setX(e.target.value)}/> ) } export function YInput() { const { x, setY } = useView() return ( setY(e.target.value)}/> ) } ">
// components/set-coordinate.tsx
import { useView } from "~providers/view-provider"
import type { AppProps } from "next/app"

export function XInput() {
  const { x, setX } = useView()
  return (
    <input value={x} onChange={(e)=> setX(e.target.value)}/>
  )
}

export function YInput() {
  const { x, setY } = useView()
  return (
    <input value={y} onChange={(e)=> setY(e.target.value)}/>
  )
}

Development

Terminal 1:

# install deps
pnpm i

# run dev server
pnpm dev

Terminal 2:

pnpm test

Publish process

  1. Commit any changes to the repository.
  2. pnpm version patch | minor | major
  3. pnpm publish

Support

The Battle Station is open for ambassadors.

License

MIT Plasmo Corp.

GitHub

https://github.com/PlasmoHQ/puro
Comments
  • 1. Update jest monorepo to v28 (major) - autoclosed

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @jest/globals | 27.5.1 -> 28.0.3 | age | adoption | passing | confidence | | jest (source) | 27.5.1 -> 28.0.3 | age | adoption | passing | confidence |


    Release Notes

    facebook/jest

    v28.0.3

    Compare Source

    Fixes
    • [jest-config] Normalize reporters option defined in presets (#​12769)
    • [@jest/reporters] Fix trailing slash in matching coverageThreshold key (#​12714)
    • [jest-resolve] Fix (experimental) ESM module mocking for re-exports (#​12766)
    • [@jest/transform] Throw better error if an invalid return value if encountered (#​12764)
    Chore & Maintenance
    • [docs] Fix typo in --shard CLI docs (#​12761)

    v28.0.2

    Compare Source

    Features
    • [jest-worker] Add JestWorkerFarm helper type (#​12753)
    Fixes
    • [*] Lower Node 16 requirement to 16.10 from 16.13 due to a Node bug that causes memory and performance issues (#​12754)

    v28.0.1

    Compare Source

    Features
    • [jest-resolve] Expose ResolverOptions type (#​12736)
    Fixes
    • [expect] Add missing dependency jest-util (#​12744)
    • [jest-circus] Improve test.concurrent (#​12748)
    • [jest-resolve] Correctly throw an error if jsdom test environment is used, but not installed (#​12749)
    Chore & Maintenance
    • [jest-serializer] Remove deprecated module from source tree (#​12735)

    v28.0.0

    Compare Source

    Features
    • [babel-jest] Export createTransformer function (#​12399)
    • [expect] Expose AsymmetricMatchers, MatcherFunction and MatcherFunctionWithState interfaces (#​12363, #​12376)
    • [jest-circus] Support error logging before retry (#​12201)
    • [jest-circus, jest-jasmine2] Allowed classes and functions as describe and it/test names (#​12484)
    • [jest-cli, jest-config] [BREAKING] Remove testURL config, use testEnvironmentOptions.url instead (#​10797)
    • [jest-cli, jest-core] Add --shard parameter for distributed parallel test execution (#​12546)
    • [jest-cli] [BREAKING] Remove undocumented --timers option (#​12572)
    • [jest-config] [BREAKING] Stop shipping jest-environment-jsdom by default (#​12354)
    • [jest-config] [BREAKING] Stop shipping jest-jasmine2 by default (#​12355)
    • [jest-config, @&#8203;jest/types] Add ci to GlobalConfig (#​12378)
    • [jest-config] [BREAKING] Rename moduleLoader to runtime (#​10817)
    • [jest-config] [BREAKING] Rename extraGlobals to sandboxInjectedGlobals (#​10817)
    • [jest-config] [BREAKING] Throw an error instead of showing a warning if multiple configs are used (#​12510)
    • [jest-config] [BREAKING] Do not normalize long deprecated configuration options preprocessorIgnorePatterns, scriptPreprocessor, setupTestFrameworkScriptFile and testPathDirs (#​12701)
    • [jest-cli, jest-core] Add --ignoreProjects CLI argument to ignore test suites by project name (#​12620)
    • [jest-core] Pass project config to globalSetup/globalTeardown function as second argument (#​12440)
    • [jest-core] Stabilize test runners with event emitters (#​12641)
    • [jest-core, jest-watcher] [BREAKING] Move TestWatcher class to jest-watcher package (#​12652)
    • [jest-core] Allow using Summary Reporter as stand-alone reporter (#​12687)
    • [jest-environment-jsdom] [BREAKING] Upgrade jsdom to 19.0.0 (#​12290)
    • [jest-environment-jsdom] [BREAKING] Add default browser condition to exportConditions for jsdom environment (#​11924)
    • [jest-environment-jsdom] [BREAKING] Pass global config to Jest environment constructor for jsdom environment (#​12461)
    • [jest-environment-jsdom] [BREAKING] Second argument context to constructor is mandatory (#​12469)
    • [jest-environment-node] [BREAKING] Add default node and node-addon conditions to exportConditions for node environment (#​11924)
    • [jest-environment-node] [BREAKING] Pass global config to Jest environment constructor for node environment (#​12461)
    • [jest-environment-node] [BREAKING] Second argument context to constructor is mandatory (#​12469)
    • [jest-environment-node] Add all available globals to test globals, not just explicit ones (#​12642, #​12696)
    • [@jest/expect] New module which extends expect with jest-snapshot matchers (#​12404, #​12410, #​12418)
    • [@jest/expect-utils] New module exporting utils for expect (#​12323)
    • [@jest/fake-timers] [BREAKING] Rename timers configuration option to fakeTimers (#​12572)
    • [@jest/fake-timers] [BREAKING] Allow jest.useFakeTimers() and projectConfig.fakeTimers to take an options bag (#​12572)
    • [jest-haste-map] [BREAKING] HasteMap.create now returns a promise (#​12008)
    • [jest-haste-map] Add support for dependencyExtractor written in ESM (#​12008)
    • [jest-mock] [BREAKING] Rename exported utility types ClassLike, FunctionLike, ConstructorLikeKeys, MethodLikeKeys, PropertyLikeKeys; remove exports of utility types ArgumentsOf, ArgsType, ConstructorArgumentsOf - TS builtin utility types ConstructorParameters and Parameters should be used instead (#​12435, #​12489)
    • [jest-mock] Improve isMockFunction to infer types of passed function (#​12442)
    • [jest-mock] [BREAKING] Improve the usage of jest.fn generic type argument (#​12489)
    • [jest-mock] Add support for auto-mocking async generator functions (#​11080)
    • [jest-mock] Add contexts member to mock functions (#​12601)
    • [@jest/reporters] Add GitHub Actions reporter (#​11320, #​12658)
    • [@jest/reporters] Pass reporterContext to custom reporter constructors as third argument (#​12657)
    • [jest-resolve] [BREAKING] Add support for package.json exports (#​11961, #​12373)
    • [jest-resolve] Support package self-reference (#​12682)
    • [jest-resolve, jest-runtime] Add support for data: URI import and mock (#​12392)
    • [jest-resolve, jest-runtime] Add support for async resolver (#​11540)
    • [jest-resolve] [BREAKING] Remove browser?: boolean from resolver options, conditions: ['browser'] should be used instead (#​12707)
    • [jest-resolve] Expose JestResolver, AsyncResolver, SyncResolver, PackageFilter, PathFilter and PackageJSON types (#​12707, (#​12712)
    • [jest-runner] Allow setupFiles module to export an async function (#​12042)
    • [jest-runner] Allow passing testEnvironmentOptions via docblocks (#​12470)
    • [jest-runner] Expose CallbackTestRunner, EmittingTestRunner abstract classes and CallbackTestRunnerInterface, EmittingTestRunnerInterface to help typing third party runners (#​12646, #​12715)
    • [jest-runner] Lock version of source-map-support to 0.5.13 (#​12720)
    • [jest-runtime] [BREAKING] Runtime.createHasteMap now returns a promise (#​12008)
    • [jest-runtime] Calling jest.resetModules function will clear FS and transform cache (#​12531)
    • [jest-runtime] [BREAKING] Remove Context type export, it must be imported from @jest/test-result (#​12685)
    • [jest-runtime] Add import.meta.jest (#​12698)
    • [@jest/schemas] New module for JSON schemas for Jest's config (#​12384)
    • [@jest/source-map] Migrate from source-map to @jridgewell/trace-mapping (#​12692)
    • [jest-transform] [BREAKING] Make it required for process() and processAsync() methods to always return structured data (#​12638)
    • [jest-test-result] Add duration property to JSON test output (#​12518)
    • [jest-watcher] [BREAKING] Make PatternPrompt class to take entityName as third constructor parameter instead of this._entityName (#​12591)
    • [jest-worker] [BREAKING] Allow only absolute workerPath (#​12343)
    • [jest-worker] [BREAKING] Default to advanced serialization when using child process workers (#​10983)
    • [pretty-format] New maxWidth parameter (#​12402)
    Fixes
    • [*] Use sha256 instead of md5 as hashing algortihm for compatibility with FIPS systems (#​12722)
    • [babel-jest] [BREAKING] Pass rootDir as root in Babel's options (#​12689)
    • [expect] Move typings of .not, .rejects and .resolves modifiers outside of Matchers interface (#​12346)
    • [expect] Throw useful error if expect.extend is called with invalid matchers (#​12488)
    • [expect] Fix iterableEquality ignores other properties (#​8359)
    • [expect] Fix print for the closeTo matcher (#​12626)
    • [jest-changed-files] Improve changedFilesWithAncestor pattern for Mercurial SCM (#​12322)
    • [jest-circus, @&#8203;jest/types] Disallow undefined value in TestContext type (#​12507)
    • [jest-config] Correctly detect CI environment and update snapshots accordingly (#​12378)
    • [jest-config] Pass moduleTypes to ts-node to enforce CJS when transpiling (#​12397)
    • [jest-config] [BREAKING] Add mjs and cjs to default moduleFileExtensions config (#​12578)
    • [jest-config, jest-haste-map] Allow searching for tests in node_modules by exposing retainAllFiles (#​11084)
    • [jest-core] [BREAKING] Exit with status 1 if no tests are found with --findRelatedTests flag (#​12487)
    • [jest-core] Do not report unref-ed subprocesses as open handles (#​12705)
    • [jest-each] %# is not replaced with index of the test case (#​12517)
    • [jest-each] Fixes error message with incorrect count of missing arguments (#​12464)
    • [jest-environment-jsdom] Make jsdom accessible to extending environments again (#​12232)
    • [jest-environment-jsdom] Log JSDOM errors more cleanly (#​12386)
    • [jest-environment-node] Add MessageChannel, MessageEvent to globals (#​12553)
    • [jest-environment-node] Add structuredClone to globals (#​12631)
    • [@jest/expect-utils] [BREAKING] Fix false positives when looking for undefined prop (#​8923)
    • [jest-haste-map] Don't use partial results if file crawl errors (#​12420)
    • [jest-haste-map] Make watchman existence check lazy+async (#​12675)
    • [jest-jasmine2, jest-types] [BREAKING] Move all jasmine specific types from @jest/types to its own package (#​12125)
    • [jest-jasmine2] Do not set duration to 0 for skipped tests (#​12518)
    • [jest-matcher-utils] Pass maxWidth to pretty-format to avoid printing every element in arrays by default (#​12402)
    • [jest-mock] Fix function overloads for spyOn to allow more correct type inference in complex object (#​12442)
    • [jest-mock] Handle overridden Function.name property (#​12674)
    • [@jest/reporters] Notifications generated by the --notify flag are no longer persistent in GNOME Shell. (#​11733)
    • [@jest/reporters] Move missing icon file which is needed for NotifyReporter class. (#​12593)
    • [@jest/reporters] Update v8-to-istanbul (#​12697)
    • [jest-resolver] Call custom resolver with core node.js modules (#​12654)
    • [jest-runner] Correctly resolve source-map-support (#​12706)
    • [jest-worker] Fix Farm execution results memory leak (#​12497)
    Chore & Maintenance
    • [*] [BREAKING] Drop support for Node v10 and v15 and target first LTS 16.13.0 (#​12220)
    • [*] [BREAKING] Drop support for [email protected], minimum version is now 4.3 (#​11142, #​12648)
    • [*] Bundle all .d.ts files into a single index.d.ts per module (#​12345)
    • [*] Use globalThis instead of global (#​12447)
    • [babel-jest] [BREAKING] Only export createTransformer (#​12407)
    • [docs] Add note about not mixing done() with Promises (#​11077)
    • [docs, examples] Update React examples to match with the new React guidelines for code examples (#​12217)
    • [docs] Add clarity for module factory hoisting limitations (#​12453)
    • [docs] Add more information about how code transformers work (#​12407)
    • [docs] Add upgrading guide (#​12633)
    • [expect] [BREAKING] Remove support for importing build/utils (#​12323)
    • [expect] [BREAKING] Migrate to ESM (#​12344)
    • [expect] [BREAKING] Snapshot matcher types are moved to @jest/expect (#​12404)
    • [jest-cli] Update yargs to v17 (#​12357)
    • [jest-config] [BREAKING] Remove getTestEnvironment export (#​12353)
    • [jest-config] [BREAKING] Rename config option name to id (#​11981)
    • [jest-create-cache-key-function] Added README.md file with basic usage instructions (#​12492)
    • [@jest/core] Use index.ts instead of jest.ts as main export (#​12329)
    • [jest-environment-jsdom] [BREAKING] Migrate to ESM (#​12340)
    • [jest-environment-node] [BREAKING] Migrate to ESM (#​12340)
    • [jest-haste-map] Remove legacy isRegExpSupported (#​12676)
    • [@jest/fake-timers] Update @sinonjs/fake_timers to v9 (#​12357)
    • [jest-jasmine2, jest-runtime] [BREAKING] Use Symbol to pass jest.setTimeout value instead of jasmine specific logic (#​12124)
    • [jest-phabricator] [BREAKING] Migrate to ESM (#​12341)
    • [jest-resolve] [BREAKING] Make requireResolveFunction argument mandatory (#​12353)
    • [jest-runner] [BREAKING] Remove some type exports from @jest/test-result (#​12353)
    • [jest-runner] [BREAKING] Second argument to constructor (Context) is not optional (#​12640)
    • [jest-serializer] [BREAKING] Deprecate package in favour of using v8 APIs directly (#​12391)
    • [jest-snapshot] [BREAKING] Migrate to ESM (#​12342)
    • [jest-transform] Update write-file-atomic to v4 (#​12357)
    • [jest-types] [BREAKING] Remove Config.Glob and Config.Path (#​12406)
    • [jest] Use index.ts instead of jest.ts as main export (#​12329)
    Performance
    • [jest-haste-map] [BREAKING] Default to node crawler over shelling out to find if watchman is not enabled (#​12320)

    Configuration

    📅 Schedule: At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    Reviewed by renovate[bot] at 2022-05-01 05:14
  • 2. Update dependency @types/react to v18.0.9 - autoclosed

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @types/react | 18.0.8 -> 18.0.9 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: At any time (no schedule defined).

    🚦 Automerge: Enabled.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    Reviewed by renovate[bot] at 2022-05-06 22:12
  • 3. Update jest monorepo to v28.1.0 - autoclosed

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @jest/globals | 28.0.3 -> 28.1.0 | age | adoption | passing | confidence | | jest (source) | 28.0.3 -> 28.1.0 | age | adoption | passing | confidence |


    Release Notes

    facebook/jest

    v28.1.0

    Compare Source

    Features
    • [jest-circus] Add failing test modifier that inverts the behaviour of tests (#​12610)
    • [jest-environment-node, jest-environment-jsdom] Allow specifying customExportConditions (#​12774)
    Fixes
    • [expect] Adjust typings of lastCalledWith, nthCalledWith, toBeCalledWith matchers to allow a case there a mock was called with no arguments (#​12807)
    • [@jest/expect-utils] Fix deep equality of ImmutableJS Lists (#​12763)
    • [jest-core] Do not collect SIGNREQUEST as open handles (#​12789)
    Chore & Maintenance
    • [docs] Specified documentation about --filter CLI docs (#​12799)
    • [@jest-reporters] Move helper functions from utils.ts into separate files (#​12782)
    • [jest-resolve] Replace process.versions.pnp type declaration with @types/pnpapi devDependency (#​12783)

    Configuration

    📅 Schedule: At any time (no schedule defined).

    🚦 Automerge: Disabled due to failing status checks.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    Reviewed by renovate[bot] at 2022-05-06 13:21
  • 4. Update dependency tsup to v5.12.7 - autoclosed

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | tsup | 5.12.6 -> 5.12.7 | age | adoption | passing | confidence |


    Release Notes

    egoist/tsup

    v5.12.7

    Compare Source

    Bug Fixes
    • define a build-time constant called TSUP_FORMAT (f4a56ed)
    • resolve to package.json only if tsup key exists (#​622) (67eea53)

    Configuration

    📅 Schedule: At any time (no schedule defined).

    🚦 Automerge: Disabled due to failing status checks.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    Reviewed by renovate[bot] at 2022-05-05 14:48
  • 5. Lock file maintenance

    WhiteSource Renovate

    This PR contains the following updates:

    | Update | Change | |---|---| | lockFileMaintenance | All locks refreshed |

    🔧 This Pull Request updates lock files to use the latest dependency versions.


    Configuration

    📅 Schedule: "before 5am on monday" (UTC).

    🚦 Automerge: Enabled.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    Reviewed by renovate[bot] at 2022-05-02 00:30
  • 6. Pin dependency ts-jest to 28.0.2

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | ts-jest (source) | devDependencies | pin | ^28.0.2 -> 28.0.2 |

    Add the preset :preserveSemverRanges to your config if you don't want to pin your dependencies.


    Configuration

    📅 Schedule: At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    Reviewed by renovate[bot] at 2022-05-06 22:50
  • 7. Dependency Dashboard

    This issue provides visibility into Renovate updates and their statuses. Learn more

    Awaiting Schedule

    These updates are awaiting their schedule. Click on a checkbox to get an update now.

    • [ ] Lock file maintenance

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.


    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    Reviewed by renovate[bot] at 2022-05-01 05:14
A streamlined way of creating a React.Context based on a schema. Easy to use and with 0 dependencies.

A streamlined way of creating a React.Context based on a schema. Easy to use and with 0 dependencies.

Feb 14, 2022
A simple Facebook Chat Head like bubble for react native
A simple Facebook Chat Head like bubble for react native

react-native-floating-bubble A simple Facebook Chat Head like bubble for react native. Special thanks to bubble-for-android because this is just react

May 3, 2022
Simple state management solution for React

react-3ducks ?? ?? ?? A simple react global state management solution Installation Why Example API Contributing Installation npm install react-3ducks

Nov 13, 2021
Simple, plain JavaScript state management with built-in support for React
Simple, plain JavaScript state management with built-in support for React

Stator · Install yarn add statorgfc simple, plain JavaScript state management with built-in support for React. Try it Live Stator works by adding met

Oct 10, 2020
A toy virtual DOM diffing and reconciliation algorithm, with a simple event loop

A toy virtual DOM diffing and reconciliation algorithm, with a simple event loop

Jan 31, 2022
A simple way of loading inline es-modules on modern browser

ES inline module A simple way of loading inline es-modules on modern browser. Usage Use inlineImport to dynamically import inline scripts. <script typ

Mar 30, 2022
A lightweight react library that converts raw HTML to a React DOM structure.

A lightweight react library that converts raw HTML to a React DOM structure.

May 9, 2022
React-intersection-observer - Intersection observer With React
React-intersection-observer - Intersection observer With React

react-intersection-observer Package ?? Copy and Paste the Framer Package Usage F

Feb 17, 2022
React-compress - This compress library was made with Brotli and Gzip help, for React users who want to make website more performance and reduce JS bundle code
React-compress - This compress library was made with Brotli and Gzip help, for React users who want to make website more performance and reduce JS bundle code

React-compress - This compress library was made with Brotli and Gzip help, for React users who want to make website more performance and reduce JS bundle code

Apr 20, 2022
React adblocker detect - Provides you with react hook to detect is an adblocker is enabled

React adblocker detect - Provides you with react hook to detect is an adblocker is enabled

Mar 15, 2022
A react or react native library to call functions comparing the last time that it was called
A react or react native library to call functions comparing the last time that it was called

A react or react native library to call functions comparing the last time that it was called and running it when it's really needed. Avoiding unnecessary database calls or data loads that are updated at a certain time.

Apr 18, 2022
React-native-dotenv - Load react native environment variables using import statements for multiple env files.

react-native-dotenv Load environment variables using import statements. Installation $ npm install react-native-dotenv Breaking changes: moving from v

May 9, 2022
Extended utils for ⚛️ React.Children data structure that adds recursive filter, map and more methods to iterate nested children.
Extended utils for ⚛️  React.Children data structure that adds recursive filter, map and more methods to iterate nested children.

React Children Utilities Recursive and extended utils for React children opaque data structure. Installation Available as a package and can be added t

May 4, 2022
CSS media queries for React

react-media react-media is a CSS media query component for React. A <Media> component listens for matches to a CSS media query and renders stuff based

May 16, 2022
A component for React that utilizes the Counterpart module to provide multi-lingual/localized text content.

React Translate Component Translate is a component for React that utilizes the Counterpart module and the Interpolate component to provide multi-lingu

May 17, 2022
A static site generator powered by Deno + React
A static site generator powered by Deno + React

A static site generator powered by Deno + React

May 14, 2022
The next generation state management library for React

The next generation state management library for React

May 12, 2022
Declarative hotkey and focus area management for React

React HotKeys A declarative library for handling hotkeys and focus areas in React applications. Upgrading from 1.*.* ? See the upgrade notes. Looking

May 12, 2022
📦 noov.js for react ssr solution
📦 noov.js for react ssr solution

?? noov.js for react ssr solution

Mar 30, 2022