types.ts 913 B

12345678910111213141516171819202122232425262728
  1. import { ReactElement, SyntheticEvent } from 'react'
  2. type Axis = 'both' | 'x' | 'y' | 'none'
  3. export type ResizeHandle = 's' | 'w' | 'e' | 'n' | 'sw' | 'nw' | 'se' | 'ne'
  4. export type ResizeCallbackData = {
  5. node: HTMLElement
  6. size: { width: number; height: number }
  7. handle: ResizeHandle
  8. }
  9. export type ResizableProps = {
  10. children: ReactElement<any>
  11. className?: string
  12. width: number
  13. height: number
  14. scale?: number
  15. handle: (resizeHandle: ResizeHandle) => ReactElement<any> | ReactElement<any>
  16. handleSize: [number, number]
  17. resizeHandles: ResizeHandle[]
  18. lockAspectRatio: boolean
  19. axis: Axis
  20. minConstraints: [number, number]
  21. maxConstraints: [number, number]
  22. onResizeStop?: (e: SyntheticEvent, data: ResizeCallbackData) => any
  23. onResizeStart?: (e: SyntheticEvent, data: ResizeCallbackData) => any
  24. onResize?: (e: SyntheticEvent, data: ResizeCallbackData) => any
  25. draggableOpts?: object
  26. }