use-open-settings-via-query-param.tsx 837 B

1234567891011121314151617181920212223242526
  1. import { useEffect } from 'react'
  2. import { useSettingsModalContext } from '../context/settings-modal-context'
  3. import { isSplitTestEnabled } from '@/utils/splitTestUtils'
  4. export default function useOpenSettingsViaQueryParam() {
  5. const { setShow, setActiveTab } = useSettingsModalContext()
  6. useEffect(() => {
  7. const inNotificationsSplitTest = isSplitTestEnabled('email-notifications')
  8. if (!inNotificationsSplitTest) {
  9. return
  10. }
  11. const params = new URLSearchParams(window.location.search)
  12. if (params.get('open') !== 'project-notifications') {
  13. return
  14. }
  15. setShow(true)
  16. setActiveTab('project_notifications')
  17. const url = new URL(window.location.href)
  18. url.searchParams.delete('open')
  19. window.history.replaceState(window.history.state, '', url.toString())
  20. }, [setShow, setActiveTab])
  21. }