Skip to content

Commit a3b0915

Browse files
authored
prettier, eslint, and deps, epoch (#414)
* prettier, eslint, and deps * more * aha * aha * something is up with tests.. need to figure this out later * start using epoch semver * aha * test canary * aha * patch
1 parent 297f864 commit a3b0915

30 files changed

+1132
-1654
lines changed

.changeset/pre.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"mode": "exit",
3+
"tag": "canary",
4+
"initialVersions": {
5+
"@react-native-community/hooks": "100.0.0"
6+
},
7+
"changesets": [
8+
"two-pets-allow"
9+
]
10+
}

.changeset/two-pets-allow.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@react-native-community/hooks": patch
3+
---
4+
5+
test for canary

.editorconfig

-3
This file was deleted.

.eslintrc.js

-6
This file was deleted.

.prettierrc.js

-7
This file was deleted.

CHANGELOG.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
# v3.0.0 (Wed Feb 01 2023)
1+
# React Native Hooks
2+
3+
## 100.0.0
4+
5+
### Epoch Changes
6+
7+
- a bunch of deps bumped, and epoch semver
28

39
## 3.1.0
410

bun.lock

+199-792
Large diffs are not rendered by default.

eslint.config.mjs

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import globals from "globals"
2+
import pluginJs from "@eslint/js"
3+
import tseslint from "typescript-eslint"
4+
import pluginReact from "eslint-plugin-react"
5+
import eslintConfigPrettier from "eslint-config-prettier"
6+
7+
/** @type {import('eslint').Linter.Config[]} */
8+
export default [
9+
{ files: ["**/*.{ts,tsx}"] },
10+
{ languageOptions: { globals: globals.node } },
11+
pluginJs.configs.recommended,
12+
...tseslint.configs.recommended,
13+
{
14+
files: ["**/*.{ts,tsx}"],
15+
...pluginReact.configs.flat.recommended,
16+
...pluginReact.configs.flat["jsx-runtime"],
17+
rules: {
18+
"react/react-in-jsx-scope": "off", // dont require `import React from "react"`
19+
},
20+
},
21+
eslintConfigPrettier, // keep last
22+
]

jest.config.js

+14-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
module.exports = {
2-
testEnvironment: 'node',
3-
preset: 'react-native',
4-
transform: {
5-
'^.+\\.jsx$': 'babel-jest',
6-
'^.+\\.tsx?$': 'ts-jest',
7-
},
8-
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
9-
testPathIgnorePatterns: ['node_modules', 'lib'],
2+
preset: "react-native",
3+
testEnvironment: "node",
4+
transform: {
5+
"^.+\\.jsx?$": "babel-jest",
6+
"^.+\\.tsx?$": [
7+
"ts-jest",
8+
{
9+
tsconfig: "tsconfig.json",
10+
},
11+
],
12+
},
13+
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
14+
testPathIgnorePatterns: ["node_modules", "lib"],
15+
setupFiles: ["./jest.setup.js"],
1016
}

jest.setup.js

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { jest } from "@jest/globals"
2+
3+
jest.mock("react-native/Libraries/Utilities/Platform", () => ({
4+
select: jest.fn((platform) => platform.default),
5+
}))
6+
7+
jest.mock("react-native", () => {
8+
const RN = jest.requireActual("react-native/Libraries/ReactNative/oss/ReactNativeRenderer-prod")
9+
10+
return {
11+
Platform: {
12+
select: jest.fn((platform) => platform.default),
13+
},
14+
Dimensions: {
15+
get: jest.fn().mockReturnValue({ width: 375, height: 812 }),
16+
addEventListener: jest.fn(),
17+
},
18+
useWindowDimensions: jest.fn().mockReturnValue({ width: 375, height: 812 }),
19+
AppState: {
20+
currentState: "active",
21+
addEventListener: jest.fn(() => ({
22+
remove: jest.fn(),
23+
})),
24+
},
25+
BackHandler: {
26+
addEventListener: jest.fn(() => ({
27+
remove: jest.fn(),
28+
})),
29+
},
30+
Keyboard: {
31+
addListener: jest.fn(() => ({
32+
remove: jest.fn(),
33+
})),
34+
emit: jest.fn(),
35+
},
36+
AccessibilityInfo: {
37+
addEventListener: jest.fn(() => ({
38+
remove: jest.fn(),
39+
})),
40+
removeEventListener: jest.fn(),
41+
setAccessibilityFocus: jest.fn(),
42+
announceForAccessibility: jest.fn(),
43+
isBoldTextEnabled: jest.fn().mockResolvedValue(false),
44+
isScreenReaderEnabled: jest.fn().mockResolvedValue(false),
45+
isGrayscaleEnabled: jest.fn().mockResolvedValue(false),
46+
isInvertColorsEnabled: jest.fn().mockResolvedValue(false),
47+
isReduceMotionEnabled: jest.fn().mockResolvedValue(false),
48+
isReduceTransparencyEnabled: jest.fn().mockResolvedValue(false),
49+
},
50+
InteractionManager: {
51+
runAfterInteractions: jest.fn(() => ({
52+
cancel: jest.fn(),
53+
})),
54+
},
55+
Image: {
56+
getSize: jest.fn(),
57+
getSizeWithHeaders: jest.fn(),
58+
resolveAssetSource: jest.fn().mockReturnValue({ width: 100, height: 100 }),
59+
},
60+
}
61+
})
62+
63+
global.window = {}
64+
global.window.addEventListener = () => {}

