A reusable react hook that preserves a components semantic accessibility to create a visual block link.

Overview

Semantic Block Links

useAccessibleBlockLink is a reusable react hook that preserves a components semantic accessibility to create a visual block link. This hook supports multiple links within the same block.

The problem we're solving for

When creating block links where there are semantic tags used inside an interactive element or ); };">

const BlockLink = () => {
  const mainEvent = useRef();

  const {handleClick} = useAccessibleBlockLink(mainEvent);

  return (
    <div onClick={handleClick}>
      <a ref={mainEvent} href="/home">
        Home
      </a>
      <p>description</p>
      <button type="button" onClick={() => {}}>
        secondary action
      </button>
    </div>
  );
};

The hook works interchangeably for and

Comments
  •  ๐Ÿงน Add Renovate

    ๐Ÿงน Add Renovate

    Description

    ๐Ÿ‘‹ This repository is not currently configured for Renovate. This issue proposes the steps necessary to add Renovate to this project!

    ๐Ÿ’ก Not familiar with Renovate, or are confused about what advantages it holds over GitHub's Dependabot? Learn more here!

    Steps to Add

    1. Review the guide for Adding Renovate to Existing Projects.
    2. Add a comment to this issue as a signal to others that you intend to work on it. The OSPO will then assign the issue to you. If you ultimately decide not to pursue this, please remember to let us know via comment so that others may participate!
    3. If the renovate[bot] account has already auto-filed a Configure Renovate PR against this repository, feel free to reference the proposed changes in your own Pull Request. If you are contributing to this project as a Hacktoberfest participant, you must file your own PR in order to get credit for your contribution!
    4. You may find that the CI build for this project is failing for unrelated reasons. If you are not already a contributor to this project and don't feel comfortable attempting to fix the build, that's okay! There's plenty of other ways you can contribute to Wayfair's open source projects :) Feel free to consult the list of our other participating repositories here!
    5. In order to catch potential JSON syntax errors or other mis-configurations, please add Renovate linting to this project's existing GitHub Workflow CI pipeline, or create a new one (eg. .github/workflows/lint.yml). See here for an example.
    6. If this repository is currently configured to use GitHub's Dependabot, you must also deprecate support for Dependabot in order to avoid conflicts with Renovate. This is typically as simple as removing the .github/dependabot.yml file. See here for an example.

    Checklist

    • [x] I have read the Adding Renovate to Existing Projects guide.
    • [x] I have assigned this issue to myself avoid duplicating efforts with other potential contributors.
    • [x] I have verified this repository does not already have Renovate configured (or proposed in an open PR by another contributor).
    • [x] If the renovate[bot] account has already auto-filed a Configure Renovate PR in this repository, I confirm that I will create a separate PR under my own GitHub account, using the initial PR as inspiration.
    • [x] I confirm that I have added Renovate linting to this project's existing CI pipeline, or have created a new linting workflow if one doesn't already exist.
    • [x] If this repository is currently configured to use GitHub's Dependabot, my PR will also deprecate support for Dependabot in order to avoid conflicts with Renovate.
    good-first-issue hacktoberfest add-renovate claimed 
    opened by draco2003 2
  • Configure Renovate - autoclosed

    Configure Renovate - autoclosed

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    ๐Ÿšฆ To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • package.json (npm)
    • .nvmrc (nvm)

    Configuration

    ๐Ÿ”ก Renovate has detected a custom config for this PR. Feel free to ask for help if you have any doubts and would like it reviewed.

    Important: Now that this branch is edited, Renovate can't rebase it from the base branch any more. If you make changes to the base branch that could impact this onboarding PR, please merge them manually.

    What to Expect

    With your current configuration, Renovate will create 14 Pull Requests:

    Pin dependencies
    Update dependency @testing-library/react to v12.1.5
    • Schedule: ["at any time"]
    • Branch name: renovate/testing-library-react-12.x
    • Merge into: main
    • Upgrade @testing-library/react to 12.1.5
    Update dependency @​types/react-dom to v17.0.17
    • Schedule: ["at any time"]
    • Branch name: renovate/react-dom-17.x
    • Merge into: main
    • Upgrade @types/react-dom to 17.0.17
    Update Node.js to v16.18.0
    • Schedule: ["at any time"]
    • Branch name: renovate/node-16.x
    • Merge into: main
    • Upgrade node to 16.18.0
    Update babel monorepo
    Update dependency eslint to v8.25.0
    • Schedule: ["at any time"]
    • Branch name: renovate/eslint-8.x
    • Merge into: main
    • Upgrade eslint to 8.25.0
    Update dependency prettier to v2.7.1
    • Schedule: ["at any time"]
    • Branch name: renovate/prettier-2.x
    • Merge into: main
    • Upgrade prettier to 2.7.1
    Update dependency typescript to v4.8.4
    • Schedule: ["at any time"]
    • Branch name: renovate/typescript-4.x
    • Merge into: main
    • Upgrade typescript to 4.8.4
    Update jest monorepo
    • Schedule: ["at any time"]
    • Branch name: renovate/jest-monorepo
    • Merge into: main
    • Upgrade @types/jest to 27.5.2
    • Upgrade babel-jest to 27.5.1
    • Upgrade jest to 27.5.1
    Update dependency @testing-library/react to v13
    • Schedule: ["at any time"]
    • Branch name: renovate/testing-library-react-13.x
    • Merge into: main
    • Upgrade @testing-library/react to 13.4.0
    Update dependency @​types/react-dom to v18
    • Schedule: ["at any time"]
    • Branch name: renovate/react-dom-18.x
    • Merge into: main
    • Upgrade @types/react-dom to 18.0.6
    Update dependency jsdom to v20
    • Schedule: ["at any time"]
    • Branch name: renovate/jsdom-20.x
    • Merge into: main
    • Upgrade jsdom to 20.0.1
    Update jest monorepo to v29 (major)
    • Schedule: ["at any time"]
    • Branch name: renovate/major-jest-monorepo
    • Merge into: main
    • Upgrade @types/jest to 29.1.2
    • Upgrade babel-jest to 29.2.0
    • Upgrade jest to 29.2.0
    Update react monorepo to v18 (major)
    • Schedule: ["at any time"]
    • Branch name: renovate/major-react-monorepo
    • Merge into: main
    • Upgrade react to ^16 || ^17 || ^18.0.0
    • Upgrade react to 18.2.0
    • Upgrade react-dom to 18.2.0

    ๐Ÿšธ Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    โ“ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


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

    opened by renovate[bot] 0
  • Update react monorepo to v18 (major)

    Update react monorepo to v18 (major)

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | react (source) | ^16 \|\| ^17 -> ^16 \|\| ^17 \|\| ^18.0.0 | age | adoption | passing | confidence | | react (source) | ^17.0.2 -> ^18.0.0 | age | adoption | passing | confidence | | react-dom (source) | ^17.0.2 -> ^18.0.0 | age | adoption | passing | confidence |


    Release Notes

    facebook/react

    v18.2.0

    Compare Source

    React DOM
    React DOM Server
    Server Components (Experimental)

    v18.1.0

    Compare Source

    React DOM
    React DOM Server
    ESLint Plugin: React Hooks
    Use Subscription

    v18.0.0

    Compare Source

    Below is a list of all new features, APIs, deprecations, and breaking changes. Read React 18 release post and React 18 upgrade guide for more information.

    New Features
    React
    • useId is a new hook for generating unique IDs on both the client and server, while avoiding hydration mismatches. It is primarily useful for component libraries integrating with accessibility APIs that require unique IDs. This solves an issue that already exists in React 17 and below, but itโ€™s even more important in React 18 because of how the new streaming server renderer delivers HTML out-of-order.
    • startTransition and useTransition let you mark some state updates as not urgent. Other state updates are considered urgent by default. React will allow urgent state updates (for example, updating a text input) to interrupt non-urgent state updates (for example, rendering a list of search results).
    • useDeferredValue lets you defer re-rendering a non-urgent part of the tree. It is similar to debouncing, but has a few advantages compared to it. There is no fixed time delay, so React will attempt the deferred render right after the first render is reflected on the screen. The deferred render is interruptible and doesn't block user input.
    • useSyncExternalStore is a new hook that allows external stores to support concurrent reads by forcing updates to the store to be synchronous. It removes the need for useEffect when implementing subscriptions to external data sources, and is recommended for any library that integrates with state external to React.
    • useInsertionEffect is a new hook that allows CSS-in-JS libraries to address performance issues of injecting styles in render. Unless youโ€™ve already built a CSS-in-JS library we donโ€™t expect you to ever use this. This hook will run after the DOM is mutated, but before layout effects read the new layout. This solves an issue that already exists in React 17 and below, but is even more important in React 18 because React yields to the browser during concurrent rendering, giving it a chance to recalculate layout.
    React DOM Client

    These new APIs are now exported from react-dom/client:

    • createRoot: New method to create a root to render or unmount. Use it instead of ReactDOM.render. New features in React 18 don't work without it.
    • hydrateRoot: New method to hydrate a server rendered application. Use it instead of ReactDOM.hydrate in conjunction with the new React DOM Server APIs. New features in React 18 don't work without it.

    Both createRoot and hydrateRoot accept a new option called onRecoverableError in case you want to be notified when React recovers from errors during rendering or hydration for logging. By default, React will use reportError, or console.error in the older browsers.

    React DOM Server

    These new APIs are now exported from react-dom/server and have full support for streaming Suspense on the server:

    • renderToPipeableStream: for streaming in Node environments.
    • renderToReadableStream: for modern edge runtime environments, such as Deno and Cloudflare workers.

    The existing renderToString method keeps working but is discouraged.


    Configuration

    ๐Ÿ“… Schedule: Branch creation - "before 3am every weekday" (UTC), Automerge - 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 these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

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

    renovate/react 
    opened by renovate[bot] 0
  • Update jest monorepo to v29 (major)

    Update jest monorepo to v29 (major)

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @types/jest (source) | ^27.0.3 -> ^29.0.0 | age | adoption | passing | confidence | | babel-jest | ^27.4.6 -> ^29.0.0 | age | adoption | passing | confidence | | jest (source) | ^27.2.5 -> ^29.0.0 | age | adoption | passing | confidence |


    Release Notes

    facebook/jest

    v29.3.1

    Compare Source

    Fixes
    • [jest-config] Do not warn about preset in ProjectConfig (#โ€‹13583)
    Performance
    • [jest-transform] Defer creation of cache directory (#โ€‹13420)

    v29.3.0

    Compare Source

    Features
    • [jest-runtime] Support WebAssembly (Wasm) imports in ESM modules (#โ€‹13505)
    Fixes
    • [jest-config] Add config validation for projects option (#โ€‹13565)
    • [jest-mock] Treat cjs modules as objects so they can be mocked (#โ€‹13513)
    • [jest-worker] Throw an error instead of hanging when jest workers terminate unexpectedly (#โ€‹13566)
    Chore & Maintenance

    v29.2.2

    Compare Source

    Fixes
    • [@jest/test-sequencer] Make sure sharding does not produce empty groups (#โ€‹13476)
    • [jest-circus] Test marked as todo are shown as todo when inside a focussed describe (#โ€‹13504)
    • [jest-mock] Ensure mock resolved and rejected values are promises from correct realm (#โ€‹13503)
    • [jest-snapshot] Don't highlight passing asymmetric property matchers in snapshot diff (#โ€‹13480)
    Chore & Maintenance
    • [docs] Update link to Jest 28 upgrade guide in error message (#โ€‹13483)
    • [jest-runner, jest-watcher] Update emittery (#โ€‹13490)

    v29.2.1

    Compare Source

    Features
    • [@jest/globals, jest-mock] Add jest.Spied* utility types (#โ€‹13440)
    Fixes
    Performance

    v29.2.0

    Compare Source

    Features
    • [@jest/cli, jest-config] A seed for the test run will be randomly generated, or set by a CLI option (#โ€‹13400)
    • [@jest/cli, jest-config] --show-seed will display the seed value in the report, and can be set via a CLI flag or through the config file (#โ€‹13400)
    • [jest-config] Add readInitialConfig utility function (#โ€‹13356)
    • [jest-core] Allow testResultsProcessor to be async (#โ€‹13343)
    • [@jest/environment, jest-environment-node, jest-environment-jsdom, jest-runtime] Add getSeed() to the jest object (#โ€‹13400)
    • [expect, @&#8203;jest/expect-utils] Allow isA utility to take a type argument (#โ€‹13355)
    • [expect] Expose AsyncExpectationResult and SyncExpectationResult types (#โ€‹13411)
    Fixes
    • [babel-plugin-jest-hoist] Ignore TSTypeQuery when checking for hoisted references (#โ€‹13367)
    • [jest-core] Fix detectOpenHandles false positives for some special objects such as TLSWRAP (#โ€‹13414)
    • [jest-mock] Fix mocking of getters and setters on classes (#โ€‹13398)
    • [jest-reporters] Revert: Transform file paths into hyperlinks (#โ€‹13399)
    • [@jest/types] Infer type of each table correctly when the table is a tuple or array (#โ€‹13381)
    • [@jest/types] Rework typings to allow the *ReturnedWith matchers to be called with no argument (#โ€‹13385)
    Chore & Maintenance
    • [*] Update @babel/* deps, resulting in slightly different stack traces for each (#โ€‹13422)
    Performance
    • [jest-runner] Do not instrument v8 coverage data if coverage should not be collected (#โ€‹13282)

    v29.1.2

    Compare Source

    Fixes
    • [expect, @&#8203;jest/expect] Revert buggy inference of argument types for *CalledWith and *ReturnedWith matchers introduced in 29.1.0 (#โ€‹13339)
    • [jest-worker] Add missing dependency on jest-util (#โ€‹13341)

    v29.1.0

    Compare Source

    Features
    • [expect, @&#8203;jest/expect] Support type inference for function parameters in CalledWith assertions (#โ€‹13268)
    • [expect, @&#8203;jest/expect] Infer type of *ReturnedWith matchers argument (#โ€‹13278)
    • [@jest/environment, jest-runtime] Allow jest.requireActual and jest.requireMock to take a type argument (#โ€‹13253)
    • [@jest/environment] Allow jest.mock and jest.doMock to take a type argument (#โ€‹13254)
    • [@jest/fake-timers] Add jest.now() to return the current fake clock time (#โ€‹13244, #โ€‹13246)
    • [@jest/mock] Add withImplementation method for temporarily overriding a mock (#โ€‹13281)
    • [expect] Export toThrow* matchers (#โ€‹13328)
    Fixes
    • [jest-circus, jest-jasmine2] Fix error messages for Node's assert.throes (#โ€‹13322)
    • [jest-haste-map] Remove __proto__ usage (#โ€‹13256)
    • [jest-mock] Improve spyOn typings to handle optional properties (#โ€‹13247)
    • [jest-mock] Fix mocking of getters and setters on classes (#โ€‹13145)
    • [jest-snapshot] Throw useful error when an array is passed as property matchers (#โ€‹13263)
    • [jest-snapshot] Prioritize parser used in the project (#โ€‹13323)
    • [jest-transform] Attempt to work around issues with atomic writes on Windows (#โ€‹11423)

    v29.0.3

    Compare Source

    Features
    • [@jest/environment, jest-runtime] Allow passing a generic type argument to jest.createMockFromModule<T>() method (#โ€‹13202)
    • [expect] Expose ExpectationResult type (#โ€‹13240)
    • [jest-snapshot] Expose Context type (#โ€‹13240)
    • [@jest/globals] Add jest.Mock type helper (#โ€‹13235)
    Fixes
    • [jest-core] Capture execError during TestScheduler.scheduleTests and dispatch to reporters (#โ€‹13203)
    • [jest-resolve] Make sure to resolve module paths after looking at exports (#โ€‹13242)
    • [jest-resolve] Improve error on module not found deep in the require stack (#โ€‹8704)
    • [jest-snapshot] Fix typings of snapshot matchers (#โ€‹13240)
    Chore & Maintenance
    • [*] Fix inconsistent workspace prefixes (#โ€‹13217)
    • [jest-haste-map] Expose a minimal public API to TypeScript (#โ€‹13023)

    v29.0.2

    Compare Source

    Features
    Fixes
    • [babel-plugin-jest-hoist] Support imported jest in mock factory (#โ€‹13188)
    • [jest-mock] Align the behavior and return type of generateFromMetadata method (#โ€‹13207)
    • [jest-runtime] Support jest.resetModules() with ESM (#โ€‹13211)

    v29.0.1

    Compare Source

    Fixes
    • [jest-snapshot] Pass snapshotFormat through when diffing snapshots (#โ€‹13181)

    v29.0.0

    Compare Source

    Features
    • [expect] [BREAKING] Differentiate between MatcherContext MatcherUtils and MatcherState types (#โ€‹13141)
    • [jest-circus] Add support for test.failing.each (#โ€‹13142)
    • [jest-config] [BREAKING] Make snapshotFormat default to escapeString: false and printBasicPrototype: false (#โ€‹13036)
    • [jest-config] [BREAKING] Remove undocumented collectCoverageOnlyFrom option (#โ€‹13156)
    • [jest-environment-jsdom] [BREAKING] Upgrade to jsdom@20 (#โ€‹13037, #โ€‹13058)
    • [@jest/globals] Add jest.Mocked, jest.MockedClass, jest.MockedFunction and jest.MockedObject utility types (#โ€‹12727)
    • [jest-mock] [BREAKING] Refactor Mocked* utility types. MaybeMockedDeep and MaybeMocked became Mocked and MockedShallow respectively; only deep mocked variants of MockedClass, MockedFunction and MockedObject are exported (#โ€‹13123, #โ€‹13124)
    • [jest-mock] [BREAKING] Change the default jest.mocked helperโ€™s behavior to deep mocked (#โ€‹13125)
    • [jest-snapshot] [BREAKING] Let babel find config when updating inline snapshots (#โ€‹13150)
    • [@jest/test-result, @&#8203;jest/types] [BREAKING] Replace Bytes and Milliseconds types with number (#โ€‹13155)
    • [jest-worker] Adds workerIdleMemoryLimit option which is used as a check for worker memory leaks >= Node 16.11.0 and recycles child workers as required (#โ€‹13056, #โ€‹13105, #โ€‹13106, #โ€‹13107)
    • [pretty-format] [BREAKING] Remove ConvertAnsi plugin in favour of jest-serializer-ansi-escapes (#โ€‹13040)
    • [pretty-format] Allow to opt out from sorting object keys with compareKeys: null (#โ€‹12443)
    Fixes
    • [jest-config] Fix testing multiple projects with TypeScript config files (#โ€‹13099)
    • [@jest/expect-utils] Fix deep equality of ImmutableJS Record (#โ€‹13055)
    • [jest-haste-map] Increase the maximum possible file size that jest-haste-map can handle (#โ€‹13094)
    • [jest-runtime] Properly support CJS re-exports from dual packages (#โ€‹13170)
    • [jest-snapshot] Make prettierPath optional in SnapshotState (#โ€‹13149)
    • [jest-snapshot] Fix parsing error from inline snapshot files with JSX (#โ€‹12760)
    • [jest-worker] When a process runs out of memory worker exits correctly and doesn't spin indefinitely (#โ€‹13054)
    Chore & Maintenance

    v28.1.3

    Compare Source

    Features
    • [jest-leak-detector] Use native FinalizationRegistry when it exists to get rid of external C dependency (#โ€‹12973)
    Fixes
    Chore & Maintenance

    v28.1.2

    Compare Source

    Fixes
    • [jest-runtime] Avoid star type import from @jest/globals (#โ€‹12949)
    Chore & Maintenance
    • [docs] Mention that jest-codemods now supports Sinon (#โ€‹12898)

    v28.1.1

    Compare Source

    Features
    Fixes
    • [@jest/expect-utils] Fix deep equality of ImmutableJS OrderedMaps (#โ€‹12763)
    • [jest-docblock] Handle multiline comments in parseWithComments (#โ€‹12845)
    • [jest-mock] Improve spyOn error messages (#โ€‹12901)
    • [jest-runtime] Correctly report V8 coverage with resetModules: true (#โ€‹12912)
    • [jest-worker] Make JestWorkerFarm helper type to include methods of worker module that take more than one argument (#โ€‹12839)
    Chore & Maintenance
    • [docs] Updated docs to indicate that jest-environment-jsdom is a separate package #โ€‹12828
    • [docs] Document the comments used by coverage providers #โ€‹12835
    • [docs] Use docusaurus-remark-plugin-tab-blocks to format tabs with code examples (#โ€‹12859)
    • [jest-haste-map] Bump walker version (#โ€‹12324)

    v28.1.0

    Compare Source

    Features
    • [jest-circus] Add failing test modifier that inverts the behavior 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)

    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

    v28.0.2

    Compare Source

    Features
    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
    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)

    v27.5.1

    Compare Source

    Features
    Fixes
    Chore & Maintenance

    v27.5.0

    Compare Source

    Features
    • [expect] Add asymmetric matcher expect.closeTo (#โ€‹12243)
    • [jest-mock] Added mockFn.mock.lastCall to retrieve last argument (#โ€‹12285)
    Fixes
    • [expect] Add a fix for .toHaveProperty('') (#โ€‹12251)
    • [jest-each, @&#8203;jest/globals] Allow passing ReadonlyArray type of a table to describe.each and test.each (#โ€‹12297)
    • [@jest/globals] Add missing options argument to jest.doMock typing (#โ€‹12292)
    • [jest-environment-node] Add atob and btoa (#โ€‹12269)
    • [jest-matcher-utils] Correct diff for expected asymmetric matchers (#โ€‹12264)
    • [jest-message-util] Fix .getTopFrame() (and toMatchInlineSnapshot()) with mjs files (#โ€‹12277)
    Chore & Maintenance
    Performance
    • [jest-resolve] perf: skip error creation on not found stat calls (#โ€‹11749)

    Configuration

    ๐Ÿ“… Schedule: Branch creation - "before 3am every weekday" (UTC), Automerge - 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 these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

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

    renovate/@types/jest 
    opened by renovate[bot] 0
  • Update dependency jsdom to v20

    Update dependency jsdom to v20

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | jsdom | ^18.0.0 -> ^20.0.0 | age | adoption | passing | confidence |


    Release Notes

    jsdom/jsdom

    v20.0.3

    Compare Source

    • Updated dependencies, notably w3c-xmlserializer, which fixes using DOMParser on XML documents containing emoji.

    v20.0.2

    Compare Source

    • Fixed xhr.abort() to no longer give an exception when the constructed XMLHttpRequest was invalid. (whamtet)
    • Fixed event.getModifierState() on MouseEvent and KeyboardEvent instances to properly consult the ctrlKey, altKey, metaKey, and shiftKey properties of the event. (juzerzarif)
    • Fixed custom element creation to not be affected by any modifications to the window.customElements property. (bicknellr)

    v20.0.1

    Compare Source

    • Improved the performance of appending <option> elements to <select> elements. (TheHound)
    • Fixed location.pathname getter to not crash when the JSDOM instance was created using an opaque-path URL, including the default URL of about:blank.
    • Fixed crypto.getRandomValues() to accept typed array subclasses. (sebamarynissen)
    • Updated various dependency minor versions. Notably, nwsapi fixed some selectors bugs, and tough-cookie fixed some cookie bugs.

    v20.0.0

    Compare Source

    • Node.js v14 is now the minimum supported version
    • Added crypto.getRandomValues(). (sjrd)
    • Added HTMLFormControlsCollection and RadioNodeList, so formEl.elements now behaves correctly. (UndefinedBehavior)
    • Added the signal option to addEventListener(). (cheap-glitch)
    • Fixed the :root pseudoclass to work correctly. (hughs-ch)
    • Updated parse5, bringing along some HTML parsing and serialization fixes. (fb55)

    v19.0.0

    Compare Source

    • Changed jsdom.nodeLocation() to return undefined when used on nodes that originate via fragment parsing (e.g., via innerHTML). Previously it would return based on the node location of the fragment string, which made node locations unreliable with respect to the original document source. This restores the behavior that was present in v14.0.0, and was accidentally broken in v14.1.0. (bakkot)
    • Fixed calling window.close() inside the Window's load event to no longer crash. (MattiasBuelens)

    Configuration

    ๐Ÿ“… Schedule: Branch creation - "before 3am every weekday" (UTC), Automerge - 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, check this box

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

    renovate/jsdom 
    opened by renovate[bot] 0
  • Update dependency @types/react-dom to v18

    Update dependency @types/react-dom to v18

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @types/react-dom (source) | ^17.0.11 -> ^18.0.0 | age | adoption | passing | confidence |


    Configuration

    ๐Ÿ“… Schedule: Branch creation - "before 3am every weekday" (UTC), Automerge - 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, check this box

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

    renovate/@types/react-dom 
    opened by renovate[bot] 0
  • Update dependency @testing-library/react to v13

    Update dependency @testing-library/react to v13

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @testing-library/react | ^12.1.2 -> ^13.0.0 | age | adoption | passing | confidence |


    Release Notes

    testing-library/react-testing-library

    v13.4.0

    Compare Source

    Features

    v13.3.0

    Compare Source

    Features

    v13.2.0

    Compare Source

    Features

    v13.1.1

    Compare Source

    Bug Fixes

    v13.1.0

    Compare Source

    Features

    v13.0.1

    Compare Source

    Bug Fixes

    v13.0.0

    Compare Source

    Features
    BREAKING CHANGES

    v12.1.5

    Compare Source

    Bug Fixes

    v12.1.4

    Compare Source

    Bug Fixes

    v12.1.3

    Compare Source

    Bug Fixes

    Configuration

    ๐Ÿ“… Schedule: Branch creation - "before 3am every weekday" (UTC), Automerge - 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, check this box

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

    renovate/@testing-library/react 
    opened by renovate[bot] 0
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Open

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

    Detected dependencies

    github-actions
    .github/workflows/renovate-lint.yml
    • actions/checkout v3
    • suzuki-shunsuke/github-action-renovate-config-validator v0.1.2
    npm
    package.json
    • @babel/cli ^7.15.7
    • @babel/core ^7.16.7
    • @babel/preset-env ^7.15.8
    • @babel/preset-react ^7.14.5
    • @babel/preset-typescript ^7.15.0
    • @testing-library/react ^12.1.2
    • @types/jest ^27.0.3
    • @types/react-dom ^17.0.11
    • babel-jest ^27.4.6
    • eslint ^8.0.1
    • jest ^27.2.5
    • jsdom ^18.0.0
    • prettier ^2.4.1
    • react ^17.0.2
    • react-dom ^17.0.2
    • typescript ^4.5.3
    • react ^16 || ^17

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
Releases(v0.1.0)
Owner
Wayfair Tech โ€“ Incubator
Furnishing the future of technology with Wayfair.
Wayfair Tech โ€“ Incubator
a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package

Grommet: focus on the essential experience Documentation Visit the Grommet website for more information. Support / Contributing Before opening an issu

grommet 8.1k Jan 5, 2023
A react component available on npm to easily link to your project on github and is made using React, TypeScript and styled-components.

fork-me-corner fork-me-corner is a react component available on npm to easily link to your project on github and is made using React, TypeScript and s

Victor Dantas 9 Jun 30, 2022
react-dialog is a custom react hook to use a dialog easily

react-dialog react-dialog is a custom react hook to use a dialog easily. Documentation To use react-dialog follow the documentation. useDialog Returns

Levy Mateus Macedo 2 Mar 29, 2022
Reusable way to create smooth tab highlights.

useTabs Reusable way to create smooth tab highlights. Installation Install my-project with npm npm install @olivieralexander/usetabs Usage/Examples

OlivierAlexander 7 Jul 31, 2022
Create a performant distributed context state by synergyzing atomar context pieces and composing reusable state logic.

Synergies Create a performant distributed context state by synergyzing atomar context pieces and composing reusable state logic. synergies is a tiny (

Lukas Bach 8 Nov 8, 2022
This is a Chrome extension that aims to encourage accessibility awareness while using GitHub

github-a11y This is a Google Chrome extension that runs a simple JavaScript snippet on github.com domain and aims to encourage accessibility mindfulne

Kate Higa 9 Jul 24, 2022
Based on pure JS scripts, without relying on native, no need for react-native link, Title / Header / Tabs / Sticky / Screen components can be flexibly configured, among which Tabs / Sticky can slide When it reaches the top, it will be topped.

react-native-scrollable-tabview English | ็ฎ€ไฝ“ไธญๆ–‡ Based on pure JS scripts, without relying on native, no need for react-native link,Title / Header / Tab

null 136 Dec 30, 2022
Shows how React components and Redux to build a friendly user experience with instant visual updates and scaleable code in ecommerce applications

This simple shopping cart prototype shows how React components and Redux can be used to build a friendly user experience with instant visual updates and scaleable code in ecommerce applications.

Alan Vieyra 4 Feb 1, 2022
A small CLI tool to create a semantic release and git-cliff powered Changelog

cliff-jumper A small CLI tool to create a semantic release and git-cliff powered Changelog Description When managing a collection of projects you ofte

Favware 15 Sep 22, 2022
ESLint plugin for react-hook-form

eslint-plugin-react-hook-form react-hook-form is an awsome library which provide a neat solution for building forms. However, there are many rules for

Chuan-Tse Kao 37 Nov 22, 2022
An extremely helpful React Hook to trap the focusable elements / Hello Modals! Hello a11y!

react-use-focus-trap Everytime when people implement Modals... ...People forget that pro users as well as users that are permanently or temporarily re

David Lorenz 18 Nov 30, 2022
React hook library, ready to use, written in Typescript.

usehooks-ts React hook library, ready to use, written in Typescript. npm i usehooks-ts Created by Julien Caron and maintained with โค๏ธ by an amazing te

Julien 2.8k Jan 5, 2023
Small (0.5 Kb) react hook for getting media breakpoints state info in runtime

tiny-use-media Small (0.5 Kb) react hook for getting media breakpoints state info in runtime Usage npm i tiny-use-media --save Adn in your react code

Valeriy Komlev 51 Dec 13, 2022
๐Ÿ“‹ useClipboardApi() is a React Hook that consumes Web Clipboard API.

?? use-clipboard-api useClipboardApi() is a React Hook that consumes Web Clipboard API. Table of Contents Motivation Usage Contributing Bugs and Suges

Helder B. Berto 22 Dec 15, 2022
A custom react hook to use a dialogs easily.

dialog-hook The dialog-hook is a custom react hook to use a dialog easily. First of all it is necessary to install the package in your project some co

Levy Mateus Macedo 2 Mar 29, 2022
Official Semantic UI Integration for Ember

Semantic-UI-Ember This is the official Ember library for the Semantic-UI modules. Support The NodeJS and EmberJS versions respective tags are tested o

Semantic Org 335 Oct 1, 2022
This is a minimal Next.js app where you can create birthday wishes and share the link to anyone :)

Happy Birthday Wisher Check out the Live Website This is a simple Next.js project where you can generate a birthday wish for someone. Just enter their

Gourav Khunger 21 Dec 22, 2022
A React utility belt for function components and higher-order components.

A Note from the Author (acdlite, Oct 25 2018): Hi! I created Recompose about three years ago. About a year after that, I joined the React team. Today,

Andrew Clark 14.8k Jan 4, 2023
Nextjs-components: A collection of React components

nextjs-components A collection of React components, transcribed from https://vercel.com/design. 1 Motivation Blog post from 01/09/2022 Todo's Unit tes

null 94 Nov 30, 2022