Skip to content

Commit edff8e5

Browse files
committed
Enable a slew of ESLint rules.
1 parent b2aed00 commit edff8e5

33 files changed

Lines changed: 111 additions & 104 deletions

.eslintrc.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,12 @@ module.exports = {
2828
'react-hooks/rules-of-hooks': 'error',
2929
'react-hooks/exhaustive-deps': 'warn',
3030
// Make TypeScript ESLint less strict.
31+
'@typescript-eslint/no-confusing-void-expression': 'off',
3132
'@typescript-eslint/strict-boolean-expressions': 'off',
3233
'@typescript-eslint/restrict-plus-operands': 'off',
3334
'@typescript-eslint/no-dynamic-delete': 'off',
34-
// TODO: Remove these down the line.
35-
'@typescript-eslint/ban-types': 'off',
3635
'@typescript-eslint/no-var-requires': 'off',
37-
'@typescript-eslint/prefer-optional-chain': 'off',
38-
'@typescript-eslint/consistent-type-imports': 'off',
39-
'@typescript-eslint/prefer-nullish-coalescing': 'off',
40-
'@typescript-eslint/no-confusing-void-expression': 'off',
41-
'@typescript-eslint/explicit-function-return-type': 'off',
42-
'@typescript-eslint/consistent-indexed-object-style': 'off',
36+
'@typescript-eslint/explicit-function-return-type': 'off', // TODO: Enable later.
4337
// Adjust to Prettier's presence. (Maybe we should do away with it later.)
4438
'@typescript-eslint/space-before-function-paren': 'off',
4539
'@typescript-eslint/member-delimiter-style': 'off',

src/App.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@ import MaterialIcons from 'react-native-vector-icons/MaterialIcons'
1111
import { NavigationContainer, DarkTheme } from '@react-navigation/native'
1212
import {
1313
createNativeStackNavigator,
14-
NativeStackNavigationProp
14+
type NativeStackNavigationProp
1515
} from '@react-navigation/native-stack'
1616
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'
1717

1818
import useAsyncStorage from './storage/useAsyncStorage'
1919
import useJsonAsyncStorage from './storage/useJsonAsyncStorage'
2020
import ConnectionContext, {
21-
DisconnectReason
21+
type DisconnectReason
2222
} from './context/connectionContext'
23-
import AccountsContext, { Accounts } from './context/accountsContext'
23+
import AccountsContext, { type Accounts } from './context/accountsContext'
2424
import SettingsContext, {
2525
defaultSettings,
26-
Settings
26+
type Settings
2727
} from './context/settingsContext'
28-
import ServersContext, { Servers } from './context/serversContext'
28+
import ServersContext, { type Servers } from './context/serversContext'
2929
import { ColorSchemeContext } from './context/useDarkMode'
3030
import DisconnectDialog from './components/DisconnectDialog'
31-
import { ServerConnection } from './minecraft/connection'
31+
import { type ServerConnection } from './minecraft/connection'
3232
import ChatScreen from './screens/chat/ChatScreen'
3333
import ServerScreen from './screens/ServerScreen'
3434
import AccountScreen from './screens/AccountScreen'
@@ -116,8 +116,7 @@ const App = () => {
116116

117117
const colorScheme = useColorScheme()
118118
const systemDefault = colorScheme === null ? true : colorScheme === 'dark'
119-
const darkMode =
120-
settings.darkMode === null ? systemDefault : settings.darkMode
119+
const darkMode = settings.darkMode ?? systemDefault
121120
// Change navigation bar colour on dark mode.
122121
// LOW-TODO: Doesn't work correctly in modals.
123122
useEffect(() => {

src/components/Dialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react'
22
import {
33
Modal,
44
Pressable,
5-
ViewStyle,
5+
type ViewStyle,
66
StyleSheet,
77
KeyboardAvoidingView
88
} from 'react-native'

src/components/ElevatedView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react'
2-
import { View, ViewStyle } from 'react-native'
2+
import { View, type ViewStyle } from 'react-native'
33
import useDarkMode from '../context/useDarkMode'
44

55
const ElevatedView = (
@@ -16,7 +16,7 @@ const ElevatedView = (
1616
elevation: 2,
1717
overflow: 'hidden'
1818
},
19-
props.style || {}
19+
props.style ?? {}
2020
)}
2121
/>
2222
)

src/components/Text.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import React from 'react'
2-
import { Text as RNText, TextProps, StyleSheet, Platform } from 'react-native'
2+
import {
3+
Text as RNText,
4+
type TextProps,
5+
StyleSheet,
6+
Platform
7+
} from 'react-native'
38
import useDarkMode from '../context/useDarkMode'
49

510
const Text = (props: React.PropsWithChildren<TextProps>) => (

src/components/TextField.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import React from 'react'
2-
import { TextInput, StyleSheet, TextInputProps } from 'react-native'
2+
import { TextInput, StyleSheet, type TextInputProps } from 'react-native'
33
import useDarkMode from '../context/useDarkMode'
44

55
const TextField = (props: TextInputProps & { red?: boolean }) => {
6-
const style = props.style && props.style.valueOf()
6+
const style = props.style?.valueOf()
77
const darkMode = useDarkMode()
88
return (
99
<TextInput

src/components/accounts/AccountDisplay.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react'
22
import { Image, Pressable, StyleSheet, View } from 'react-native'
3-
import { Account } from '../../context/accountsContext'
3+
import { type Account } from '../../context/accountsContext'
44
import ElevatedView from '../ElevatedView'
55
import Text from '../Text'
66

src/components/accounts/MicrosoftLogin.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { useContext, useRef, useState } from 'react'
22
import { StyleSheet, Modal, Platform, View } from 'react-native'
33
import Ionicons from 'react-native-vector-icons/Ionicons'
4-
import { WebView, WebViewNavigation } from 'react-native-webview'
4+
import { WebView, type WebViewNavigation } from 'react-native-webview'
55

66
import useDarkMode from '../../context/useDarkMode'
77
import UsersContext from '../../context/accountsContext'

src/components/servers/EditServerDialog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import { StyleSheet, View, Pressable } from 'react-native'
33
import { Picker } from '@react-native-picker/picker'
44

55
import globalStyle from '../../globalStyle'
6-
import { Servers } from '../../context/serversContext'
6+
import { type Servers } from '../../context/serversContext'
77
import Dialog, { dialogStyles } from '../Dialog'
88
import Text from '../Text'
99
import TextField from '../TextField'
10-
import { protocolMap } from '../../minecraft/utils'
10+
import { type protocolMap } from '../../minecraft/utils'
1111

1212
const EditServerDialog = ({
1313
servers,

src/components/servers/ServerDisplay.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010

1111
import Text from '../Text'
1212
import ElevatedView from '../ElevatedView'
13-
import { LegacyPing, Ping } from '../../minecraft/pingServer'
13+
import { type LegacyPing, type Ping } from '../../minecraft/pingServer'
1414
import {
1515
ChatToJsx,
1616
lightColorMap,

0 commit comments

Comments
 (0)