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 |
|---|---|---|
nextEnvironment{
"local_name": "next",
"alias": false,
"peer_metadata": null
} | 13 || 14 | peer |
@-ft/modeEnvironment{
"local_name": "@-ft/mode",
"alias": false,
"peer_metadata": null
} | ^0.1.0 | peer |
Source distribution
{
"shasum": "e6ff9836bffb5ae742084c4d10ded68c9f588dcb",
"tarball": "https://registry.npmjs.org/@-ft/mode-next/-/mode-next-0.1.4.tgz",
"fileCount": 4,
"integrity": "sha512-KCAq7P4+RdwbXXGTSsnklfhvjoo+6FPlHXzCo0pvUXbADdhRyn6hzu8YmT2KVu3QnJweP3hm7M3hJYQkmFYNUw==",
"signatures": [
{
"sig": "MEUCIGz0TUrB4i1P3QNPtIVpmpOEI/DKOQw+X4jMlzL7+so6AiEAniznDLq7iwpKYbAWy9lfRYqnB00kwCBipK7PNK//3gk=",
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
}
],
"unpackedSize": 3398
}Observed since 20 Oct, 21:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:8dc57d0c8879fb36cfd0a34bb691057c41af85be5e71c1e51fdeab562093eebf