Current collected state Current
Observed since 20 Oct, 21:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@-ft/mode-next
Next wrapper for theme mode manager
mode-next - Theme mode manager wrapper for NextNext wrapper of dark/light theme mode manager for web
/public/mode.js using @-ft/mode-codegen package.{
"variableName": "__theme_mode",
"persist": {
"type": "cookie",
"key": "THEME"
}
}
/mode.js in src/app/layout.tsx, apply default cookie-stored theme mode to class name/ssrInitialMode and suppress hydration warningimport { ModeContextProvider } from '@-ft/mode-next';
export default function RootLayout({ children }: PropsWithChildren) {
return (
<html
lang="en"
className={cookies().get('THEME')?.value === "dark" ? "dark" : undefined}
suppressHydrationWarning
>
<head>
<script src="/mode.js" />
</head>
<body>
<ModeContextProvider
variableName="__theme_mode"
ssrInitialMode={theme?.value ?? "system"}
>
{children}
</ModeContextProvider>
</body>
</html>
);
}
ModeContext in your app.'use client';
import { ModeContext } from '@-ft/mode-next';
function ModeBar() {
const { mode, setMode } = useContext(ModeContext);
return (
<Bar>
Current theme mode is {mode}.
<Select
onChange={useCallback((mode) => setMode(mode), [setMode])}
>
{['system', 'light', 'dark']}
</Select>
</Bar>
)
}
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
@-ft/mode-reactEnvironment{
"local_name": "@-ft/mode-react",
"alias": false,
"peer_metadata": null
} | ^0.0.7 | runtime |
nextEnvironment{
"local_name": "next",
"alias": false,
"peer_metadata": null
} | ^13.4.19 | peer |
Source distribution
{
"shasum": "80a55000af93dc4895e1487d2778ba2ca999379c",
"tarball": "https://registry.npmjs.org/@-ft/mode-next/-/mode-next-0.0.5.tgz",
"fileCount": 4,
"integrity": "sha512-CMgPmxiLkiLA/i550lubXYJVHpLNMTUAczyLlS6ZFsZwNWN3BhX84g06X1NZ4+1Tubtt64Iv1RngUhuEBKigYA==",
"signatures": [
{
"sig": "MEUCIQDIhozG61NUk+liVZr4aHngnGnwsiljra6GgM4SVAJrzwIges8KYm5pWZzLtKe/Gr/3RiFjB9EeQBrNPRWRIauEvYc=",
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
}
],
"unpackedSize": 2131
}Observed since 20 Oct, 21:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:cc5da29d125514e340f2a9c18ebbcd90ada0c13aa01797889db18cda8d380b09