mirror of
https://github.com/ikun0014/lx-music-mobile.git
synced 2025-05-23 22:37:41 +08:00
30 lines
809 B
TypeScript
30 lines
809 B
TypeScript
import React, { useRef, useImperativeHandle, forwardRef, useState } from 'react'
|
|
import Modal, { MusicMultiAddModalType as ModalType, SelectInfo } from './MusicMultiAddModal'
|
|
|
|
export interface MusicMultiAddModalType {
|
|
show: (info: SelectInfo) => void
|
|
}
|
|
|
|
export default forwardRef<MusicMultiAddModalType, {}>((props, ref) => {
|
|
const musicMultiAddModalRef = useRef<ModalType>(null)
|
|
const [visible, setVisible] = useState(false)
|
|
|
|
useImperativeHandle(ref, () => ({
|
|
show(listInfo) {
|
|
if (visible) musicMultiAddModalRef.current?.show(listInfo)
|
|
else {
|
|
setVisible(true)
|
|
requestAnimationFrame(() => {
|
|
musicMultiAddModalRef.current?.show(listInfo)
|
|
})
|
|
}
|
|
},
|
|
}))
|
|
|
|
return (
|
|
visible
|
|
? <Modal ref={musicMultiAddModalRef} />
|
|
: null
|
|
)
|
|
})
|