Add eslint.

This commit is contained in:
Paul 2021-06-18 15:46:30 +01:00
parent 8bb6cd456b
commit 34a4bccbbe
8 changed files with 1289 additions and 24 deletions

View file

@ -3,7 +3,21 @@
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "rimraf build && tsc && vite build", "build": "rimraf build && tsc && vite build",
"serve": "vite preview" "serve": "vite preview",
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'"
},
"eslintConfig": {
"parser": "@typescript-eslint/parser",
"extends": [
"preact",
"plugin:@typescript-eslint/recommended"
],
"ignorePatterns": [
"build/"
],
"rules": {
"@typescript-eslint/explicit-module-boundary-types": "off"
}
}, },
"dependencies": { "dependencies": {
"preact": "^10.5.13" "preact": "^10.5.13"
@ -16,6 +30,10 @@
"@types/node": "^15.12.3", "@types/node": "^15.12.3",
"@types/preact-i18n": "^2.3.0", "@types/preact-i18n": "^2.3.0",
"@types/styled-components": "^5.1.10", "@types/styled-components": "^5.1.10",
"@typescript-eslint/eslint-plugin": "^4.27.0",
"@typescript-eslint/parser": "^4.27.0",
"eslint": "^7.28.0",
"eslint-config-preact": "^1.1.4",
"preact-i18n": "^2.4.0-preactx", "preact-i18n": "^2.4.0-preactx",
"react-overlapping-panels": "1.1.2-patch.0", "react-overlapping-panels": "1.1.2-patch.0",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",

View file

@ -3,7 +3,7 @@ import styled, { css } from "styled-components";
interface Props { interface Props {
readonly contrast?: boolean; readonly contrast?: boolean;
readonly error?: boolean; readonly error?: boolean;
}; }
export default styled.button<Props>` export default styled.button<Props>`
z-index: 1; z-index: 1;

View file

@ -102,10 +102,10 @@ export default function ColourSwatches({ value, onChange }: Props) {
onChange={ev => onChange(ev.currentTarget.value)} onChange={ev => onChange(ev.currentTarget.value)}
/> />
<Rows> <Rows>
{presets.map(row => ( {presets.map((row, i) => (
<div> <div key={i}>
{ row.map(swatch => ( { row.map((swatch, i) => (
<Swatch colour={swatch} type='small' <Swatch colour={swatch} type='small' key={i}
onClick={() => onChange(swatch)}> onClick={() => onChange(swatch)}>
{swatch === value && <Check size={18} strokeWidth={2} />} {swatch === value && <Check size={18} strokeWidth={2} />}
</Swatch> </Swatch>

View file

@ -2,7 +2,7 @@ import styled, { css } from "styled-components";
interface Props { interface Props {
readonly contrast?: boolean; readonly contrast?: boolean;
}; }
export default styled.input<Props>` export default styled.input<Props>`
z-index: 1; z-index: 1;

View file

@ -1,13 +1,14 @@
import { createGlobalStyle } from "styled-components"; import { createGlobalStyle } from "styled-components";
// ! TEMP START // ! TEMP START
let a = {"light":false,"accent":"#FD6671","background":"#191919","foreground":"#F6F6F6","block":"#2D2D2D","message-box":"#363636","mention":"rgba(251, 255, 0, 0.06)","success":"#65E572","warning":"#FAA352","error":"#F06464","hover":"rgba(0, 0, 0, 0.1)","sidebar-active":"#FD6671","scrollbar-thumb":"#CA525A","scrollbar-track":"transparent","primary-background":"#242424","primary-header":"#363636","secondary-background":"#1E1E1E","secondary-foreground":"#C8C8C8","secondary-header":"#2D2D2D","tertiary-background":"#4D4D4D","tertiary-foreground":"#848484","status-online":"#3ABF7E","status-away":"#F39F00","status-busy":"#F84848","status-streaming":"#977EFF","status-invisible":"#A5A5A5"}; const a = {light:false,accent:"#FD6671",background:"#191919",foreground:"#F6F6F6",block:"#2D2D2D","message-box":"#363636",mention:"rgba(251, 255, 0, 0.06)",success:"#65E572",warning:"#FAA352",error:"#F06464",hover:"rgba(0, 0, 0, 0.1)","sidebar-active":"#FD6671","scrollbar-thumb":"#CA525A","scrollbar-track":"transparent","primary-background":"#242424","primary-header":"#363636","secondary-background":"#1E1E1E","secondary-foreground":"#C8C8C8","secondary-header":"#2D2D2D","tertiary-background":"#4D4D4D","tertiary-foreground":"#848484","status-online":"#3ABF7E","status-away":"#F39F00","status-busy":"#F84848","status-streaming":"#977EFF","status-invisible":"#A5A5A5"};
export const GlobalTheme = createGlobalStyle` export const GlobalTheme = createGlobalStyle`
:root { :root {
${ ${
Object.keys(a) Object.keys(a)
.map(key => { .map(key => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return `--${key}: ${(a as any)[key]};`; return `--${key}: ${(a as any)[key]};`;
}) })
} }

View file

@ -2,4 +2,5 @@ import { render } from 'preact'
import '../styles/index.scss' import '../styles/index.scss'
import { App } from './app' import { App } from './app'
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
render(<App />, document.getElementById('app')!) render(<App />, document.getElementById('app')!)

1
src/preact.d.ts vendored
View file

@ -1 +1,2 @@
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import JSX = preact.JSX import JSX = preact.JSX

1276
yarn.lock

File diff suppressed because it is too large Load diff