
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
ionic-react-dark-mode
Advanced tools
A React Hook and Context implementation for managing dark mode in Ionic React applications using Capacitor Preferences.
A React Hook and Context implementation for managing dark mode in Ionic React applications using Capacitor Preferences.
To install the package, use the following command:
npm install ionic-react-dark-mode
Create or update the src/theme/variables.css file with the following content:
:root {
/* Light mode colors */
--ion-color-primary-light: #008000;
/* Dark mode colors */
--ion-color-primary-dark: #222428;
}
body {
--ion-color-primary: var(--ion-color-primary-light);
}
body.dark {
--ion-color-primary: var(--ion-color-primary-dark);
}
To reflect color changes in dark mode and light mode, add color="primary" to your Ionic elements. For example:
import React from 'react';
import {
IonApp,
IonHeader,
IonToolbar,
IonTitle,
IonContent,
IonButton,
IonMenu,
IonMenuToggle,
IonList,
IonItem,
IonLabel,
IonPage,
IonSplitPane,
} from '@ionic/react';
import { ThemeProvider, useTheme } from 'ionic-react-dark-mode';
const Menu: React.FC = () => (
<IonMenu contentId="main-content">
<IonHeader>
<IonToolbar>
<IonTitle>Menu</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<IonList>
<IonMenuToggle autoHide={false}>
<IonItem button>
<IonLabel>Home</IonLabel>
</IonItem>
</IonMenuToggle>
{/* Add more menu items here */}
</IonList>
</IonContent>
</IonMenu>
);
const MainContent: React.FC = () => {
const { isDarkMode, toggleDarkMode } = useTheme();
return (
<IonPage id="main-content">
<IonHeader>
<IonToolbar color="primary">
<IonMenuToggle slot="start">
<IonButton>Menu</IonButton>
</IonMenuToggle>
<IonTitle>Dark Mode Example</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<IonButton onClick={toggleDarkMode}>
{isDarkMode ? 'Switch to Light Mode' : 'Switch to Dark Mode'}
</IonButton>
</IonContent>
</IonPage>
);
};
const App: React.FC = () => (
<IonApp>
<IonSplitPane contentId="main-content">
<Menu />
<MainContent />
</IonSplitPane>
</IonApp>
);
const AppWrapper: React.FC = () => (
<ThemeProvider>
<App />
</ThemeProvider>
);
export default AppWrapper;
An example project demonstrating the usage of this package can be found in the examples/sample directory of this repository. The example includes:
Clone the repository and run below commands:
cd examples/sample
ionic serve
Note: By default, the package do not check if the browser supports window.matchMedia and whether the user prefers a dark color scheme. To enable check pass the checkMatchMediaSupport={true} props in ThemeProvider like below:
<ThemeProvider checkMatchMediaSupport={true}>
.....
</ThemeProvider>
FAQs
A React Hook and Context implementation for managing dark mode in Ionic React applications using Capacitor Preferences.
The npm package ionic-react-dark-mode receives a total of 1 weekly downloads. As such, ionic-react-dark-mode popularity was classified as not popular.
We found that ionic-react-dark-mode demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 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
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.