Skip to content

Commit 23a2b3d

Browse files
Extract types from tsx files
1 parent 5b513a6 commit 23a2b3d

4 files changed

Lines changed: 73 additions & 62 deletions

File tree

packages/react/index.tsx

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,21 @@
11
// eslint-disable-next-line eslint-comments/disable-enable-pair
22
/* eslint-disable react/require-default-props */
33
import { esModuleInterop } from '@iframe-resizer/common'
4-
import type {
5-
IFrameComponent,
6-
IFrameObject,
7-
IFrameOptions,
8-
} from '@iframe-resizer/core'
4+
import type { IFrameComponent } from '@iframe-resizer/core'
95
import connectResizer from '@iframe-resizer/core'
106
import acg from 'auto-console-group'
117
import React, {
128
forwardRef,
139
type ReactElement,
14-
type RefObject,
1510
useEffect,
1611
useImperativeHandle,
1712
useRef,
1813
} from 'react'
1914

2015
import filterIframeAttribs from './filter-iframe-attribs'
16+
import type { IFrameForwardRef, IFrameResizerProps } from './types'
2117

22-
export type IFrameForwardRef = Omit<IFrameObject, 'close' | 'disconnect'> & {
23-
/** @deprecated Use getRef() instead */
24-
getElement: () => IFrameComponent
25-
getRef: () => RefObject<IFrameComponent | null>
26-
}
27-
28-
type IframeProps = React.DetailedHTMLProps<
29-
React.IframeHTMLAttributes<HTMLIFrameElement>,
30-
HTMLIFrameElement
31-
>
32-
33-
export type IFrameResizerProps = Omit<IframeProps, 'scrolling'> &
34-
Omit<IFrameOptions, 'id' | 'onBeforeClose'>
18+
export type { IFrameForwardRef, IFrameResizerProps } from './types'
3519

3620
// Deal with UMD not converting default exports to named exports
3721
const createAutoConsoleGroup = esModuleInterop(acg)

packages/react/types.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import type {
2+
IFrameComponent,
3+
IFrameObject,
4+
IFrameOptions,
5+
} from '@iframe-resizer/core'
6+
import type React from 'react'
7+
import type { RefObject } from 'react'
8+
9+
export type IFrameForwardRef = Omit<IFrameObject, 'close' | 'disconnect'> & {
10+
/** @deprecated Use getRef() instead */
11+
getElement: () => IFrameComponent
12+
getRef: () => RefObject<IFrameComponent | null>
13+
}
14+
15+
type IframeProps = React.DetailedHTMLProps<
16+
React.IframeHTMLAttributes<HTMLIFrameElement>,
17+
HTMLIFrameElement
18+
>
19+
20+
export type IFrameResizerProps = Omit<IframeProps, 'scrolling'> &
21+
Omit<IFrameOptions, 'id' | 'onBeforeClose'>

packages/solid/IframeResizer.tsx

Lines changed: 5 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,15 @@
11
import { esModuleInterop } from '@iframe-resizer/common'
2-
import type {
3-
IFrameComponent,
4-
IFrameDirection,
5-
IFrameLogOption,
6-
IFrameMessageData,
7-
IFrameMouseData,
8-
IFrameObject,
9-
IFrameResizedData,
10-
IFrameScrollData,
11-
IFrameScrollOption,
12-
} from '@iframe-resizer/core'
2+
import type { IFrameComponent } from '@iframe-resizer/core'
133
import connectResizer from '@iframe-resizer/core'
144
import acg from 'auto-console-group'
15-
import type { ComponentProps, JSX } from 'solid-js'
5+
import type { JSX } from 'solid-js'
166
import { onCleanup, onMount, splitProps } from 'solid-js'
177

18-
const createAutoConsoleGroup = esModuleInterop(acg)
8+
import type { IFrameResizerProps } from './types'
199

20-
export type IFrameResizerMethods = Pick<
21-
IFrameObject,
22-
'moveToAnchor' | 'sendMessage'
23-
> & {
24-
getElement: () => IFrameComponent
25-
}
10+
export type { IFrameResizerMethods, IFrameResizerProps } from './types'
2611

27-
export type IFrameResizerProps = {
28-
license: string
29-
bodyBackground?: string | null
30-
bodyMargin?: string | number | null
31-
bodyPadding?: string | number | null
32-
checkOrigin?: boolean | string[]
33-
direction?: IFrameDirection
34-
inPageLinks?: boolean
35-
log?: IFrameLogOption
36-
offsetSize?: number
37-
scrolling?: IFrameScrollOption
38-
tolerance?: number
39-
warningTimeout?: number
40-
onReady?: (iframe: IFrameComponent) => void
41-
onMessage?: (data: IFrameMessageData) => void
42-
onResized?: (data: IFrameResizedData) => void
43-
onScroll?: (data: IFrameScrollData) => boolean
44-
onMouseEnter?: (data: IFrameMouseData) => void
45-
onMouseLeave?: (data: IFrameMouseData) => void
46-
ref?: (methods: IFrameResizerMethods) => void
47-
} & Omit<
48-
ComponentProps<'iframe'>,
49-
'scrolling' | 'ref' | 'onScroll' | 'onMouseEnter' | 'onMouseLeave'
50-
>
12+
const createAutoConsoleGroup = esModuleInterop(acg)
5113

5214
const RESIZER_KEYS = [
5315
'license',

packages/solid/types.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import type {
2+
IFrameComponent,
3+
IFrameDirection,
4+
IFrameLogOption,
5+
IFrameMessageData,
6+
IFrameMouseData,
7+
IFrameObject,
8+
IFrameResizedData,
9+
IFrameScrollData,
10+
IFrameScrollOption,
11+
} from '@iframe-resizer/core'
12+
import type { ComponentProps } from 'solid-js'
13+
14+
export type IFrameResizerMethods = Pick<
15+
IFrameObject,
16+
'moveToAnchor' | 'sendMessage'
17+
> & {
18+
getElement: () => IFrameComponent
19+
}
20+
21+
export type IFrameResizerProps = {
22+
license: string
23+
bodyBackground?: string | null
24+
bodyMargin?: string | number | null
25+
bodyPadding?: string | number | null
26+
checkOrigin?: boolean | string[]
27+
direction?: IFrameDirection
28+
inPageLinks?: boolean
29+
log?: IFrameLogOption
30+
offsetSize?: number
31+
scrolling?: IFrameScrollOption
32+
tolerance?: number
33+
warningTimeout?: number
34+
onReady?: (iframe: IFrameComponent) => void
35+
onMessage?: (data: IFrameMessageData) => void
36+
onResized?: (data: IFrameResizedData) => void
37+
onScroll?: (data: IFrameScrollData) => boolean
38+
onMouseEnter?: (data: IFrameMouseData) => void
39+
onMouseLeave?: (data: IFrameMouseData) => void
40+
ref?: (methods: IFrameResizerMethods) => void
41+
} & Omit<
42+
ComponentProps<'iframe'>,
43+
'scrolling' | 'ref' | 'onScroll' | 'onMouseEnter' | 'onMouseLeave'
44+
>

0 commit comments

Comments
 (0)