diff --git a/.eslintrc.cjs b/.eslintrc.cjs
deleted file mode 100644
index 474bd4a02..000000000
--- a/.eslintrc.cjs
+++ /dev/null
@@ -1,57 +0,0 @@
-/** @type {import('@types/eslint').Linter.BaseConfig} */
-module.exports = {
- extends: [
- 'eslint-config-kentcdodds',
- 'eslint-config-kentcdodds/jest',
- 'eslint-config-kentcdodds/jsx-a11y',
- 'eslint-config-kentcdodds/react',
- ],
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: './tsconfig.json',
- ecmaVersion: 2022,
- },
- rules: {
- 'no-console': 'off',
-
- // meh...
- '@typescript-eslint/no-explicit-any': 'off',
- '@typescript-eslint/no-non-null-assertion': 'off',
- '@typescript-eslint/sort-type-union-intersection-members': 'off',
- 'jsx-a11y/media-has-caption': 'off',
- 'jsx-a11y/label-has-associated-control': 'off',
- 'jsx-a11y/alt-text': 'off', // it's not smart enough...
- '@babel/new-cap': 'off',
- 'react/jsx-filename-extension': 'off',
- 'react/react-in-jsx-scope': 'off',
- '@typescript-eslint/no-namespace': 'off',
- '@typescript-eslint/prefer-nullish-coalescing': 'off',
-
- // I can't figure these out:
- '@typescript-eslint/no-unsafe-call': 'off',
- '@typescript-eslint/no-unsafe-assignment': 'off',
- '@typescript-eslint/no-unsafe-member-access': 'off',
-
- // enable these again someday:
- '@typescript-eslint/no-unsafe-argument': 'off',
-
- // this one isn't smart enough for our "~/" imports
- 'import/order': 'off',
-
- // for CatchBoundaries
- '@typescript-eslint/no-throw-literal': 'off',
- 'testing-library/no-await-sync-events': 'off',
- 'testing-library/prefer-implicit-assert': 'off',
-
- // this auto-fixes and it's nice to have types and actual stuff separate
- '@typescript-eslint/consistent-type-imports': 'warn',
-
- // conflicts with jsx-a11y/prefer-tag-over-role
- 'jsx-a11y/accessible-emoji': 'off',
-
- 'jest/no-deprecated-functions': 'off',
-
- // typescript handles this:
- 'react/no-unknown-property': 'off',
- },
-}
diff --git a/app/components/arrow-button.tsx b/app/components/arrow-button.tsx
index 664fd529c..52b9f2609 100644
--- a/app/components/arrow-button.tsx
+++ b/app/components/arrow-button.tsx
@@ -85,7 +85,7 @@ type ArrowButtonProps = {
function getBaseProps({ textSize, className }: ArrowButtonBaseProps) {
return {
className: clsx(
- 'text-primary inline-flex items-center text-left font-medium focus:outline-none cursor-pointer transition',
+ 'text-primary inline-flex cursor-pointer items-center text-left font-medium transition focus:outline-none',
{
'text-xl': textSize === 'medium',
'text-lg': textSize === 'small',
diff --git a/app/components/article-card.tsx b/app/components/article-card.tsx
index 42394587d..d7af9725b 100644
--- a/app/components/article-card.tsx
+++ b/app/components/article-card.tsx
@@ -1,13 +1,13 @@
import { Link } from '@remix-run/react'
import { clsx } from 'clsx'
-import { getImageBuilder, getImgProps } from '~/images.tsx'
-import { type MdxListItem, type Team } from '~/types.ts'
-import { getBannerAltProp, getBannerTitleProp } from '~/utils/mdx.tsx'
-import { useRootData } from '~/utils/use-root-data.ts'
import { BlurrableImage } from './blurrable-image.tsx'
import { ClipboardCopyButton } from './clipboard-copy-button.tsx'
import { MissingSomething } from './kifs.tsx'
import { H3 } from './typography.tsx'
+import { getImageBuilder, getImgProps } from '~/images.tsx'
+import { type MdxListItem, type Team } from '~/types.ts'
+import { getBannerAltProp, getBannerTitleProp } from '~/utils/mdx.tsx'
+import { useRootData } from '~/utils/use-root-data.ts'
function ArticleCard({
leadingTeam,
diff --git a/app/components/button.tsx b/app/components/button.tsx
index 9588be603..4c2c3a80c 100644
--- a/app/components/button.tsx
+++ b/app/components/button.tsx
@@ -10,7 +10,7 @@ interface ButtonProps {
function getClassName({ className }: { className?: string }) {
return clsx(
- 'group relative inline-flex text-lg font-medium focus:outline-none opacity-100 disabled:opacity-50 transition',
+ 'group relative inline-flex text-lg font-medium opacity-100 transition focus:outline-none disabled:opacity-50',
className,
)
}
diff --git a/app/components/calls/recorder.tsx b/app/components/calls/recorder.tsx
index 4a8cb8fa2..c675a0bbf 100644
--- a/app/components/calls/recorder.tsx
+++ b/app/components/calls/recorder.tsx
@@ -2,8 +2,6 @@ import { useMachine } from '@xstate/react'
import gsap from 'gsap'
import * as React from 'react'
import { assign, createMachine, send as sendUtil } from 'xstate'
-import { type OptionalTeam } from '~/types.ts'
-import { assertNonNull, getOptionalTeam } from '~/utils/misc.tsx'
import { Button, LinkButton } from '../button.tsx'
import { useInterval } from '../hooks/use-interval.tsx'
import {
@@ -14,6 +12,8 @@ import {
} from '../icons.tsx'
import { Tag } from '../tag.tsx'
import { Paragraph } from '../typography.tsx'
+import { type OptionalTeam } from '~/types.ts'
+import { assertNonNull, getOptionalTeam } from '~/utils/misc.tsx'
// Play around with these values to affect the audio visualisation.
// Should be able to stream the visualisation back no problem.
@@ -140,7 +140,7 @@ const recorderMachine = createMachine
{state.context.audioDevices.length
- ? state.context.audioDevices.map(device => (
+ ? state.context.audioDevices.map((device) => (
{getErrorMessage(error)}
, + unexpectedErrorHandler = (error) =>{getErrorMessage(error)}
, }: { defaultStatusHandler?: StatusHandler statusHandlers?: Record