Add a request interceptor to the axios instance that automatically sets the Accept-Language header from the Zustand language store, ensuring all requests (including POST) send the locale. Remove redundant lang params from service functions and hooks, and refactor B2B form to use the shared service layer instead of raw axios with a hardcoded URL. |
||
|---|---|---|
| dist | ||
| public | ||
| src | ||
| .gitignore | ||
| README.md | ||
| bun.lock | ||
| components.json | ||
| eslint.config.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.js | ||
| tailwind.config.js | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
README.md
React + TypeScript + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
Expanding the ESLint configuration
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptionsproperty like this:
export default tseslint.config({
languageOptions: {
// other options...
parserOptions: {
project: ["./tsconfig.node.json", "./tsconfig.app.json"],
tsconfigRootDir: import.meta.dirname,
},
},
});
- Replace
tseslint.configs.recommendedtotseslint.configs.recommendedTypeCheckedortseslint.configs.strictTypeChecked - Optionally add
...tseslint.configs.stylisticTypeChecked - Install eslint-plugin-react and update the config:
// eslint.config.js
import react from "eslint-plugin-react";
export default tseslint.config({
// Set the react version
settings: { react: { version: "18.3" } },
plugins: {
// Add the react plugin
react,
},
rules: {
// other rules...
// Enable its recommended rules
...react.configs.recommended.rules,
...react.configs["jsx-runtime"].rules,
},
});
#<23> <20>t<EFBFBD>u<EFBFBD>r<EFBFBD>k<EFBFBD>m<EFBFBD>e<EFBFBD>n<EFBFBD>-<2D>t<EFBFBD>e<EFBFBD>x<EFBFBD>t<EFBFBD>i<EFBFBD>l<EFBFBD>e<EFBFBD>-<2D>r<EFBFBD>e<EFBFBD>a<EFBFBD>c<EFBFBD>t<EFBFBD> <0A> <0A>