new-editor-utils.ts 943 B

1234567891011121314151617181920212223242526272829303132
  1. import { useFeatureFlag } from '@/shared/context/split-test-context'
  2. import { useUserSettingsContext } from '@/shared/context/user-settings-context'
  3. // For e2e tests purposes, allow overriding to old editor
  4. export const oldEditorOverride =
  5. new URLSearchParams(window.location.search).get('old-editor-override') ===
  6. 'true'
  7. export const canUseNewEditor = () => {
  8. return !oldEditorOverride
  9. }
  10. export const useIsNewEditorEnabled = () => {
  11. const { userSettings } = useUserSettingsContext()
  12. const noOptOut = useFeatureFlag('editor-redesign-no-opt-out')
  13. const hasAccess = canUseNewEditor()
  14. if (!hasAccess) {
  15. return false
  16. }
  17. const enabled = userSettings.enableNewEditor
  18. if (noOptOut) {
  19. return true
  20. }
  21. return enabled
  22. }
  23. export const useIsNewToNewEditor = () => {
  24. const { userSettings } = useUserSettingsContext()
  25. const newEditor = useIsNewEditorEnabled()
  26. return newEditor && !userSettings.enableNewEditorLegacy
  27. }