
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
react-popup-manager
Advanced tools
Manage react popups, Modals, Lightboxes, Notifications, etc. easily
Manage react popups, Modals, Lightboxes, Notifications, etc. easily.
An agnostic react provider that lets you handle opening and closing popups separately from your Component render
function.
isOpen
stateComponent
should be written.An example of how using this library will simplify your code
The Old Way | The react-popup-manager Way |
---|---|
npm install react-popup-manager
# or
yarn add react-popup-manager
import React from 'react';
import { PopupProvider, usePopupManager } from 'react-popup-manager';
import Modal from 'any-modal-library';
// Your modal component
const MyModal = ({ isOpen, onClose }) => (
<Modal isOpen={isOpen} >
<h1>My Modal</h1>
<button onClick={() => onClose({ success: true })}>
Close
</button>
</Modal>
);
// Component that uses the modal
const MyComponent = () => {
const popupManager = usePopupManager();
const handleOpenModal = async () => {
const { response } = popupManager.open(MyModal);
const result = await response;
console.log(result); // { success: true }
};
return (
<div>
<button onClick={handleOpenModal}>Open Modal</button>
</div>
);
};
// Root component with provider
const App = () => (
<PopupProvider>
<MyComponent />
</PopupProvider>
);
export default App;
import React, { useState } from 'react';
import { usePopupManager } from 'react-popup-manager';
import Modal from 'any-modal-library';
const ConfirmationModal = ({ isOpen, onClose, message }) => (
<Modal isOpen={isOpen} >
<h2>{message}</h2>
<button onClick={() => onClose({ confirmed: true })}>Yes</button>
<button onClick={() => onClose({ confirmed: false })}>No</button>
</Modal>
);
const TodoList = () => {
const [todos, setTodos] = useState(['Task 1', 'Task 2']);
const popupManager = usePopupManager();
const handleDeleteTodo = async (index) => {
const { response } = popupManager.open(ConfirmationModal, {
message: 'Are you sure you want to delete this task?'
});
const result = await response;
if (result.confirmed) {
setTodos(todos.filter((_, i) => i !== index));
}
};
return (
<ul>
{todos.map((todo, index) => (
<li key={index}>
{todo}
<button onClick={() => handleDeleteTodo(index)}>Delete</button>
</li>
))}
</ul>
);
};
export default TodoList;
Returns the popup manager instance with methods to control popups.
const popupManager = usePopupManager();
A React context provider that should wrap your application.
<PopupProvider>
<App />
</PopupProvider>
Opens a popup and renders the popup component.
Parameters:
componentClass
: Component to renderpopupProps
(optional): Props passed to the popup component
onClose
(deprecated): Legacy callback method, use response
insteadNote:
isOpen
prop is not allowed and will be managed internally
Returns:
{
close: (...args: any[]) => void; // Closes the popup
unmount: () => void; // Removes popup from DOM
response: Promise<any>; // Resolves when popup closes
}
Response Resolution:
The response
promise resolves with:
// In your modal:
onClose({ data: 'success' });
// In your component:
const { response } = popupManager.open(MyModal);
const result = await response;
console.log(result); // { data: 'success' }
Closes all open popups.
const MyComponent = () => {
const popupManager = usePopupManager();
const handleOpenModal = () => {
popupManager.open(MyModal, {
onClose: (result) => console.log(result)
});
};
};
const MyComponent = () => {
const popupManager = usePopupManager();
const handleOpenModal = async () => {
const { response } = popupManager.open(MyModal);
const result = await response;
console.log(result);
};
};
MIT
FAQs
Manage react popups, Modals, Lightboxes, Notifications, etc. easily
The npm package react-popup-manager receives a total of 372 weekly downloads. As such, react-popup-manager popularity was classified as not popular.
We found that react-popup-manager demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 11 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.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.