use-set-compilation-setting.ts 716 B

1234567891011121314151617181920212223
  1. import { useEditorAnalytics } from '@/shared/hooks/use-editor-analytics'
  2. import { useCallback } from 'react'
  3. export function useSetCompilationSettingWithEvent<T>(
  4. settingName: string,
  5. setter: (value: T) => void,
  6. options: { omitValueInEvent?: boolean } = {}
  7. ): (value: T) => void {
  8. const { sendEvent } = useEditorAnalytics()
  9. return useCallback(
  10. value => {
  11. const segmentation: { setting: string; settingVal?: T } = {
  12. setting: settingName,
  13. }
  14. if (!options.omitValueInEvent) {
  15. segmentation.settingVal = value
  16. }
  17. sendEvent('recompile-setting-changed', segmentation)
  18. setter(value)
  19. },
  20. [sendEvent, setter, settingName, options.omitValueInEvent]
  21. )
  22. }