Files
Abin ToppoandClaude Opus 4.8 95d8e0a925 perf: project-wide optimization pass + UI/theme fixes
Optimization (audited across src/, typecheck green):
- Crash guards: PurchaseAuction data?.result + stray text-node, AuctionItemDetail
  length>0, LiveAuction user?.contractorId, KYC params guard
- Hoisted render-defined components: Login MinimalInput (keyboard-focus bug),
  TenderFullDetail Section/InfoBox (subtree remount)
- Memoized hot paths: Spreadsheet ColumnHeaderRow/DataRow, list makeStyles,
  shared infinite-query select (stops per-render flatMap)
- Removed hot-path/in-list console logs; SkeletonList 10->1 shimmer

UI/theme: themed AppToast, redesigned sidebar drawer, list empty states,
KYC WebView cleanup

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 11:14:23 +05:30

104 lines
3.5 KiB
JSON

{
"name": "procure",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"lint": "eslint .",
"start": "react-native start",
"test": "jest",
"create:users": "node scripts/create-users.js"
},
"dependencies": {
"@react-native-async-storage/async-storage": "2.2.0",
"@react-native-community/blur": "4.4.1",
"@react-native-documents/picker": "11.0.3",
"@react-native-masked-view/masked-view": "0.2.9",
"@react-native-vector-icons/material-icons": "12.4.0",
"@react-navigation/bottom-tabs": "7.9.0",
"@react-navigation/drawer": "^7.8.1",
"@react-navigation/native": "^7.1.28",
"@react-navigation/native-stack": "^7.17.3",
"@react-navigation/stack": "7.6.13",
"@reduxjs/toolkit": "2.11.2",
"@shopify/flash-list": "^1.7.6",
"@stomp/stompjs": "7.2.1",
"@tanstack/react-query": "5.90.12",
"axios": "1.13.2",
"buffer": "6.0.3",
"crypto-js": "^4.2.0",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-native": "5.0.0",
"exceljs": "^3.4.0",
"formik": "2.4.9",
"hyperformula": "^2.7.1",
"jsencrypt": "^3.5.4",
"lottie-react-native": "7.3.4",
"lucide-react-native": "0.562.0",
"moment": "2.30.1",
"react": "19.0.0",
"react-native": "0.79.0",
"react-native-app-intro-slider": "4.0.4",
"react-native-blob-util": "0.24.6",
"react-native-bouncy-checkbox": "4.1.2",
"react-native-date-picker": "5.0.13",
"react-native-device-info": "^15.0.2",
"react-native-element-dropdown": "2.12.4",
"react-native-fs": "2.20.0",
"react-native-geolocation-service": "^5.3.1",
"react-native-gesture-handler": "^2.30.0",
"react-native-get-random-values": "1.11.0",
"react-native-gifted-charts": "1.4.70",
"react-native-haptic-feedback": "2.3.3",
"react-native-keychain": "^10.0.0",
"react-native-linear-gradient": "^2.8.3",
"react-native-modal": "^14.0.0-rc.1",
"react-native-permissions": "5.4.4",
"react-native-reanimated": "^3.18.0",
"react-native-responsive-screen": "1.4.2",
"react-native-safe-area-context": "5.6.2",
"react-native-screens": "4.12.0",
"react-native-skeleton-placeholder": "5.2.4",
"react-native-svg": "15.12.0",
"react-native-svg-transformer": "1.5.1",
"react-native-webview": "13.16.0",
"react-redux": "9.2.0",
"redux-persist": "6.0.0",
"sockjs-client": "1.6.1",
"text-encoding": "0.7.0",
"uuid": "13.0.0",
"xlsx": "^0.18.5",
"yup": "1.7.1"
},
"devDependencies": {
"@babel/core": "7.25.2",
"@babel/preset-env": "7.25.3",
"@babel/runtime": "7.25.0",
"@react-native-community/cli": "18.0.1",
"@react-native-community/cli-platform-android": "^18.0.0",
"@react-native-community/cli-platform-ios": "18.0.0",
"@react-native/babel-preset": "0.79.0",
"@react-native/eslint-config": "0.79.0",
"@react-native/metro-config": "0.79.0",
"@react-native/typescript-config": "0.79.0",
"@types/crypto-js": "^4.2.2",
"@types/jest": "29.5.13",
"@types/react": "19.0.0",
"@types/react-test-renderer": "19.0.0",
"@types/sockjs-client": "1.5.4",
"@types/text-encoding": "0.0.40",
"babel-plugin-transform-remove-console": "^6.9.4",
"eslint": "^8.57.0",
"jest": "29.6.3",
"prettier": "2.8.8",
"react-native-bundle-visualizer": "3.1.3",
"react-test-renderer": "19.0.0",
"typescript": "5.0.4"
},
"engines": {
"node": ">=18"
}
}