Skip to content

Commit

Permalink
feat: Sentry ์…‹์—…
Browse files Browse the repository at this point in the history
Sentry init์™„๋ฃŒ
axios interceptors ์‚ฌ์šฉํ•ด์„œ error์‹œ ์—๋Ÿฌ ์ „์†ก
  • Loading branch information
5nxtnxtnxt committed Dec 12, 2023
1 parent 4704bb5 commit 7468902
Show file tree
Hide file tree
Showing 18 changed files with 225 additions and 76 deletions.
117 changes: 117 additions & 0 deletions front/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions front/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"dependencies": {
"@react-three/drei": "^9.88.11",
"@react-three/fiber": "^8.15.10",
"@sentry/react": "^7.86.0",
"@types/react-router-dom": "^5.3.3",
"@types/styled-components": "^5.1.29",
"@types/three": "^0.158.1",
Expand Down
119 changes: 60 additions & 59 deletions front/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { SnowBallProvider } from '@pages/Visit/SnowBallProvider';
import { MessageProvider } from '@pages/Visit/MessageProvider';
import { DecoProvider } from '@pages/Visit/Deco/DecoProvider';
import { MessageListProvider } from '@pages/Visit/MessageListProvider';
import * as Sentry from '@sentry/react';

const Outer = styled.div`
position: relative;
Expand All @@ -21,75 +22,75 @@ const Outer = styled.div`
width: ${theme.size['--desktop-width']};
}
`;

const App = () => {
return (
<>
<GlobalStyles />
<ThemeProvider theme={theme}>
<Outer>
<Song />
<BrowserRouter>
<Routes>
<Route
path="/"
element={
<MessageListProvider>
<Pages.Intro />
</MessageListProvider>
}
/>
<Sentry.ErrorBoundary>
<GlobalStyles />
<ThemeProvider theme={theme}>
<Outer>
<Song />
<BrowserRouter>
<Routes>
<Route
path="/"
element={
<MessageListProvider>
<Pages.Intro />
</MessageListProvider>
}
/>

<Route
path="/visit/:user"
element={
<DecoProvider>
<MessageProvider>
<SnowBallProvider>
<MessageListProvider>
<Outlet />
</MessageListProvider>
</SnowBallProvider>
</MessageProvider>
</DecoProvider>
}
>
<Route path="" element={<Pages.Visit />} />
<Route path="deco" element={<Pages.Deco />} />
</Route>

<Route
path="/make"
element={
<SnowBallProvider>
<HasSnowballData>
<Outlet />
</HasSnowballData>
</SnowBallProvider>
}
>
<Route path="" element={<Pages.Nickname />} />
<Route path="snowball" element={<Pages.Snowball />} />
</Route>

<Route
path="/visit/:user"
element={
<DecoProvider>
<Route
path="/main"
element={
<MessageProvider>
<SnowBallProvider>
<MessageListProvider>
<Outlet />
<Pages.Main />
</MessageListProvider>
</SnowBallProvider>
</MessageProvider>
</DecoProvider>
}
>
<Route path="" element={<Pages.Visit />} />
<Route path="deco" element={<Pages.Deco />} />
</Route>

<Route
path="/make"
element={
<SnowBallProvider>
<HasSnowballData>
<Outlet />
</HasSnowballData>
</SnowBallProvider>
}
>
<Route path="" element={<Pages.Nickname />} />
<Route path="snowball" element={<Pages.Snowball />} />
</Route>

<Route
path="/main"
element={
<MessageProvider>
<SnowBallProvider>
<MessageListProvider>
<Pages.Main />
</MessageListProvider>
</SnowBallProvider>
</MessageProvider>
}
/>

<Route path="*" element={<Pages.Wrong />} />
</Routes>
</BrowserRouter>
</Outer>
</ThemeProvider>
}
/>
<Route path="*" element={<Pages.Wrong />} />
</Routes>
</BrowserRouter>
</Outer>
</ThemeProvider>
</Sentry.ErrorBoundary>
</>
);
};
Expand Down
5 changes: 2 additions & 3 deletions front/src/components/Modal/Modal.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useState, useRef, useEffect, useContext } from 'react';
import { useNavigate } from 'react-router-dom';
import { createPortal } from 'react-dom';
import axios from 'axios';
import axios from '@utils/axios';
import styled from 'styled-components';
import { theme } from '@utils';
import {
Expand Down Expand Up @@ -157,8 +157,7 @@ const DeleteModal = (props: DeleteModalProps) => {
setMessageList(messageList);
setUserData(userData);
})
.catch(e => {
console.error(e);
.catch(() => {
navigate('*');
});
})
Expand Down
14 changes: 14 additions & 0 deletions front/src/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
import ReactDOM from 'react-dom/client';
import App from './App';
import * as Sentry from '@sentry/react';

Sentry.init({
dsn: import.meta.env.VITE_APP_SENTRY_DSN,
integrations: [
new Sentry.BrowserTracing({
tracePropagationTargets: ['localhost', /^https:\/\/mysnowball\.kr\/api/]
}),
new Sentry.Replay()
],
tracesSampleRate: 1.0,
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0
});

const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
Expand Down
4 changes: 2 additions & 2 deletions front/src/pages/Main/ListMsgs.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useEffect, useState, useContext } from 'react';
import { createPortal } from 'react-dom';
import axios from 'axios';
import axios from '@utils/axios';
import styled from 'styled-components';
import { useLogout } from '@hooks';
import { ListMsg, Prev } from '@components';
Expand Down Expand Up @@ -98,7 +98,7 @@ const ListMsgs = (props: ListMsgProps) => {
console.error(e);
logout();
});
}, []);
}, [userData]);

return (
<>
Expand Down
4 changes: 2 additions & 2 deletions front/src/pages/Main/Main.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useEffect, useRef, useContext, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { useCookies } from 'react-cookie';
import axios from 'axios';
import axios from '@utils/axios';
import styled from 'styled-components';
import { Loading } from '@utils';
import { useLogout } from '@hooks';
Expand Down Expand Up @@ -49,7 +49,7 @@ const moveSnowball = (
const nextSnowBallID =
userData.snowball_list[(nowSnowBallID + nextIdx) % userData.snowball_count];

axios(`/api/snowball/${nextSnowBallID}`)
axios(`/api/snowball/${nextSnowBallID + 1000}`)
.then(res => {
setSnowBallData(res.data as SnowBallData);
setMessageListData(res.data.message_list as Array<Message>);
Expand Down
2 changes: 1 addition & 1 deletion front/src/pages/Main/MainBody.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useContext, useEffect } from 'react';
import axios from 'axios';
import axios from '@utils/axios';
import styled from 'styled-components';
import { Msg } from '@components';
import { MessageListContext, Message } from '@pages/Visit/MessageListProvider';
Expand Down
2 changes: 1 addition & 1 deletion front/src/pages/Make/Nickname/Nickname.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useState, useRef, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import axios from 'axios';
import axios from '@utils/axios';
import styled from 'styled-components';
import { theme } from '@utils';
import { Button } from '@components';
Expand Down
2 changes: 1 addition & 1 deletion front/src/pages/Make/Snowball/MainDeco/DecoEnroll.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useState, useRef } from 'react';
import { NavigateFunction, useNavigate } from 'react-router-dom';
import axios from 'axios';
import axios from '@utils/axios';
import styled from 'styled-components';
import { theme, BlurBody } from '@utils';
import { useLogout } from '@hooks';
Expand Down
2 changes: 1 addition & 1 deletion front/src/pages/Make/Snowball/MainDeco/MakeButton.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useState, useContext } from 'react';
import { useNavigate } from 'react-router-dom';
import axios from 'axios';
import axios from '@utils/axios';
import styled from 'styled-components';
import { LongButton } from '@utils';
import { DecoContext } from './DecoProvider';
Expand Down
2 changes: 1 addition & 1 deletion front/src/pages/Make/Snowball/Snowball.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useContext, useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import styled from 'styled-components';
import axios from 'axios';
import axios from '@utils/axios';
import { Loading, theme } from '@utils';
import { SnowGlobeCanvas, Button } from '@components';
import { MainDeco } from './MainDeco';
Expand Down
Loading

0 comments on commit 7468902

Please sign in to comment.