Skip to content

Commit

Permalink
update lint preference and dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
mohsinulhaq committed Mar 17, 2020
1 parent ac4ebcc commit 28f5a2b
Show file tree
Hide file tree
Showing 8 changed files with 3,654 additions and 3,283 deletions.
3 changes: 1 addition & 2 deletions .prettierrc
@@ -1,4 +1,3 @@
{
"singleQuote": true,
"bracketSpacing": false
"singleQuote": true
}
18 changes: 9 additions & 9 deletions .size-snapshot.json
@@ -1,20 +1,20 @@
{
"dist/cjs/react-popper-tooltip.js": {
"bundled": 15217,
"minified": 8547,
"gzipped": 2448
"bundled": 12761,
"minified": 7781,
"gzipped": 2222
},
"dist/esm/react-popper-tooltip.js": {
"bundled": 15179,
"minified": 8529,
"gzipped": 2444,
"bundled": 12722,
"minified": 7753,
"gzipped": 2209,
"treeshaked": {
"rollup": {
"code": 236,
"import_statements": 216
"code": 187,
"import_statements": 167
},
"webpack": {
"code": 9196
"code": 8420
}
}
}
Expand Down
55 changes: 28 additions & 27 deletions package.json
Expand Up @@ -20,6 +20,7 @@
"scripts": {
"build": "rm -rf dist && rollup -c && cp src/styles.css dist && yarn tsc && rm -rf compiled",
"prepublishOnly": "yarn typecheck && yarn lint && yarn build && yarn test",
"prettier": "prettier --write src/**/*.{ts,tsx}",
"docs": "docz dev",
"docs:build": "docz build",
"typecheck": "tsc --noEmit",
Expand Down Expand Up @@ -55,38 +56,38 @@
"react-dom": "^16.6.0"
},
"dependencies": {
"@babel/runtime": "^7.7.4",
"react-popper": "^1.3.6"
"@babel/runtime": "^7.8.7",
"react-popper": "^1.3.7"
},
"devDependencies": {
"@babel/cli": "^7.7.4",
"@babel/core": "^7.7.4",
"@babel/plugin-proposal-class-properties": "^7.7.4",
"@babel/plugin-transform-runtime": "^7.7.4",
"@babel/preset-env": "^7.7.4",
"@babel/preset-react": "^7.7.4",
"@babel/preset-typescript": "^7.7.4",
"@testing-library/react": "^9.3.2",
"@types/jest": "^24.0.23",
"@types/react": "^16.9.13",
"@types/react-dom": "^16.9.4",
"@typescript-eslint/eslint-plugin": "^2.9.0",
"@typescript-eslint/parser": "^2.9.0",
"docz": "^2.1.1",
"eslint": "^6.7.1",
"eslint-config-prettier": "^6.7.0",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-react": "^7.16.0",
"husky": "^3.1.0",
"jest": "^24.9.0",
"lint-staged": "^9.5.0",
"@babel/cli": "^7.8.4",
"@babel/core": "^7.8.7",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-transform-runtime": "^7.8.3",
"@babel/preset-env": "^7.8.7",
"@babel/preset-react": "^7.8.3",
"@babel/preset-typescript": "^7.8.3",
"@testing-library/react": "^10.0.1",
"@types/jest": "^25.1.4",
"@types/react": "^16.9.23",
"@types/react-dom": "^16.9.5",
"@typescript-eslint/eslint-plugin": "^2.24.0",
"@typescript-eslint/parser": "^2.24.0",
"docz": "^2.2.0",
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.10.0",
"eslint-plugin-prettier": "^3.1.2",
"eslint-plugin-react": "^7.19.0",
"husky": "^4.2.3",
"jest": "^25.1.0",
"lint-staged": "^10.0.8",
"prettier": "^1.19.1",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"rollup": "^1.27.5",
"rollup-plugin-babel": "^4.3.3",
"rollup": "^2.0.6",
"rollup-plugin-babel": "^4.4.0",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-plugin-size-snapshot": "^0.10.0",
"typescript": "^3.7.2"
"rollup-plugin-size-snapshot": "^0.11.0",
"typescript": "^3.8.3"
}
}
20 changes: 10 additions & 10 deletions src/Tooltip.tsx
@@ -1,11 +1,11 @@
import React, {Component} from 'react';
import React, { Component } from 'react';
import {
GetArrowPropsArg,
GetTooltipPropsArg,
TooltipProps,
TriggerTypes
} from './types';
import {callAll, TooltipContext, setRef} from './utils';
import { callAll, TooltipContext, setRef } from './utils';

