# Feature Flags ## Usage - Set token at environment variable - The key can be obtained from the [Feature Flag Portal](https://portal.featureflag.co/account-settings/projects) ```shell # .env.local AFFINE_FEATURE_FLAG_TOKEN=XXXXXXX ``` - Set provider ```tsx import { FeatureFlagsProvider } from '@toeverything/datasource/feature-flags'; const App = () => { return ( ); }; ``` - use flag ```ts import { useFlag } from '@toeverything/datasource/feature-flags'; const App = () => { // flag key, default value const flag1 = useFlag('flag1', false); // ^? boolean const flag2 = useFlag('flag2'); // ^? boolean | undefined return flag1 &&
The flag1 is enable!
; }; ``` ## How to add a new feature flag? - Enter [Portal](https://portal.featureflag.co/switch-manage) - Click `New Switch` button - Input `Switch Name`, and Enter - Adjust data and save # Test flags **When entering development mode feature flag will NOT be updated in real time** - `activateFfcDevMode(PASSWORD)` play with feature flags locally - The `devModePassword` can be obtained from `src/config.ts` - `quitFfcDevMode()` quit dev mode ## Running unit tests Run `nx test datasource/feature-flags` to execute the unit tests via [Jest](https://jestjs.io). ## References - [Feature Flag Portal](https://portal.featureflag.co/) - [Feature Flag React Web APP DEMO](https://featureflag.moyincloud.com/ksrm/React_Web_APP.html)