Skip to content

Commit

Permalink
[state-router] Fix link typings
Browse files Browse the repository at this point in the history
  • Loading branch information
mariuslundgard authored and rexxars committed Oct 6, 2020
1 parent 76d7674 commit 1c8f34d
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 13 deletions.
1 change: 1 addition & 0 deletions packages/@sanity/state-router/components.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './src/components'
14 changes: 8 additions & 6 deletions packages/@sanity/state-router/src/components/IntentLink.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import Link from './Link'
import {RouterProviderContext, IntentParameters} from './types'
import internalRouterContextTypeCheck from './internalRouterContextTypeCheck'

type Props = {
interface IntentLinkProps {
intent: string
params?: IntentParameters
children: React.ReactNode
className?: string
}

export default class IntentLink extends React.PureComponent<Props> {
export default class IntentLink extends React.PureComponent<
IntentLinkProps & Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'>
> {
context: RouterProviderContext

static contextTypes = {
Expand Down Expand Up @@ -39,8 +39,10 @@ export default class IntentLink extends React.PureComponent<Props> {
}

render() {
const {intent, params, ...rest} = this.props
const {intent, params, ...restProps} = this.props

return <Link href={this.resolveIntentLink(intent, params)} {...rest} ref={this.setElement} />
return (
<Link {...restProps} href={this.resolveIntentLink(intent, params)} ref={this.setElement} />
)
}
}
12 changes: 5 additions & 7 deletions packages/@sanity/state-router/src/components/Link.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,13 @@ function isModifiedEvent(event: MouseEvent) {
return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey)
}

type Props = {
interface LinkProps {
replace?: boolean
onClick?: (event: MouseEvent) => void
href: string
target?: string
children?: React.ReactNode
}

export default class Link extends React.PureComponent<Props> {
export default class Link extends React.PureComponent<
LinkProps & Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'>
> {
context: RouterProviderContext
_element: HTMLAnchorElement

Expand All @@ -31,7 +29,7 @@ export default class Link extends React.PureComponent<Props> {
__internalRouter: internalRouterContextTypeCheck
}

private handleClick = (event: MouseEvent): void => {
private handleClick = (event: React.MouseEvent<HTMLAnchorElement>): void => {
if (!this.context.__internalRouter) {
return
}
Expand Down
1 change: 1 addition & 0 deletions packages/@sanity/state-router/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"include": ["src/**/*.ts", "src/**/*.tsx"],
"exclude": ["node_modules", "test/**/*.ts"],
"compilerOptions": {
"declaration": true,
"strict": false,
"jsx": "react",
"outDir": "./lib"
Expand Down

0 comments on commit 1c8f34d

Please sign in to comment.