const MUTATION_OBSERVER_CONFIG: MutationObserverInit = {
childList: true,
Expand Down Expand Up @@ -79,7 +79,7 @@ class Tooltip extends Component<TooltipProps> {
}

public render() {
const {arrowProps, placement, tooltip} = this.props;
const { arrowProps, placement, tooltip } = this.props;

return (
<TooltipContext.Provider value={this.contextValue}>
Expand All @@ -95,16 +95,16 @@ class Tooltip extends Component<TooltipProps> {
}

private isTriggeredBy(event: TriggerTypes) {
const {trigger} = this.props;
const { trigger } = this.props;
return (
trigger === event || (Array.isArray(trigger) && trigger.includes(event))
);
}

private handleOutsideClick?: EventListener = event => {
if (this.tooltipRef && !this.tooltipRef.contains(event.target as Node)) {
const {parentOutsideClickHandler} = this.context;
const {hideTooltip, clearScheduled} = this.props;
const { parentOutsideClickHandler } = this.context;
const { hideTooltip, clearScheduled } = this.props;

clearScheduled();
hideTooltip();
Expand All @@ -116,8 +116,8 @@ class Tooltip extends Component<TooltipProps> {

private handleOutsideRightClick?: EventListener = event => {
if (this.tooltipRef && !this.tooltipRef.contains(event.target as Node)) {
const {parentOutsideRightClickHandler} = this.context;
const {hideTooltip, clearScheduled} = this.props;
const { parentOutsideRightClickHandler } = this.context;
const { hideTooltip, clearScheduled } = this.props;

clearScheduled();
hideTooltip();
Expand Down Expand Up @@ -156,7 +156,7 @@ class Tooltip extends Component<TooltipProps> {

private getArrowProps = (props: GetArrowPropsArg = {}) => ({
...props,
style: {...props.style, ...this.props.arrowProps.style}
style: { ...props.style, ...this.props.arrowProps.style }
});

private getTooltipProps = (props: GetTooltipPropsArg = {}) => ({
Expand All @@ -165,7 +165,7 @@ class Tooltip extends Component<TooltipProps> {
onMouseEnter: callAll(this.props.clearScheduled, props.onMouseEnter),
onMouseLeave: callAll(this.props.hideTooltip, props.onMouseLeave)
}),
style: {...props.style, ...this.props.style}
style: { ...props.style, ...this.props.style }
});

private contextValue = {
Expand Down
46 changes: 29 additions & 17 deletions src/TooltipTrigger.tsx
Expand Up @@ -2,17 +2,17 @@
* @author Mohsin Ul Haq <mohsinulhaq01@gmail.com>
*/
import PopperJS from 'popper.js';
import React, {Component} from 'react';
import {createPortal} from 'react-dom';
import {Manager, Popper, Reference} from 'react-popper';
import React, { Component } from 'react';
import { createPortal } from 'react-dom';
import { Manager, Popper, Reference } from 'react-popper';
import Tooltip from './Tooltip';
import {
GetTriggerPropsArg,
TooltipTriggerProps,
TooltipTriggerState,
TriggerTypes
} from './types';
import {callAll, canUseDOM, noop} from './utils';
import { callAll, canUseDOM, noop } from './utils';

const DEFAULT_MODIFIERS: PopperJS.Modifiers = {
preventOverflow: {
Expand Down Expand Up @@ -95,8 +95,8 @@ class TooltipTrigger extends Component<
scheduleUpdate
}) => {
if (followCursor && this.popperOffset) {
const {pageX, pageY} = this.state;
const {width, height} = this.popperOffset;
const { pageX, pageY } = this.state;
const { width, height } = this.popperOffset;
const x =
pageX! + width > window.scrollX + document.body.offsetWidth
? pageX! - width
Expand Down Expand Up @@ -132,8 +132,8 @@ class TooltipTrigger extends Component<
return (
<Manager>
<Reference innerRef={getTriggerRef}>
{({ref}) =>
children({getTriggerProps: this.getTriggerProps, triggerRef: ref})
{({ ref }) =>
children({ getTriggerProps: this.getTriggerProps, triggerRef: ref })
}
</Reference>
{this.getState() &&
Expand Down Expand Up @@ -162,7 +162,13 @@ class TooltipTrigger extends Component<
clearTimeout(this.showTimeout);
};

private showTooltip = ({pageX, pageY}: {pageX: number; pageY: number}) => {
private showTooltip = ({
pageX,
pageY
}: {
pageX: number;
pageY: number;
}) => {
this.clearScheduled();
let state: TooltipTriggerState = {
tooltipShown: true
Expand All @@ -183,32 +189,38 @@ class TooltipTrigger extends Component<
private hideTooltip = () => {
this.clearScheduled();
this.hideTimeout = window.setTimeout(
() => this.setTooltipState({tooltipShown: false}),
() => this.setTooltipState({ tooltipShown: false }),
this.props.delayHide
);
};

private toggleTooltip = ({pageX, pageY}: {pageX: number; pageY: number}) => {
private toggleTooltip = ({
pageX,
pageY
}: {
pageX: number;
pageY: number;
}) => {
const action = this.getState() ? 'hideTooltip' : 'showTooltip';
this[action]({pageX, pageY});
this[action]({ pageX, pageY });
};

private clickToggle: React.MouseEventHandler = (event: React.MouseEvent) => {
event.preventDefault();
const {pageX, pageY} = event;
const { pageX, pageY } = event;
const action = this.props.followCursor ? 'showTooltip' : 'toggleTooltip';
this[action]({pageX, pageY});
this[action]({ pageX, pageY });
};

private contextMenuToggle: React.MouseEventHandler = event => {
event.preventDefault();
const {pageX, pageY} = event;
const { pageX, pageY } = event;
const action = this.props.followCursor ? 'showTooltip' : 'toggleTooltip';
this[action]({pageX, pageY});
this[action]({ pageX, pageY });
};

private isTriggeredBy(event: TriggerTypes) {
const {trigger} = this.props;
const { trigger } = this.props;
return (
trigger === event || (Array.isArray(trigger) && trigger.includes(event))
);
Expand Down
2 changes: 1 addition & 1 deletion src/types.ts
Expand Up @@ -6,7 +6,7 @@ export type TriggerTypes = 'none' | 'click' | 'right-click' | 'hover' | 'focus';
export type Trigger = TriggerTypes | TriggerTypes[];
export type Ref =
| ((element: HTMLElement | null) => void)
| {current: HTMLElement | null}
| { current: HTMLElement | null }
| null;

export interface GetTriggerPropsArg {
Expand Down
11 changes: 6 additions & 5 deletions src/utils.ts
@@ -1,17 +1,18 @@
import React from 'react';
import {Ref} from './types';
import { Ref } from './types';

export const TooltipContext = React.createContext({});

// eslint-disable-next-line @typescript-eslint/no-explicit-any
type Fn = (...args: any[]) => void;
type FnOrBool = undefined | Fn;
type Fn = ((...args: any[]) => void) | undefined;

// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const callAll = (...fns: FnOrBool[]) => (...args: any[]) =>
export const callAll = (...fns: Fn[]) => (...args: any[]) =>
fns.forEach(fn => fn && fn(...args));

export const noop = () => {};
export const noop = () => {
// do nothing
};

export const canUseDOM = () =>
!!(
Expand Down

0 comments on commit 28f5a2b

Please sign in to comment.