![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
@r/widgets
Advanced tools
A collection of React components and the Redux actions and reducers to accompany them
A collection of helpful React components that can be used without much effort in a React + Redux environment
To install, use npm:
npm install -S @r/widgets
You'll also need to install the peer dependencies. Ex:
npm install -S lodash@4 react@15 react-redux@4 redux@3 reselect@2
First, plug in the reducer. Be sure that the reducer is named widgets
in the store.
import widgets from '@r/widgets/reducer';
import { combineReducers } from 'redux';
const reducers = combineReducers({
widgets,
/* other reducers */
});
Create a tooltip and give it a target. Both the target and the tooltip must have the same id. If you want to auto-close tooltips when the user clicks elsewhere on the page, include the TooltipShutter
.
import React from 'react';
import { Tooltip, TooltipTarget, TooltipShutter } from '@r/widgets/tooltip';
class Foo extends React.Component {
render() {
return (
<div>
<div>
<TooltipTarget id='test tooltip'>Mouse over me!</Target>
</div>
<Tooltip
id='test tooltip'
alignment={ Tooltip.ALIGN.ABOVE }
>
Hello!
</Tooltip>
<TooltipShutter/>
</div>
);
}
}
And that's it! Tooltip and Target also come with a few configuration options:
Tooltip
alignment
: One of Tooltip.ALIGN.ABOVE
, Tooltip.ALIGN.BELOW
, Tooltip.ALIGN.LEFT
, Tooltip.ALIGN.RIGHT
offset
: Number of pixels the tooltip should be separated from the target when shown.TooltipTarget
type
: Indicates what kind of action will trigger the tooltip. One of TooltipTarget.TYPE.HOVER
, TooltipTarget.TYPE.CLICK
, or TooltipTarget.TYPE.BOTH
.Much like the tooltip, you need to plug in the reducer. Be sure that the reducer is named widgets
in the store.
import widgets from '@r/widgets/reducer';
import { combineReducers } from 'redux';
const reducers = combineReducers({
widgets,
/* other reducers */
});
Create a modal and give it a target. Both the target and the modal must have the same id.
import React from 'react';
import { Modal, ModalTarget } from '@r/widgets/modal';
class Foo extends React.Component {
render() {
return (
<div>
<div>
<ModalTarget id='test modal'>Click me!</ModalTarget>
</div>
<Modal
id='test modal'
className='TestModal' // modals come unstyled by default,
// so you'll want to give it a className
>
Hello!
</Modal>
</div>
);
}
}
The Scroller
semi-lazily renders items, keeping the DOM from being cluttered with a large number of elements. If the scroller is given an id
, it will save its scroll position as well.
It is highly recommended each Scroller
instance is given a key. This ensures that each Scroller
can operate independently of any other Scroller
;
Any refs
on the children are overwritten by Scroller
, so do not expect those to be maintained.
Finally, each child in the Scroller
MUST have a key.
id: <String> optional.
if provided, the Scroller will save the last scroll position
buffer: <Number> optional.
adjusts the distance above and below the Scroller viewport where
components will still be rendered.
loadMargin: <Number> optional.
adjusts the distance from the bottom of the Scroller where the
callback is fired
onLoadMore: <Function> optional.
called when the scroll position hits the `loadMargin`
Using the Scroller
:
import React from 'react';
import Scroller from '@r/widgets/scroller';
class Foo extends React.Component {
render() {
return (
<div>
<Scroller
id='Foo-scroller'
key='unique-key'
>
{ children.map(c => (
<div key={ c.id }>{ c.title }</div>
)) }
</Scroller>
</div>
);
}
}
FAQs
A collection of React components and the Redux actions and reducers to accompany them
The npm package @r/widgets receives a total of 118 weekly downloads. As such, @r/widgets popularity was classified as not popular.
We found that @r/widgets demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 14 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.