mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-30 02:25:30 -05:00
0e71084600
[web] BS5 project tools GitOrigin-RevId: 3181c62985b6db4051292b484f53178a0736fa75
21 lines
565 B
TypeScript
21 lines
565 B
TypeScript
import { forwardRef } from 'react'
|
|
|
|
export const fixedForwardRef = <
|
|
T,
|
|
P = object,
|
|
A extends Record<string, React.FunctionComponent> = Record<
|
|
string,
|
|
React.FunctionComponent
|
|
>,
|
|
>(
|
|
render: (props: P, ref: React.Ref<T>) => React.ReactElement | null,
|
|
propsToAttach: A = {} as A
|
|
): ((props: P & React.RefAttributes<T>) => React.ReactElement | null) & A => {
|
|
const ForwardReferredComponent = forwardRef(render) as any
|
|
|
|
for (const i in propsToAttach) {
|
|
ForwardReferredComponent[i] = propsToAttach[i]
|
|
}
|
|
|
|
return ForwardReferredComponent
|
|
}
|