Don't need to import React just for JSX any more

This commit is contained in:
Jordan Eldredge 2020-11-01 20:06:39 -08:00
parent bd1c732cf7
commit d68e0fd6f3
88 changed files with 105 additions and 130 deletions

View file

@ -1,5 +1,5 @@
import WebampLazy from "../../js/webampLazy";
import React, { Suspense } from "react";
import { Suspense } from "react";
import WebampIcon from "./WebampIcon";
// import Mp3Icon from "./Mp3Icon";
import SkinIcon from "./SkinIcon";

View file

@ -1,4 +1,4 @@
import React, { useEffect, useState, useRef } from "react";
import { useEffect, useState, useRef } from "react";
import classnames from "classnames";
import IconImage from "./IconImage";

View file

@ -1,4 +1,4 @@
import React, { useEffect, useState, useRef } from "react";
import { useEffect, useState, useRef } from "react";
import classnames from "classnames";
import IconImage from "./IconImage";

View file

@ -1,4 +1,3 @@
import React from "react";
import SuspenseImage from "./SuspenseImage";
type Props = {

View file

@ -1,5 +1,5 @@
import WebampLazy from "../../js/webampLazy";
import React, { useCallback } from "react";
import { useCallback } from "react";
// @ts-ignore
import iconLarge from "../images/manifest/icon-96x96.png";
// @ts-ignore

View file

@ -1,5 +1,5 @@
import WebampLazy from "../../js/webampLazy";
import React, { useCallback } from "react";
import { useCallback } from "react";
// @ts-ignore
import iconLarge from "../images/manifest/icon-96x96.png";
// @ts-ignore

View file

@ -1,5 +1,4 @@
import WebampLazy from "../../js/webampLazy";
import React from "react";
// @ts-ignore
import iconSmall from "../images/icons/paint-file-32x32.png";
import DesktopIcon from "./DesktopIcon";

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
// A Resource is an object with a read method returning the payload
interface Resource<Payload> {

View file

@ -1,5 +1,5 @@
import WebampLazy from "../../js/webampLazy";
import React, { useEffect, useState } from "react";
import { useEffect, useState } from "react";
// @ts-ignore
import iconSmall from "../images/icons/winamp2-32x32.png";
import DesktopIcon from "./DesktopIcon";

View file

@ -1,7 +1,6 @@
/* global SENTRY_DSN */
import * as Sentry from "@sentry/browser";
import React from "react";
import ReactDOM from "react-dom";
import createMiddleware from "redux-sentry-middleware";
import isButterchurnSupported from "butterchurn/lib/isSupported.min";

View file

@ -1,8 +1,9 @@
import React, {
import {
useLayoutEffect,
useEffect,
useState,
useCallback,
StrictMode,
} from "react";
import ReactDOM from "react-dom";
import { FilePicker } from "../types";
@ -127,7 +128,7 @@ export default function App({ media, filePickers }: Props) {
}
return ReactDOM.createPortal(
<React.StrictMode>
<StrictMode>
<div onBlur={handleBlur}>
<Skin />
<ContextMenuWrapper
@ -136,7 +137,7 @@ export default function App({ media, filePickers }: Props) {
<WindowManager windows={renderWindows()} />
</ContextMenuWrapper>
</div>
</React.StrictMode>,
</StrictMode>,
webampNode
);
}

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
import * as Actions from "../actionCreators";
import * as Selectors from "../selectors";

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
import deburr from "lodash/deburr";
interface Props extends React.HTMLAttributes<HTMLSpanElement> {

View file

@ -1,19 +1,19 @@
import React from "react";
import { memo, Fragment } from "react";
import Character from "./Character";
interface Props {
children: string;
}
const CharacterString = React.memo((props: Props) => {
const CharacterString = memo((props: Props) => {
const text = `${props.children}` || "";
const chars = text.split("");
return (
<React.Fragment>
<Fragment>
{chars.map((character, index) => (
<Character key={index + character}>{character}</Character>
))}
</React.Fragment>
</Fragment>
);
});

View file

@ -1,4 +1,4 @@
import React, { useState } from "react";
import { useState } from "react";
import classnames from "classnames";
interface Props extends React.HTMLAttributes<HTMLDivElement> {

View file

@ -1,4 +1,4 @@
import React, { useMemo, useLayoutEffect } from "react";
import { useMemo, useLayoutEffect } from "react";
import { createPortal } from "react-dom";
type Props = {

View file

@ -1,4 +1,4 @@
import React, { useMemo, useEffect } from "react";
import { useMemo, useEffect } from "react";
import { createPortal } from "react-dom";
import classnames from "classnames";

View file

@ -1,4 +1,4 @@
import React, { useState, useRef, useEffect, useMemo } from "react";
import { useState, useRef, useEffect, useMemo } from "react";
import ContextMenu from "./ContextMenu";
interface Props extends React.HTMLAttributes<HTMLDivElement> {

View file

@ -1,4 +1,4 @@
import React, { ReactNode, useState, useEffect, useCallback } from "react";
import { ReactNode, useState, useEffect, useCallback } from "react";
import ContextMenu from "./ContextMenu";
interface Props {

View file

@ -1,4 +1,4 @@
import React, { useCallback } from "react";
import { useCallback } from "react";
import { useActionCreator } from "../hooks";
import * as Actions from "../actionCreators";
import { WindowId } from "../types";

View file

@ -1,4 +1,4 @@
import React, { useMemo } from "react";
import { useMemo } from "react";
import Slider from "rc-slider";
import { Slider as SliderType } from "../../types";
import { useTypedSelector, useActionCreator } from "../../hooks";

View file

@ -1,10 +1,10 @@
import React from "react";
import { memo } from "react";
import classnames from "classnames";
import * as Actions from "../../actionCreators";
import { useTypedSelector, useActionCreator } from "../../hooks";
const EqAuto = React.memo(() => {
const EqAuto = memo(() => {
const selected = useTypedSelector((state) => state.equalizer.auto);
const toggleAuto = useActionCreator(Actions.toggleEqAuto);
return (

View file

@ -1,4 +1,4 @@
import React, { useState, useMemo, useLayoutEffect } from "react";
import { useState, useMemo, useLayoutEffect } from "react";
import { percentToRange, clamp } from "../../utils";
import { BANDS } from "../../constants";
import spline from "./spline";

View file

@ -1,4 +1,3 @@
import React from "react";
import classnames from "classnames";
import * as Actions from "../../actionCreators";

View file

@ -1,4 +1,3 @@
import React from "react";
import Volume from "../Volume";
import Balance from "../Balance";
import { segment } from "../../utils";

View file

@ -1,4 +1,3 @@
import React from "react";
import builtin from "../../../presets/builtin.json";
import * as Actions from "../../actionCreators";
import { Node, Parent, Hr } from "../ContextMenu";

View file

@ -1,4 +1,3 @@
import React from "react";
import { Provider } from "react-redux";
import renderer from "react-test-renderer";
import getStore from "../../store";

View file

@ -1,4 +1,3 @@
import React from "react";
import classnames from "classnames";
import { BANDS, WINDOWS } from "../../constants";

View file

@ -1,4 +1,4 @@
import React, { useCallback, useState, useEffect } from "react";
import { useCallback, useState, useEffect } from "react";
import { WindowId } from "../types";
import * as Actions from "../actionCreators";
import * as Selectors from "../selectors";

View file

@ -1,5 +1,5 @@
// Adapted from https://github.com/snakesilk/react-fullscreen
import React, { ReactNode, useRef, useLayoutEffect, useEffect } from "react";
import { ReactNode, useRef, useLayoutEffect, useEffect } from "react";
import fscreen from "fscreen";
interface Props {

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
import classnames from "classnames";
import "../../../css/gen-window.css";

View file

@ -1,8 +1,8 @@
import React from "react";
import { memo } from "react";
import * as Actions from "../../actionCreators";
import { useActionCreator } from "../../hooks";
const ActionButtons = React.memo(() => {
const ActionButtons = memo(() => {
const previous = useActionCreator(Actions.previous);
const play = useActionCreator(Actions.play);
const pause = useActionCreator(Actions.pause);

View file

@ -1,10 +1,10 @@
import React from "react";
import { memo } from "react";
import ClickedDiv from "../ClickedDiv";
import { useActionCreator } from "../../hooks";
import * as Actions from "../../actionCreators";
const Close = React.memo(() => {
const Close = memo(() => {
const close = useActionCreator(Actions.close);
return <ClickedDiv id="close" onClick={close} title="Close" />;
});

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo } from "react";
import classnames from "classnames";
import * as Actions from "../../actionCreators";
@ -19,7 +19,7 @@ function mouseUp(): Thunk {
};
}
const ClutterBar = React.memo(() => {
const ClutterBar = memo(() => {
const handleMouseDown = useActionCreator(setFocusDouble);
const handleMouseUp = useActionCreator(mouseUp);
const doubled = useTypedSelector(Selectors.getDoubled);

View file

@ -1,9 +1,9 @@
import React from "react";
import { memo } from "react";
import * as Actions from "../../actionCreators";
import { useActionCreator } from "../../hooks";
const Eject = React.memo(() => {
const Eject = memo(() => {
const openMediaFileDialog = useActionCreator(Actions.openMediaFileDialog);
return <div id="eject" onClick={openMediaFileDialog} title="Open File(s)" />;
});

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo } from "react";
import classnames from "classnames";
import * as Selectors from "../../selectors";
@ -9,7 +9,7 @@ function toggleEqualizer() {
return Actions.toggleWindow("equalizer");
}
const EqToggleButton = React.memo(() => {
const EqToggleButton = memo(() => {
const handleClick = useActionCreator(toggleEqualizer);
const windowOpen = useTypedSelector(Selectors.getWindowOpen)("equalizer");
return (

View file

@ -1,10 +1,10 @@
import React from "react";
import { memo } from "react";
import CharacterString from "../CharacterString";
import * as Selectors from "../../selectors";
import { useTypedSelector } from "../../hooks";
const Kbps = React.memo(() => {
const Kbps = memo(() => {
const kbps = useTypedSelector(Selectors.getKbps);
return (
<div id="kbps">

View file

@ -1,10 +1,10 @@
import React from "react";
import { memo } from "react";
import CharacterString from "../CharacterString";
import * as Selectors from "../../selectors";
import { useTypedSelector } from "../../hooks";
const Khz = React.memo(() => {
const Khz = memo(() => {
const khz = useTypedSelector(Selectors.getKhz);
return (
<div id="khz">

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo } from "react";
import Balance from "../Balance";
import * as Selectors from "../../selectors";
@ -11,7 +11,7 @@ export const offsetFromBalance = (balance: number): number => {
return offset;
};
const MainBalance = React.memo(() => {
const MainBalance = memo(() => {
const balance = useTypedSelector(Selectors.getBalance);
return (
<Balance

View file

@ -1,4 +1,4 @@
import React, { useEffect } from "react";
import { memo, Fragment, useEffect } from "react";
import * as Actions from "../../actionCreators";
import * as Selectors from "../../selectors";
import { LOAD_STYLE } from "../../constants";
@ -13,7 +13,7 @@ interface Props {
filePickers: FilePicker[];
}
const MainContextMenu = React.memo(({ filePickers }: Props) => {
const MainContextMenu = memo(({ filePickers }: Props) => {
const networkConnected = useTypedSelector(Selectors.getNetworkConnected);
const genWindows = useTypedSelector(Selectors.getGenWindows);
@ -29,7 +29,7 @@ const MainContextMenu = React.memo(({ filePickers }: Props) => {
}, [menuOpened]);
return (
<React.Fragment>
<Fragment>
<LinkNode
href="https://webamp.org/about"
target="_blank"
@ -79,7 +79,7 @@ const MainContextMenu = React.memo(({ filePickers }: Props) => {
</Parent>
<Hr />
<Node onClick={close} label="Exit" />
</React.Fragment>
</Fragment>
);
});

View file

@ -1,10 +1,10 @@
import React from "react";
import { memo } from "react";
import * as Selectors from "../../selectors";
import Volume from "../Volume";
import { useTypedSelector } from "../../hooks";
const MainVolume = React.memo(() => {
const MainVolume = memo(() => {
const volume = useTypedSelector(Selectors.getVolume);
const percent = volume / 100;
const sprite = Math.round(percent * 28);

View file

@ -1,6 +1,6 @@
// Single line text display that can animate and hold multiple registers
// Knows how to display various modes like tracking, volume, balance, etc.
import React from "react";
import * as React from "react";
import CharacterString from "../CharacterString";
import * as Actions from "../../actionCreators";
import * as Selectors from "../../selectors";

View file

@ -1,9 +1,9 @@
import React from "react";
import { memo } from "react";
import ClickedDiv from "../ClickedDiv";
import * as Actions from "../../actionCreators";
import { useActionCreator } from "../../hooks";
const Minimize = React.memo(() => {
const Minimize = memo(() => {
const minimize = useActionCreator(Actions.minimize);
return <ClickedDiv id="minimize" title="Minimize" onClick={minimize} />;
});

View file

@ -1,9 +1,9 @@
import React from "react";
import { memo } from "react";
import classnames from "classnames";
import * as Selectors from "../../selectors";
import { useTypedSelector } from "../../hooks";
const MonoStereo = React.memo(() => {
const MonoStereo = memo(() => {
const channels = useTypedSelector(Selectors.getChannels);
return (
<div className="mono-stereo">

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo } from "react";
import classnames from "classnames";
import * as Selectors from "../../selectors";
@ -9,7 +9,7 @@ function togglePlaylist() {
return Actions.toggleWindow("playlist");
}
const PlaylistToggleButton = React.memo(() => {
const PlaylistToggleButton = memo(() => {
const selected = useTypedSelector(Selectors.getWindowOpen)("playlist");
const handleClick = useActionCreator(togglePlaylist);
return (

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo, useCallback } from "react";
import {
SEEK_TO_PERCENT_COMPLETE,
@ -22,11 +22,11 @@ function usePosition() {
return [position, displayedPosition];
}
const Position = React.memo(() => {
const Position = memo(() => {
const [position, displayedPosition] = usePosition();
const dispatch = useTypedDispatch();
const seekToPercentComplete = React.useCallback(
const seekToPercentComplete = useCallback(
(e) => {
dispatch({
type: SEEK_TO_PERCENT_COMPLETE,
@ -37,7 +37,7 @@ const Position = React.memo(() => {
[dispatch]
);
const setPosition = React.useCallback(
const setPosition = useCallback(
(e) => {
dispatch({ type: SET_FOCUS, input: "position" });
dispatch({

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo } from "react";
import classnames from "classnames";
import * as Actions from "../../actionCreators";
import * as Selectors from "../../selectors";
@ -6,7 +6,7 @@ import ContextMenuWraper from "../ContextMenuWrapper";
import { Node } from "../ContextMenu";
import { useTypedSelector, useActionCreator } from "../../hooks";
const Repeat = React.memo(() => {
const Repeat = memo(() => {
const repeat = useTypedSelector(Selectors.getRepeat);
const handleClick = useActionCreator(Actions.toggleRepeat);
return (

View file

@ -1,10 +1,10 @@
import React from "react";
import { memo } from "react";
import ClickedDiv from "../ClickedDiv";
import * as Actions from "../../actionCreators";
import { useActionCreator } from "../../hooks";
const Shade = React.memo(() => {
const Shade = memo(() => {
const handleClick = useActionCreator(Actions.toggleMainWindowShadeMode);
return (
<ClickedDiv

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo } from "react";
import classnames from "classnames";
import * as Actions from "../../actionCreators";
import * as Selectors from "../../selectors";
@ -6,7 +6,7 @@ import ContextMenuWraper from "../ContextMenuWrapper";
import { Node } from "../ContextMenu";
import { useTypedSelector, useActionCreator } from "../../hooks";
const Shuffle = React.memo(() => {
const Shuffle = memo(() => {
const shuffle = useTypedSelector(Selectors.getShuffle);
const handleClick = useActionCreator(Actions.toggleShuffle);
return (

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo } from "react";
import * as Utils from "../../utils";
import * as Actions from "../../actionCreators";
@ -6,7 +6,7 @@ import * as Selectors from "../../selectors";
import { TIME_MODE } from "../../constants";
import { useActionCreator, useTypedSelector } from "../../hooks";
const Time = React.memo(() => {
const Time = memo(() => {
const toggleTimeMode = useActionCreator(Actions.toggleTimeMode);
const timeElapsed = useTypedSelector(Selectors.getTimeElapsed);
const duration = useTypedSelector(Selectors.getDuration) || 0;

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
import classnames from "classnames";
import { WINDOWS, MEDIA_STATUS, LOAD_STYLE } from "../../constants";
import * as Actions from "../../actionCreators";

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
interface Props {
innerRef?: (node: HTMLDivElement) => void;

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
import ReactDOM from "react-dom";
interface Props {

View file

@ -1,4 +1,4 @@
import React, { ReactNode } from "react";
import { ReactNode } from "react";
import { Hr, Node } from "../ContextMenu";
import { WINDOWS } from "../../constants";
import * as Selectors from "../../selectors";

View file

@ -1,4 +1,4 @@
import React, { useState, useCallback } from "react";
import { useState, useCallback } from "react";
import { promptForFileReferences } from "../../fileUtils";
import * as Selectors from "../../selectors";
import * as Actions from "../../actionCreators";

View file

@ -1,4 +1,4 @@
import React, { useEffect, useState, useRef } from "react";
import { useEffect, useState, useRef } from "react";
import { VISUALIZERS } from "../../constants";
import * as Selectors from "../../selectors";
import { TransitionType } from "../../types";

View file

@ -1,4 +1,4 @@
import React, { useEffect, useCallback } from "react";
import { useEffect, useCallback } from "react";
import Fullscreen from "../Fullscreen";
import {
useWindowSize,

View file

@ -1,4 +1,4 @@
import React from "react";
import { Fragment } from "react";
import classnames from "classnames";
import { getTimeObj } from "../utils";
import { TIME_MODE, MEDIA_STATUS } from "../constants";
@ -14,7 +14,7 @@ import { useTypedSelector, useActionCreator } from "../hooks";
// Possible to do that in pure CSS with the background being dynamically generated.
// All "space" characters is also how Winamp renders no content.
const Background = () => (
<React.Fragment>
<Fragment>
{[1, 7, 12, 20, 25].map((left, i) => (
<Character
style={{ left }}
@ -23,7 +23,7 @@ const Background = () => (
children=" "
/>
))}
</React.Fragment>
</Fragment>
);
const MiniTime = () => {

View file

@ -1,5 +1,3 @@
import React from "react";
import { Hr, Node } from "./ContextMenu";
import SkinsContextMenu from "./SkinsContextMenu";
import * as Actions from "../actionCreators";

View file

@ -1,4 +1,4 @@
import React from "react";
import { Fragment } from "react";
import * as Actions from "../actionCreators";
import { Hr, Node } from "./ContextMenu";
import { useActionCreator } from "../hooks";
@ -13,7 +13,7 @@ const PlaybackContextMenu = () => {
const seekBackward = useActionCreator(Actions.seekBackward);
const nextN = useActionCreator(Actions.nextN);
return (
<React.Fragment>
<Fragment>
<Node label="Previous" hotkey="Z" onClick={previous} />
<Node label="Play" hotkey="X" onClick={play} />
<Node label="Pause" hotkey="C" onClick={pause} />
@ -44,7 +44,7 @@ const PlaybackContextMenu = () => {
<Node label="Jump to time" hotkey="Ctrl+J" />
<Node label="Jump to file" hotkey="J" />
*/}
</React.Fragment>
</Fragment>
);
};

View file

@ -1,4 +1,3 @@
import React from "react";
import * as Selectors from "../../selectors";
import * as Actions from "../../actionCreators";
import PlaylistMenu from "./PlaylistMenu";

View file

@ -1,4 +1,3 @@
import React from "react";
import * as Actions from "../../actionCreators";
import PlaylistMenu from "./PlaylistMenu";
import { useActionCreator } from "../../hooks";

View file

@ -1,5 +1,3 @@
import React from "react";
import PlaylistMenu from "./PlaylistMenu";
import SortContextMenu from "./SortContextMenu";
import MiscOptionsContextMenu from "./MiscOptionsContextMenu";

View file

@ -1,4 +1,3 @@
import React from "react";
import { Node } from "../ContextMenu";
import ContextMenuTarget from "../ContextMenuTarget";
import * as Actions from "../../actionCreators";

View file

@ -1,4 +1,4 @@
import React from "react";
import { Fragment } from "react";
import * as Actions from "../../actionCreators";
@ -14,7 +14,7 @@ const PlaylistWindow = () => {
const next = useActionCreator(Actions.next);
const previous = useActionCreator(Actions.previous);
return (
<React.Fragment>
<Fragment>
<RunningTimeDisplay />
<div className="playlist-action-buttons">
<div className="playlist-previous-button" onClick={previous} />
@ -25,7 +25,7 @@ const PlaylistWindow = () => {
<div className="playlist-eject-button" onClick={openMediaFileDialog} />
</div>
<MiniTime />
</React.Fragment>
</Fragment>
);
};
export default PlaylistWindow;

View file

@ -1,4 +1,4 @@
import React, { useState, ReactNode, useCallback } from "react";
import { Children, memo, useState, ReactNode, useCallback } from "react";
import classnames from "classnames";
import { useOnClickAway } from "../../hooks";
@ -43,7 +43,7 @@ function PlaylistMenu(props: Props) {
<div className="bar" />
{selected && (
<ul>
{React.Children.map(props.children, (child, i) => (
{Children.map(props.children, (child, i) => (
<PlaylistMenuEnry key={i}>{child}</PlaylistMenuEnry>
))}
</ul>
@ -51,4 +51,4 @@ function PlaylistMenu(props: Props) {
</div>
);
}
export default React.memo(PlaylistMenu);
export default memo(PlaylistMenu);

View file

@ -1,4 +1,4 @@
import React, { ReactNode } from "react";
import { memo, ReactNode } from "react";
import classnames from "classnames";
import { useIsHovered } from "../../hooks";
@ -16,4 +16,4 @@ function PlaylistMenuEntry({ children }: Props) {
);
}
export default React.memo(PlaylistMenuEntry);
export default memo(PlaylistMenuEntry);

View file

@ -1,4 +1,3 @@
import React from "react";
import ResizeTarget from "../ResizeTarget";
import * as Actions from "../../actionCreators";
import * as Selectors from "../../selectors";

View file

@ -1,4 +1,3 @@
import React from "react";
import { Provider } from "react-redux";
import renderer from "react-test-renderer";
import Emitter from "../../emitter";

View file

@ -1,4 +1,4 @@
import React, { useMemo } from "react";
import { useMemo } from "react";
import classnames from "classnames";
import { getTimeStr } from "../../utils";
import * as Selectors from "../../selectors";

View file

@ -1,4 +1,3 @@
import React from "react";
import * as Actions from "../../actionCreators";
import PlaylistMenu from "./PlaylistMenu";
import { useActionCreator } from "../../hooks";

View file

@ -1,4 +1,4 @@
import React, { useMemo } from "react";
import { useMemo } from "react";
import CharacterString from "../CharacterString";
import * as Actions from "../../selectors";

View file

@ -1,4 +1,4 @@
import React from "react";
import { memo } from "react";
// Here we import the rc-slider class just to get it's type.
// We expect the Typescript compiler to not actually include this in the bundle.
@ -39,4 +39,4 @@ const ScrollBar = () => {
);
};
export default React.memo(ScrollBar);
export default memo(ScrollBar);

View file

@ -1,4 +1,3 @@
import React from "react";
import PlaylistMenu from "./PlaylistMenu";
import * as Actions from "../../actionCreators";
import { useActionCreator } from "../../hooks";

View file

@ -1,4 +1,3 @@
import React from "react";
import * as Actions from "../../actionCreators";
import { Hr, Node } from "../ContextMenu";

View file

@ -1,4 +1,4 @@
import React, { useCallback, ReactNode } from "react";
import { useCallback, ReactNode } from "react";
import classnames from "classnames";
import {
CLICKED_TRACK,

View file

@ -1,4 +1,4 @@
import React, { useState, useEffect } from "react";
import { useState, useEffect } from "react";
import { getTimeStr } from "../../utils";
import * as Selectors from "../../selectors";

View file

@ -1,4 +1,3 @@
import React from "react";
import * as Selectors from "../../selectors";
import { useTypedSelector } from "../../hooks";

View file

@ -1,4 +1,3 @@
import React from "react";
import { Provider } from "react-redux";
import renderer from "react-test-renderer";
import getStore from "../../store";

View file

@ -1,4 +1,4 @@
import React, { useCallback } from "react";
import { useCallback } from "react";
import classnames from "classnames";
import { WINDOWS, TRACK_HEIGHT, LOAD_STYLE } from "../../constants";

View file

@ -1,4 +1,4 @@
import React, { useState, useEffect } from "react";
import { useState, useEffect, memo } from "react";
import {
WINDOW_RESIZE_SEGMENT_WIDTH,
WINDOW_RESIZE_SEGMENT_HEIGHT,
@ -67,4 +67,4 @@ function ResizeTarget(props: Props) {
return <div onMouseDown={handleMouseDown} {...passThroughProps} />;
}
export default React.memo(ResizeTarget);
export default memo(ResizeTarget);

View file

@ -1,6 +1,4 @@
// Dynamically set the css background images for all the sprites
import React from "react";
import { LETTERS } from "../constants";
import { imageSelectors, cursorSelectors } from "../skinSelectors";
import { useTypedSelector } from "../hooks";

View file

@ -1,4 +1,3 @@
import React from "react";
import * as Actions from "../actionCreators";
import * as Selectors from "../selectors";
import { Hr, Node, Parent } from "./ContextMenu";

View file

@ -1,4 +1,4 @@
import React, { useMemo, useCallback, useState, useLayoutEffect } from "react";
import { useMemo, useCallback, useState, useLayoutEffect } from "react";
import * as Actions from "../actionCreators";
import * as Selectors from "../selectors";

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
import * as Actions from "../actionCreators";
import * as Selectors from "../selectors";
import { useTypedSelector, useActionCreator } from "../hooks";

View file

@ -1,4 +1,4 @@
import React, { ReactNode, useCallback, useEffect, useState } from "react";
import { ReactNode, useCallback, useEffect, useState } from "react";
import * as SnapUtils from "../snapUtils";
import * as Selectors from "../selectors";

View file

@ -1,4 +1,3 @@
import React from "react";
import { render } from "react-dom";
interface Props {

View file

@ -1,4 +1,4 @@
import React from "react";
import * as React from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";