Skip to content

Commit 7aeff71

Browse files
committed
feat(): ADDING article support
1 parent e0fe7fc commit 7aeff71

21 files changed

Lines changed: 300 additions & 11 deletions

craco.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ module.exports = {
66
'@assets': path.resolve(__dirname, './src/assets'),
77
'@assets/*': path.resolve(__dirname, './src/assets/*'),
88
'@data': path.resolve(__dirname, './src/data'),
9+
'@services': path.resolve(__dirname, './src/services'),
910
'@hooks': path.resolve(__dirname, './src/hooks'),
1011
'@localization': path.resolve(__dirname, './src/localization'),
1112
'@components': path.resolve(__dirname, './src/components'),

jest.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ module.exports = {
2727
'@assets/(.*)': '<rootDir>/src/assets/$1',
2828
'@assets': '<rootDir>/src/assets',
2929
'@screens': '<rootDir>/src/screens',
30+
'@services': '<rootDir>/src/services',
3031
'@screens/(.*)': '<rootDir>/src/screens/$1',
3132
'@data': '<rootDir>/src/data',
3233
'@hooks': '<rootDir>/src/hooks',

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"version": "0.12.2",
44
"description": "Amit Raikwar Portfolio website",
55
"main": "index.tsx",
6+
"proxy": "http://static.amitraikwar.in",
67
"scripts": {
78
"start": "craco start",
89
"build": "craco build",
@@ -32,6 +33,8 @@
3233
"@react-three/fiber": "^8.17.12",
3334
"@react-three/postprocessing": "^2.16.6",
3435
"@tailwindcss/typography": "^0.5.16",
36+
"@tanstack/react-query": "^5.66.0",
37+
"@tanstack/react-query-devtools": "^5.66.0",
3538
"@testing-library/jest-dom": "^5.17.0",
3639
"@testing-library/react": "^13.4.0",
3740
"@testing-library/user-event": "^13.5.0",
@@ -42,6 +45,7 @@
4245
"@types/node": "^16.18.91",
4346
"@types/react": "^18.2.69",
4447
"@types/react-dom": "^18.2.22",
48+
"axios": "^1.7.9",
4549
"framer-motion": "^11.1.9",
4650
"fuse.js": "^7.0.0",
4751
"gsap": "^3.12.7",
@@ -93,6 +97,7 @@
9397
"@craco/types": "^7.1.0",
9498
"@jest/globals": "^29.7.0",
9599
"@react-three/eslint-plugin": "^0.1.2",
100+
"@tanstack/eslint-plugin-query": "^5.66.0",
96101
"@testing-library/jest-dom": "^5.17.0",
97102
"@testing-library/react": "^13.4.0",
98103
"@testing-library/user-event": "^13.5.0",

src/App.tsx

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,32 @@ import {
66
} from '@providers';
77
import { HelmetProvider } from 'react-helmet-async';
88
import { CursorProvider } from '@components';
9+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
10+
11+
const queryClient = new QueryClient({
12+
defaultOptions: {
13+
queries: {
14+
retry: 5,
15+
retryDelay: 1000,
16+
},
17+
},
18+
});
919

1020
function App() {
1121
return (
12-
<ThemeProvider>
13-
<React.StrictMode>
14-
<HelmetProvider>
15-
<CursorProvider>
16-
<LocalizationProvider>
17-
<AppRouterProvider />
18-
</LocalizationProvider>
19-
</CursorProvider>
20-
</HelmetProvider>
21-
</React.StrictMode>
22-
</ThemeProvider>
22+
<QueryClientProvider client={queryClient}>
23+
<ThemeProvider>
24+
<React.StrictMode>
25+
<HelmetProvider>
26+
<CursorProvider>
27+
<LocalizationProvider>
28+
<AppRouterProvider />
29+
</LocalizationProvider>
30+
</CursorProvider>
31+
</HelmetProvider>
32+
</React.StrictMode>
33+
</ThemeProvider>
34+
</QueryClientProvider>
2335
);
2436
}
2537

src/screens/articles/ArticlesScreen.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { VStack } from '@chakra-ui/react';
2+
import { useGetArticlesData } from '@services';
23

34
const ArticlesScreen = () => {
5+
const { data } = useGetArticlesData();
6+
console.log(data);
7+
48
return (
59
<VStack
610
minH={'100vh'}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import axios from 'axios';
2+
// import { LEARNING_BACKEND_URL } from '../learnings/constants';
3+
4+
// const instance = axios.create({
5+
// baseURL: LEARNING_BACKEND_URL,
6+
// });
7+
8+
export const GetRequest = async (url: string) => {
9+
try {
10+
const response = await axios.get(url, {
11+
headers: {
12+
'Content-Type': 'application/json',
13+
Accept: 'application/json',
14+
},
15+
});
16+
return response.data;
17+
} catch (error) {
18+
// eslint-disable-next-line no-console
19+
console.error(error);
20+
}
21+
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { GetRequest } from './client';

src/services/backend/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './learnings';
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export const LEARNING_BACKEND_URL =
2+
'https://static.amitraikwar.in/portfolio/articles';
3+
4+
export const ARTICLES_URL = `/articles/portfolio/articles.json`;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { GetRequest } from '../client/client';
2+
import { ARTICLES_URL } from './constants';
3+
4+
const getArticlesData = async () => {
5+
return await GetRequest(ARTICLES_URL);
6+
};
7+
8+
export default getArticlesData;

0 commit comments

Comments
 (0)