mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-30 01:04:39 +03:00
.. | ||
src | ||
.babelrc | ||
.eslintrc.json | ||
jest.config.ts | ||
package.json | ||
project.json | ||
README.md | ||
tsconfig.json | ||
tsconfig.lib.json | ||
tsconfig.spec.json |
Feature Flags
Usage
- Set token at environment variable
- The key can be obtained from the Feature Flag Portal
# .env.local
AFFINE_FEATURE_FLAG_TOKEN=XXXXXXX
- Set provider
import { FeatureFlagsProvider } from '@toeverything/datasource/feature-flags';
const App = () => {
return (
<FeatureFlagsProvider>
<Page />
</FeatureFlagsProvider>
);
};
- use flag
import { useFlag } from '@toeverything/datasource/feature-flags';
const App = () => {
// flag key, default value
const flag1 = useFlag('flag1', false);
// ^? boolean
const flag2 = useFlag<boolean>('flag2');
// ^? boolean | undefined
return flag1 && <div>The flag1 is enable!</div>;
};
How to add a new feature flag?
- Enter Portal
- Click
New Switch
button- Input
Switch Name
, and Enter - Adjust data and save
- Input
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 fromsrc/config.ts
- The
quitFfcDevMode()
quit dev mode
Running unit tests
Run nx test datasource/feature-flags
to execute the unit tests via Jest.