docs(use-current-state): add docs for functional initializer mode

fix(dropdown): update layout when mouseenter triggered
This commit is contained in:
unix
2020-05-24 01:55:36 +08:00
parent 0807360dbd
commit 971dcd7492
3 changed files with 12 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
import React, { MutableRefObject, useState } from 'react'
import React, { MutableRefObject, useEffect, useState } from 'react'
import { createPortal } from 'react-dom'
import usePortal from '../utils/use-portal'
import useResize from '../utils/use-resize'
@@ -57,6 +57,15 @@ const Dropdown: React.FC<React.PropsWithChildren<Props>> = React.memo(
useDOMObserver(parent, () => {
updateRect()
})
useEffect(() => {
if (!parent || !parent.current) return
parent.current.addEventListener('mouseenter', updateRect)
/* istanbul ignore next */
return () => {
if (!parent || !parent.current) return
parent.current.removeEventListener('mouseenter', updateRect)
}
}, [parent])
const clickHandler = (event: React.MouseEvent<HTMLDivElement>) => {
event.stopPropagation()

View File

@@ -46,7 +46,7 @@ type CurrentStateType<S> = [
]
const useCurrentState<S> = (
initialState: S,
initialState: S | () => S,
) => CurrentStateType<S>
```

View File

@@ -44,7 +44,7 @@ type CurrentStateType<S> = [
]
const useCurrentState<S> = (
initialState: S,
initialState: S | () => S,
) => CurrentStateType<S>
```