Adding a bare bones feature flag setup

This commit is contained in:
Keith Stevens
2023-01-09 09:44:01 +09:00
parent 8eddd769b6
commit 69dc6bf68d
6 changed files with 60 additions and 3 deletions
+4
View File
@@ -2,6 +2,7 @@ import { Box, Button, Text, useColorMode } from "@chakra-ui/react";
import Image from "next/image";
import Link from "next/link";
import { useSession } from "next-auth/react";
import { Flags } from "react-feature-flags";
import { FaUser } from "react-icons/fa";
import { UserMenu } from "./UserMenu";
@@ -42,6 +43,9 @@ export function Header(props) {
</Link>
</div>
<div className="flex items-center gap-4">
<Flags authorizedFlags={["flagTest"]}>
<div>FlagTest</div>
</Flags>
<AccountButton />
<UserMenu />
</div>
+3
View File
@@ -0,0 +1,3 @@
const flags = [{ name: "flagTest", isActive: false }];
export default flags;
+7 -3
View File
@@ -3,7 +3,9 @@ import "focus-visible";
import type { AppProps } from "next/app";
import { SessionProvider } from "next-auth/react";
import { FlagsProvider } from "react-feature-flags";
import { getDefaultLayout, NextPageWithLayout } from "src/components/Layout";
import flags from "src/flags";
import { Chakra, getServerSideProps } from "../styles/Chakra";
@@ -16,9 +18,11 @@ function MyApp({ Component, pageProps: { session, cookies, ...pageProps } }: App
const page = getLayout(<Component {...pageProps} />);
return (
<Chakra cookies={cookies}>
<SessionProvider session={session}>{page}</SessionProvider>
</Chakra>
<FlagsProvider value={flags}>
<Chakra cookies={cookies}>
<SessionProvider session={session}>{page}</SessionProvider>
</Chakra>
</FlagsProvider>
);
}
export { getServerSideProps };