File Sidepanel.tsx
has 372 lines of code (exceeds 250 allowed). Consider refactoring.
import * as React from "react";
import { PureComponent, ReactNode, RefObject, CSSProperties } from "react";
import { isMobileDevice, supportPassive } from "./eventHelpers";
import { Placement, TouchPosition } from "./Airr";
import {
Function NavbarRenderer
has a Cognitive Complexity of 26 (exceeds 5 allowed). Consider refactoring.
const NavbarRenderer = React.memo<NavbarRendererProps>(function NavbarRenderer({
navbar,
activeViewIndex,
backButtonOnFirstView,
handleBackButton,
File Scene.tsx
has 300 lines of code (exceeds 250 allowed). Consider refactoring.
import * as React from "react";
import { ReactNode, RefObject, PureComponent } from "react";
import SceneRenderer, { sceneDefaultProps } from "./SceneRenderer";
import Sidepanel from "./Sidepanel";
import View, { CommonViewClass } from "./View";
Scene
has 26 functions (exceeds 20 allowed). Consider refactoring.
export default class Scene<P extends SceneProps = SceneProps, S extends SceneState = SceneState>
extends PureComponent<P, S>
implements CommonViewClass {
static defaultProps = {
...sceneDefaultProps,
Function render
has 62 lines of code (exceeds 25 allowed). Consider refactoring.
render(): ReactNode {
let className = "airr-view airr-scene";
this.props.active && (className += " active");
this.props.className && (className += " " + this.props.className);
Function changeView
has 50 lines of code (exceeds 25 allowed). Consider refactoring.
static changeView(
scene: Scene,
view: string | ViewConfig<CommonViewProps>,
viewProps: ViewProps | {} = {},
sceneProps: SceneProps | {} = {}
Function getViewsTransitionConfig
has 37 lines of code (exceeds 25 allowed). Consider refactoring.
export function getViewsTransitionConfig(
newViewName: string,
scene: Scene,
callback: () => void
): PerformViewsTransitionConfig {
Function doBackButtonAnimation
has 36 lines of code (exceeds 25 allowed). Consider refactoring.
export function doBackButtonAnimation(
type: "hide" | "show",
element: HTMLElement,
animationTime: number
): void {
Function performViewsAnimation
has 30 lines of code (exceeds 25 allowed). Consider refactoring.
static performViewsAnimation(scene: Scene, newViewName: string): Promise<void> {
if (typeof newViewName === "string") {
scene.viewChangeInProgress = true;
return new Promise(
Function getOverlayAnimationConfig
has 30 lines of code (exceeds 25 allowed). Consider refactoring.
function getOverlayAnimationConfig(config: OverlayAnimationConfig): TransitionAnimationConfig {
const { dom, width, height, t, callback, headTo, appearFrom } = config;
let startProps: TransitionAnimationConfig["startProps"],
endProps: TransitionAnimationConfig["endProps"],
transform: string,
Function doVerticalScrollAnimation
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
export function doVerticalScrollAnimation(
element: HTMLElement,
scrollDuration: number,
direction: Placement
): void {
Function render
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
render(): ReactNode {
let className = "airr-view airr-scene";
this.props.active && (className += " active");
this.props.className && (className += " " + this.props.className);
Function doNavbarItemsAnimation
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
export function doNavbarItemsAnimation({
newViewIndex,
oldViewIndex,
direction,
titleNode,
Function doViewsSlideAnimation
has 5 arguments (exceeds 4 allowed). Consider refactoring.
newViewDOM: HTMLElement,
sceneWidth: number,
ctnDOM: HTMLElement,
direction: Direction,
animationTime: number
Function bubbleChildTillParent
has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
export function bubbleChildTillParent(
child: Element,
parent: Element,
tillElements: Element[]
): boolean {
Function getFreshViewConfig
has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
getFreshViewConfig<T>(
view: string | ViewsConfigItem<T>,
props: CommonViewProps | {} = {}
): ViewsConfigItem<T> {
if (typeof view === "string" && view in this.viewsConfig) {
Function getOutAnimTransform
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
function getOutAnimTransform(headTo: Placement, width: number, height: number): string {
let scaleValue: string, translateValue: string;
if (isTopOrBottomPlacement(headTo)) {
scaleValue = "0,1";
Function getInAnimTransform
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
function getInAnimTransform(appearFrom: Placement, width: number, height: number): string {
let scaleValue: string, translateValue: string;
if (isTopOrBottomPlacement(appearFrom)) {
scaleValue = "0,1";
Function changeView
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
static changeView(
scene: Scene,
view: string | ViewConfig<CommonViewProps>,
viewProps: ViewProps | {} = {},
sceneProps: SceneProps | {} = {}
Function doBackButtonAnimation
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
export function doBackButtonAnimation(
type: "hide" | "show",
element: HTMLElement,
animationTime: number
): void {