Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CC::Parser::Client::HTTPError reported on certain files #378

Open
dancrumb opened this issue Oct 31, 2022 · 0 comments
Open

CC::Parser::Client::HTTPError reported on certain files #378

dancrumb opened this issue Oct 31, 2022 · 0 comments

Comments

@dancrumb
Copy link

During a standard Code Climate run, I noticed some errors from the duplication error being reported by https://codeclimate.com/repos/<repo id>/builds/99:

12
Parser process id: 12
codeclimate-parser socket not present
waiting 1s...
W, [2022-10-31T19:30:00.941696 #1]  WARN -- : Skipping ./apps/server/migrations/change-case-of-storage-and-gql.ts due to CC::Parser::Client::HTTPError
W, [2022-10-31T19:30:00.942233 #1]  WARN -- : Response status: 422
W, [2022-10-31T19:30:10.475738 #1]  WARN -- : Skipping ./apps/studio/providers/Theme.tsx due to CC::Parser::Client::HTTPError
W, [2022-10-31T19:30:10.578032 #1]  WARN -- : Response status: 422
W, [2022-10-31T19:30:13.775996 #1]  WARN -- : Skipping apps/studio/types.ts due to CC::Parser::Client::HTTPError
W, [2022-10-31T19:30:13.776403 #1]  WARN -- : Response status: 422
W, [2022-10-31T19:30:16.860534 #1]  WARN -- : Skipping ./apps/studio/new-app-flow/NewApp.tsx due to CC::Parser::Client::HTTPError
W, [2022-10-31T19:30:16.860594 #1]  WARN -- : Response status: 422

As an example, here's Theme.tsx:

import React, {
  createContext,
  ReactElement,
  useContext,
  useEffect,
  useMemo,
  useState,
} from "react";
import { useWindowDimensions, View } from "react-native";

import * as styles from "@/studio/styles";

export enum THEME_TYPES {
  LIGHT = "LIGHT",
  DARK = "DARK",
  WAITLIST = "WAITLIST",
}

export enum SCREEN_SIZE {
  SMALL = "SMALL",
  MEDIUM = "MEDIUM",
  LARGE = "LARGE",
}

// This isn't perfect and doesn't cover all cases but is slightly stricter than string
type RGB = `rgb(${number}, ${number}, ${number})`;
type RGBA = `rgba(${number}, ${number}, ${number}, ${number})`;
type HEX = `#${string}`;

type Color = RGB | RGBA | HEX;

export type StudioTheme = {
  type: THEME_TYPES;
  background: Color;
  backgroundSecondary: Color;
  text: Color;
  secondary: Color;
  highlight: Color;
  // I couldn't find a more semantically meaningful name or think of how it'll be re-used so did this for now
  selectComponentBackground: Color;
  inputBackground: Color;
  inputBorderColor: Color;
  shadowColor: Color;
  shadowOpacity: number;
};

const themes: { [key in THEME_TYPES]: StudioTheme } = {
  [THEME_TYPES.LIGHT]: {
    type: THEME_TYPES.LIGHT,
    background: "#f5f8fa",
    backgroundSecondary: "#eee",
    text: "#000",
    secondary: "#444",
    highlight: "#4970DA",
    selectComponentBackground: "#F5F5F5",
    inputBackground: "#fff",
    inputBorderColor: "#888",
    shadowColor: "#000",
    shadowOpacity: 0.15,
  },
  [THEME_TYPES.DARK]: {
    type: THEME_TYPES.DARK,
    background: "#141013",
    backgroundSecondary: "#17161B",
    text: "#fff",
    secondary: "#ddd",
    highlight: "#4970DA",
    selectComponentBackground: "#F5F5F5",
    inputBackground: "#fff",
    inputBorderColor: "#888",
    shadowColor: "#fff",
    shadowOpacity: 0.15,
  },
  [THEME_TYPES.WAITLIST]: {
    type: THEME_TYPES.WAITLIST,
    background: "#091121",
    backgroundSecondary: "#070D24",
    text: "#fff",
    secondary: "#aaa",
    highlight: "#4970DA",
    selectComponentBackground: "#F5F5F5",
    inputBackground: "#fff",
    inputBorderColor: "#888",
    shadowColor: "#ddd",
    shadowOpacity: 0.1,
  },
};

interface StudioThemeContextType {
  themeEnum: THEME_TYPES;
  setTheme: (_: THEME_TYPES) => void;
  studioTheme: StudioTheme;
  width: number;
  height: number;
  screenSize: SCREEN_SIZE;
}

const StudioThemeContext = createContext<StudioThemeContextType>({
  themeEnum: THEME_TYPES.LIGHT,
  setTheme: (_: THEME_TYPES) => {},
  studioTheme: themes[THEME_TYPES.LIGHT],
  width: 0,
  height: 0,
  screenSize: SCREEN_SIZE.MEDIUM,
});

// TODO determine better bounds for screensize and potentially incorporate mobile
const getScreenSize = (width: number): SCREEN_SIZE => {
  if (width > 1200) {
    return SCREEN_SIZE.LARGE;
  } else if (width > 1000) {
    return SCREEN_SIZE.MEDIUM;
  } else {
    return SCREEN_SIZE.SMALL;
  }
};

export const StyleProvider = ({ children }: { children: ReactElement }) => {
  const { width, height } = useWindowDimensions();
  const [themeEnum, setThemeEnum] = useState<THEME_TYPES>(THEME_TYPES.LIGHT);
  const screenSize = useMemo(() => getScreenSize(width), [width]);

  useEffect(() => {
    document.body.style.color = themes[themeEnum].text;
    document.body.style.backgroundColor = themes[themeEnum].background;
  }, [themeEnum]);

  const theme = themes[themeEnum];

  return (
    <StudioThemeContext.Provider
      value={{
        themeEnum: themeEnum,
        setTheme: setThemeEnum,
        studioTheme: theme,
        width,
        height,
        screenSize,
      }}
    >
      <View
        style={{
          backgroundColor: theme.background,
          height: "100%",
          // @ts-expect-error ts-migrate(2769) FIXME: No overload matches this call.
          accentColor: styles.sutroPurple,
        }}
        testID="studio-body"
      >
        {children}
      </View>
    </StudioThemeContext.Provider>
  );
};

export const useStudioTheme = () => useContext(StudioThemeContext);

Nothing is jumping out at me as an obvious candidate here for the error... any ideas?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant