
Research
/Security News
Toptal’s GitHub Organization Hijacked: 10 Malicious Packages Published
Threat actors hijacked Toptal’s GitHub org, publishing npm packages with malicious payloads that steal tokens and attempt to wipe victim systems.
react-smart-ticker
Advanced tools
React component that transforms child elements into a ticker (marquee)
React Smart Ticker is a React component that automatically displays text as a scrolling ticker/marquee when it overflows the container.
https://eugen-k.github.io/react-smart-ticker-demo/
[!IMPORTANT] For complex elements (e.g. images) is recommended to use SmartTicker component as browsers are performing better using CSS-based animation.
npm install react-smart-ticker --save
yarn add react-smart-ticker
Import SmartTicker or SmartTickerDraggable to a file depending on intended use:
import { SmartTicker } from 'react-smart-ticker'
import { SmartTickerDraggable } from 'react-smart-ticker'
Or import them both:
import { SmartTicker, SmartTickerDraggable } from 'react-smart-ticker'
Then in your .jsx or .tsx file use it as a simple React component:
import { SmartTicker, SmartTickerDraggable } from 'react-smart-ticker'
const App = () => (
<>
<SmartTicker>Some text</SmartTicker>
<SmartTickerDraggable>Some draggable text</SmartTickerDraggable>
</>
)
export default App
Prop Name | Type | Required | Default | Description |
---|---|---|---|---|
smart | boolean | No | true | Smart mode that determines if that's enough space to fit the content of the ticker, and if it's enough the animation will be turned off until the contents change |
isText | boolean | No | true | Determines if the content contains only text which allows showing ellipses when text content isn't fitted into the container |
multiLine | number | No | 0 | Determines the maximum amount of lines within a text content. Sets direction to "top" |
waitForFonts | boolean | No | true | Run the calculation only when fonts are loaded |
speed | number | No | 60 | Scrolling speed in pixels per second |
delay | number | No | 0 | Delay before starting the animation (in milliseconds) |
⚠️ delayBack | number | No | 0 | Delay before back animation (in milliseconds). Requires infiniteScrollView prop to be false ⚠️ SmartTickerDraggable prop only |
⚠️ speedBack | number | No | 200 | Scrolling speed in pixels per second for back animation. Requires infiniteScrollView prop to be false ⚠️ SmartTickerDraggable prop only |
iterations | number | "infinite" | No | "infinite" | Amount of animation iterations second |
infiniteScrollView | boolean | No | true | Determines if the content will repeated one by one during scrolling animation |
autoFill | boolean | No | false | Flag to determine if ticker content should be copied and fill in all the container's space |
direction | "left" | "right" | "top" | "bottom" | No | "left" | The direction in which the ticker will be moving |
rtl | boolean | No | false | Aligns text content to the right. The default direction of animation will be switched to 'right' |
pauseOnHover | boolean | No | false | Pause animation on hover |
playOnHover | boolean | No | false | Play animation on hover |
⚠️ pauseOnClick | boolean | No | false | Pause animation on click ⚠️ SmartTicker prop only |
⚠️ playOnClick | boolean | No | false | Play animation on click ⚠️ SmartTicker prop only |
⚠️ disableDragging | boolean | No | false | Disables ticker dragging possibility ⚠️ SmartTickerDraggable prop only |
recalcDeps | [] | No | [] | Array of dependencies that trigger recalculation of the component |
disableSelect | boolean | No | false | Controls the possibility of a user to select text in a ticker |
style | CSSProperties | No | null | Ticker component custom CSS styles |
containerStyle | CSSProperties | No | null | Ticker container component custom CSS styles |
forwardedRef | ForwardedRef | No | null | Forwareded Ref for controlling the animation state |
The components provide methods for developers to control the ticker’s play, pause and resets state programmatically. These methods are accessible via forwardedRef
and allow you to start, stop and reset the ticker based on your app’s requirements.
To enable control over play and pause, react-smart-ticker uses forwardRef. The component exposes the following methods:
isPaused
(true by default) flag sets the animation state after resetting.To use these methods, you need to: 1. Create a reference using useRef. 2. Attach the ref to the SmartTicker component. 3. Call the play and pause methods directly from the ref.
Here’s an example of setting up and using play and pause with react-smart-ticker:
import { useRef } from 'react';
import SmartTicker from 'react-smart-ticker';
function App() {
// Create a ref to access SmartTicker methods
const tickerRef = useRef<{
play: () => void
pause: () => void
reset: (isPaused: boolean) => void
}>(null)
// Define handlers to control the ticker
const handlePlay = () => {
tickerRef.current?.play()
}
const handlePause = () => {
tickerRef.current?.pause()
}
const handleReset = (isPaused: boolean = true) => {
tickerRef.current?.reset(isPaused)
}
return (
<div>
<SmartTicker forwardedRef={tickerRef}>
<p>Your ticker content goes here</p>
</SmartTicker>
<button onClick={() => { handlePlay() }}>Play</button>
<button onClick={() => { handlePause() }}>Pause</button>
<button onClick={() => { handleReset(true) }}>Reset (w/pause)</button>
</div>
)
}
export default App;
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
React component that transforms child elements into a ticker (marquee)
The npm package react-smart-ticker receives a total of 20 weekly downloads. As such, react-smart-ticker popularity was classified as not popular.
We found that react-smart-ticker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.
Research
/Security News
Threat actors hijacked Toptal’s GitHub org, publishing npm packages with malicious payloads that steal tokens and attempt to wipe victim systems.
Research
/Security News
Socket researchers investigate 4 malicious npm and PyPI packages with 56,000+ downloads that install surveillance malware.
Security News
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.