feat: add @tanstack/react-query and related packages for improved data fetching

This commit is contained in:
Ardeman 2025-02-24 12:15:59 +08:00
parent ca0dfbc5f8
commit 8bf7bd812d
3 changed files with 70 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import tseslint from 'typescript-eslint'
import tsEslintParser from '@typescript-eslint/parser'
import eslintPluginUnicorn from 'eslint-plugin-unicorn'
import reactPlugin from 'eslint-plugin-react'
import pluginQuery from '@tanstack/eslint-plugin-query'
export default tseslint.config(
{ ignores: ['dist', 'node_modules', '.react-router'] },
@ -17,6 +18,7 @@ export default tseslint.config(
jsxA11y.flatConfigs.recommended,
importPlugin.flatConfigs.recommended,
eslintPluginUnicorn.configs['flat/recommended'],
...pluginQuery.configs['flat/recommended'],
],
files: ['**/*.{ts,tsx}'],
languageOptions: {

View File

@ -19,10 +19,13 @@
"@react-router/fs-routes": "^7.1.3",
"@react-router/node": "^7.1.3",
"@react-router/serve": "^7.1.3",
"@tanstack/react-query": "^5.66.9",
"chart.js": "^4.4.8",
"class-variance-authority": "^0.7.1",
"html-react-parser": "^5.2.2",
"isbot": "^5.1.17",
"react": "^19.0.0",
"react-chartjs-2": "^5.3.0",
"react-dom": "^19.0.0",
"react-hook-form": "^7.54.2",
"react-router": "^7.1.3",
@ -38,6 +41,7 @@
"@react-router/dev": "^7.1.3",
"@tailwindcss/typography": "^0.5.16",
"@tailwindcss/vite": "^4.0.0",
"@tanstack/eslint-plugin-query": "^5.66.1",
"@types/node": "^20.17.16",
"@types/react": "^19.0.1",
"@types/react-dom": "^19.0.1",

64
pnpm-lock.yaml generated
View File

@ -23,6 +23,12 @@ importers:
'@react-router/serve':
specifier: ^7.1.3
version: 7.1.3(react-router@7.1.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.3)
'@tanstack/react-query':
specifier: ^5.66.9
version: 5.66.9(react@19.0.0)
chart.js:
specifier: ^4.4.8
version: 4.4.8
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
@ -35,6 +41,9 @@ importers:
react:
specifier: ^19.0.0
version: 19.0.0
react-chartjs-2:
specifier: ^5.3.0
version: 5.3.0(chart.js@4.4.8)(react@19.0.0)
react-dom:
specifier: ^19.0.0
version: 19.0.0(react@19.0.0)
@ -75,6 +84,9 @@ importers:
'@tailwindcss/vite':
specifier: ^4.0.0
version: 4.0.1(vite@5.4.14(@types/node@20.17.16)(lightningcss@1.29.1))
'@tanstack/eslint-plugin-query':
specifier: ^5.66.1
version: 5.66.1(eslint@8.57.1)(typescript@5.7.3)
'@types/node':
specifier: ^20.17.16
version: 20.17.16
@ -619,6 +631,9 @@ packages:
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
'@kurkle/color@0.3.4':
resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==}
'@mjackson/node-fetch-server@0.2.0':
resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==}
@ -1331,6 +1346,19 @@ packages:
peerDependencies:
vite: ^5.2.0 || ^6
'@tanstack/eslint-plugin-query@5.66.1':
resolution: {integrity: sha512-pYMVTGgJ7yPk9Rm6UWEmbY6TX0EmMmxJqYkthgeDCwEznToy2m+W928nUODFirtZBZlhBsqHy33LO0kyTlgf0w==}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
'@tanstack/query-core@5.66.4':
resolution: {integrity: sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA==}
'@tanstack/react-query@5.66.9':
resolution: {integrity: sha512-NRI02PHJsP5y2gAuWKP+awamTIBFBSKMnO6UVzi03GTclmHHHInH5UzVgzi5tpu4+FmGfsdT7Umqegobtsp23A==}
peerDependencies:
react: ^18 || ^19
'@tanstack/react-virtual@3.13.0':
resolution: {integrity: sha512-CchF0NlLIowiM2GxtsoKBkXA4uqSnY2KvnXo+kyUFD4a4ll6+J0qzoRsUPMwXV/H26lRsxgJIr/YmjYum2oEjg==}
peerDependencies:
@ -1633,6 +1661,10 @@ packages:
resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
chart.js@4.4.8:
resolution: {integrity: sha512-IkGZlVpXP+83QpMm4uxEiGqSI7jFizwVtF3+n5Pc3k7sMO+tkd0qxh2OzLhenM0K80xtmAONWGBn082EiBQSDA==}
engines: {pnpm: '>=8'}
chokidar@4.0.3:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
engines: {node: '>= 14.16.0'}
@ -3401,6 +3433,12 @@ packages:
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
engines: {node: '>= 0.8'}
react-chartjs-2@5.3.0:
resolution: {integrity: sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==}
peerDependencies:
chart.js: ^4.1.1
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-d3-tree@3.6.2:
resolution: {integrity: sha512-1ExQlmEnv5iOw9XfZ3EcESDjzGXVKPAmyDJTJbvVfiwkplZtP7CcNEY0tKZf4XSW0FzYJf4aFXprGJen+95yuw==}
peerDependencies:
@ -4710,6 +4748,8 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
'@kurkle/color@0.3.4': {}
'@mjackson/node-fetch-server@0.2.0': {}
'@nodelib/fs.scandir@2.1.5':
@ -5395,6 +5435,21 @@ snapshots:
tailwindcss: 4.0.1
vite: 5.4.14(@types/node@20.17.16)(lightningcss@1.29.1)
'@tanstack/eslint-plugin-query@5.66.1(eslint@8.57.1)(typescript@5.7.3)':
dependencies:
'@typescript-eslint/utils': 8.22.0(eslint@8.57.1)(typescript@5.7.3)
eslint: 8.57.1
transitivePeerDependencies:
- supports-color
- typescript
'@tanstack/query-core@5.66.4': {}
'@tanstack/react-query@5.66.9(react@19.0.0)':
dependencies:
'@tanstack/query-core': 5.66.4
react: 19.0.0
'@tanstack/react-virtual@3.13.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@tanstack/virtual-core': 3.13.0
@ -5759,6 +5814,10 @@ snapshots:
chalk@5.4.1: {}
chart.js@4.4.8:
dependencies:
'@kurkle/color': 0.3.4
chokidar@4.0.3:
dependencies:
readdirp: 4.1.1
@ -7594,6 +7653,11 @@ snapshots:
iconv-lite: 0.4.24
unpipe: 1.0.0
react-chartjs-2@5.3.0(chart.js@4.4.8)(react@19.0.0):
dependencies:
chart.js: 4.4.8
react: 19.0.0
react-d3-tree@3.6.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
'@bkrem/react-transition-group': 1.3.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)