Skip to content

Commit 15e825c

Browse files
authored
chore: update react app to lint imports (#40)
1 parent 16bb126 commit 15e825c

File tree

7 files changed

+30
-11
lines changed

7 files changed

+30
-11
lines changed
Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,44 @@
11
import js from "@eslint/js";
2-
import globals from "globals";
2+
import { flatConfigs as pluginImportXFlatConfigs } from "eslint-plugin-import-x";
33
import reactHooks from "eslint-plugin-react-hooks";
44
import reactRefresh from "eslint-plugin-react-refresh";
55
import tseslint from "typescript-eslint";
6+
import tsParser from "@typescript-eslint/parser";
7+
import * as tsResolver from "eslint-import-resolver-typescript";
68

79
export default tseslint.config(
810
{ ignores: ["dist"] },
911
{
10-
extends: [js.configs.recommended, ...tseslint.configs.recommended],
12+
extends: [
13+
js.configs.recommended,
14+
tseslint.configs.recommended,
15+
pluginImportXFlatConfigs.recommended,
16+
pluginImportXFlatConfigs.typescript,
17+
],
1118
files: ["**/*.{ts,tsx}"],
1219
languageOptions: {
13-
ecmaVersion: 2020,
14-
globals: globals.browser,
20+
parser: tsParser,
21+
ecmaVersion: "latest",
22+
sourceType: "module",
1523
},
1624
plugins: {
1725
"react-hooks": reactHooks,
1826
"react-refresh": reactRefresh,
1927
},
2028
rules: {
2129
...reactHooks.configs.recommended.rules,
30+
"import-x/extensions": ["error", "never"],
31+
"import-x/default": "off",
2232
"react-refresh/only-export-components": [
2333
"warn",
2434
{ allowConstantExport: true },
2535
],
2636
},
37+
settings: {
38+
"import-x/resolver": {
39+
name: "tsResolver",
40+
resolver: tsResolver,
41+
},
42+
},
2743
},
2844
);

client/oneTimePayment/react/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
"@types/react-dom": "^19.0.4",
2424
"@vitejs/plugin-react": "^4.3.4",
2525
"eslint": "^9.21.0",
26+
"eslint-import-resolver-typescript": "^4.3.4",
27+
"eslint-plugin-import-x": "^4.11.0",
2628
"eslint-plugin-react-hooks": "^5.1.0",
2729
"eslint-plugin-react-refresh": "^0.4.19",
2830
"globals": "^15.15.0",

client/oneTimePayment/react/src/App.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { useEffect, useState } from "react";
22

3-
import { PayPalSDKProvider } from "./context/sdkContext.tsx";
3+
import { PayPalSDKProvider } from "./context/sdkContext";
44
import { ErrorBoundary, useErrorBoundary } from "react-error-boundary";
55

6-
import { getBrowserSafeClientToken } from "./utils.ts";
7-
import SoccerBall from "./sections/SoccerBall.tsx";
6+
import { getBrowserSafeClientToken } from "./utils";
7+
import SoccerBall from "./sections/SoccerBall";
88

99
function ErrorFallback({ error }: { error: Error }) {
1010
const { resetBoundary } = useErrorBoundary();

client/oneTimePayment/react/src/components/PayPalButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const PayPalButton: React.FC<PaymentSessionOptions> = (
1717
paymentSessionOptions,
1818
);
1919
}
20-
}, [sdkInstance]);
20+
}, [sdkInstance, paymentSessionOptions]);
2121

2222
const payPalOnClickHandler = async () => {
2323
if (!paypalSession.current) return;

client/oneTimePayment/react/src/components/VenmoButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const VenmoButton: React.FC<PaymentSessionOptions> = (
1717
paymentSessionOptions,
1818
);
1919
}
20-
}, [sdkInstance]);
20+
}, [sdkInstance, paymentSessionOptions]);
2121

2222
const venmoOnClickHandler = async () => {
2323
if (!venmoSession.current) return;

client/oneTimePayment/react/src/context/sdkContext.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ interface PayPalSDKProviderProps {
4747
clientToken?: string;
4848
}
4949

50+
// eslint-disable-next-line react-refresh/only-export-components
5051
export const PayPalSDKContext =
5152
createContext<PayPalSDKContextProps>(initialContext);
5253

@@ -77,7 +78,7 @@ export const PayPalSDKProvider: React.FC<PayPalSDKProviderProps> = ({
7778
};
7879

7980
loadPayPalSDK();
80-
}, [clientToken, pageType, components]);
81+
});
8182

8283
return (
8384
<PayPalSDKContext.Provider
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import { createRoot } from "react-dom/client";
2-
import App from "./App.tsx";
2+
import App from "./App";
33

44
createRoot(document.getElementById("root")!).render(<App />);

0 commit comments

Comments
 (0)