package.json

+22-23
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,42 @@
11
{
22
"name": "@react-native-community/hooks",
3-
"version": "3.1.0",
4-
"description": "",
3+
"version": "100.0.0",
4+
"description": "React Native Hooks",
55
"main": "lib/index.js",
66
"types": "lib/index.d.ts",
77
"scripts": {
8-
"prepare": "bun run build",
9-
"build": "tsc",
8+
"typecheck": "tsc",
109
"test": "jest",
1110
"test:w": "jest --watch",
1211
"lint": "eslint src/**/*.ts",
1312
"eslint:fix": "eslint src/**/*.ts --fix",
1413
"prettier:fix": "prettier --write \"**/*.{ts,tsx}\"",
15-
"release": "changeset publish",
16-
"release:canary": "changeset pre enter canary && changeset version && changeset publish --tag canary",
14+
"release": "bun run typecheck && changeset publish",
15+
"release:canary": "bun run typecheck && changeset pre enter canary && changeset version && changeset publish --tag canary",
1716
"version": "changeset version",
1817
"changeset": "changeset"
1918
},
2019
"peerDependencies": {
21-
"react": ">=17.0.2",
22-
"react-native": ">=0.65"
20+
"react": ">=18.0.0",
21+
"react-native": ">=0.70"
2322
},
2423
"devDependencies": {
2524
"@changesets/cli": "^2.28.1",
26-
"@react-native-community/eslint-config": "3.2.0",
27-
"@testing-library/react-hooks": "8.0.1",
28-
"@testing-library/react-native": "12.1.3",
29-
"@types/jest": "29.5.3",
30-
"@types/react": "18.2.20",
31-
"@types/react-native": "0.72.2",
32-
"eslint": "8.41.0",
33-
"eslint-plugin-prettier": "4.2.1",
34-
"jest": "29.5.0",
35-
"prettier": "2.8.8",
36-
"react": "18.2.0",
37-
"react-native": "0.71.12",
38-
"react-test-renderer": "18.2.0",
39-
"ts-jest": "29.1.1",
40-
"typescript": "5.0.4"
25+
"@jest/globals": "^29.7.0",
26+
"@testing-library/react-hooks": "^8.0.1",
27+
"@testing-library/react-native": "^13.0.1",
28+
"@types/jest": "^29.5.14",
29+
"@types/react": "18.3.18",
30+
"eslint": "9.20.1",
31+
"eslint-plugin-prettier": "^5.2.3",
32+
"jest": "^29.7.0",
33+
"prettier": "3.5.1",
34+
"react": "18.3.1",
35+
"react-native": "0.78.0",
36+
"react-test-renderer": "^19.0.0",
37+
"ts-jest": "^29.2.5",
38+
"typescript": "5.7.3",
39+
"typescript-eslint": "^8.24.1"
4140
},
4241
"author": "Nader Dabit",
4342
"repository": {

prettier.config.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module.exports = {
2+
semi: false,
3+
useTabs: true,
4+
printWidth: 100,
5+
overrides: [
6+
{
7+
files: "*.json",
8+
options: {
9+
useTabs: false,
10+
tabWidth: 2,
11+
},
12+
},
13+
],
14+
}

src/index.ts

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
import {useAppState} from './useAppState'
2-
import {useBackHandler} from './useBackHandler'
3-
import {useAccessibilityInfo} from './useAccessibilityInfo'
4-
import {useKeyboard} from './useKeyboard'
5-
import {useInteractionManager} from './useInteractionManager'
6-
import {useDeviceOrientation} from './useDeviceOrientation'
7-
import {useLayout} from './useLayout'
8-
import {useImageDimensions} from './useImageDimensions'
9-
import {useRefresh} from './useRefresh'
1+
import { useAppState } from "./useAppState"
2+
import { useBackHandler } from "./useBackHandler"
3+
import { useAccessibilityInfo } from "./useAccessibilityInfo"
4+
import { useKeyboard } from "./useKeyboard"
5+
import { useDeviceOrientation } from "./useDeviceOrientation"
6+
import { useLayout } from "./useLayout"
7+
import { useImageDimensions } from "./useImageDimensions"
8+
import { useInteractionManager } from "./useInteractionManager"
9+
import { useRefresh } from "./useRefresh"
1010

1111
export {
12-
useAccessibilityInfo,
13-
useAppState,
14-
useBackHandler,
15-
useDeviceOrientation,
16-
useImageDimensions,
17-
useInteractionManager,
18-
useKeyboard,
19-
useLayout,
20-
useRefresh,
12+
useAccessibilityInfo,
13+
useAppState,
14+
useBackHandler,
15+
useDeviceOrientation,
16+
useImageDimensions,
17+
useInteractionManager,
18+
useKeyboard,
19+
useLayout,
20+
useRefresh,
2121
}

0 commit comments

Comments
 (0)