use-scope.tsx 429 B

12345678910111213141516
  1. import { merge } from 'lodash'
  2. import { useLayoutEffect, useRef } from 'react'
  3. /**
  4. * Merge properties with the scope object, for use in Storybook stories
  5. */
  6. export const useScope = (scope: Record<string, unknown>) => {
  7. const scopeRef = useRef<typeof scope | null>(null)
  8. if (scopeRef.current === null) {
  9. scopeRef.current = scope
  10. }
  11. useLayoutEffect(() => {
  12. merge(window._ide.$scope, scopeRef.current)
  13. }, [])
  14. }