Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/ProfileImageCompress - 프로필 이미지 크기 제한 및 75% 퀄리티 압축 외 2가지 수정사항 #81

Merged
merged 9 commits into from
Nov 7, 2024
4 changes: 3 additions & 1 deletion src/components/display/dashboard/admin/AddAdmin.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const AddAdmin = forwardRef(({ ...props }, ref) => {
<Input
ref={ref.generation}
label="동아리 가입연월"
placeholder="2024.9"
placeholder="2024-9"
/>
<Input ref={ref.role} label="역할" placeholder="담당 역할" />
</div>
Expand All @@ -28,3 +28,5 @@ export const AddAdmin = forwardRef(({ ...props }, ref) => {
</Wrapper>
);
});

AddAdmin.displayName = 'AddAdmin';
11 changes: 6 additions & 5 deletions src/components/layouts/DashboardLayout.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { DashboardNav } from '@components/navigation/DashboardNav';
import { Alert } from '@components/forms/modal/Alert';
import { Confirm } from '@components/forms/modal/Confirm';
import { Loading } from '@components/forms/modal/Loading';
import NotFound from '../../pages/NotFound';

import '@/transitions/fade-slide.css';

Expand Down Expand Up @@ -75,16 +76,16 @@ export const DashboardLayout = ({ location }) => {

useEffect(() => {
if (isLoading) {
showLoading({ message: '대시보드를 준비하는 중...' });
showLoading({ message: '페이지를 찾는 중...' });
} else {
hideLoading();
}

if (isError) {
navigate(-1);
}
}, [isLoading, isError]);

if (isError) {
return <NotFound />;
}

return (
<Layout>
<Confirm />
Expand Down
19 changes: 6 additions & 13 deletions src/components/navigation/AuthContext.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,12 @@ export const AuthProvider = ({ children }) => {
setIsLoggedIn(true);
};

const logout = async () => {
try {
await API.POST('/logout');
} catch (error) {
// console.error('Error during logout:', error);
} finally {
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
localStorage.removeItem('user');
setIsLoggedIn(false);
setUser(null);
window.location.href = '/';
}
const logout = () => {
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
localStorage.removeItem('user');
setIsLoggedIn(false);
setUser(null);
};

return (
Expand Down
9 changes: 8 additions & 1 deletion src/components/navigation/Profile.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,14 @@ const Profile = ({ userName, logout }) => {
<ProfileContainer onClick={() => navigate('/mypage')}>
<ProfileButton type="rounded" />
<ProfileName style={menu_style}>{userName} 님</ProfileName>
<Link to="/login" style={menu_style} onClick={logout}>
<Link
to="/login"
style={menu_style}
onClick={() => {
logout();
window.location.href = '/';
}}
>
로그아웃
</Link>
</ProfileContainer>
Expand Down
4 changes: 3 additions & 1 deletion src/pages/Article.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ import 'prismjs/components/prism-jsx.min'; // JSX 언어 지원을 포함합니
import 'prismjs/plugins/line-numbers/prism-line-numbers.css'; // 코드 블럭에 줄 번호를 추가하기 위해 이 줄을 추가합니다
import 'prismjs/plugins/line-numbers/prism-line-numbers.min';

import { formatDate } from '@/utils/formatDate';

const ArticleContainer = styled.div`
width: 100%;
margin: 0 auto;
Expand Down Expand Up @@ -121,7 +123,7 @@ export default function Article() {
</Text>
</ArticleTitleGroup>
<Text size="s" color="--secondary-text-color">
{post?.user?.name} | {post?.createdAt}
{post?.user?.name} | {formatDate(post?.created_at)}
</Text>
</ArticleHeader>
<ArticleHorizontalLine />
Expand Down
41 changes: 13 additions & 28 deletions src/pages/Login.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -145,14 +145,10 @@ export default function Login() {

// console.log('response:', response);

// get string body
const access_token = login_res.data.access_token;
const refresh_token = login_res.data.refresh_token;

// 서버에 user 정보 요청
const student_res = await API.GET(`/users/${data.student}`, {
headers: {
Authorization: access_token,
Authorization: login_res.data.access_token,
},
});

Expand All @@ -161,10 +157,16 @@ export default function Login() {
// console.log('token:', { access_token, refresh_token });
// console.log('userInfo:', userInfo);

alert('break!');

if (access_token && refresh_token && userInfo) {
login(access_token, refresh_token, userInfo); // 로그인 성공 시 AuthContext의 login 함수 호출
if (
login_res.data.access_token &&
login_res.data.refresh_token &&
userInfo
) {
login(
login_res.data.access_token,
login_res.data.refresh_token,
userInfo,
); // 로그인 성공 시 AuthContext의 login 함수 호출
// console.log('login user info:', userInfo); // Log user info
setError(''); // 에러 초기화
navigate('/');
Expand All @@ -173,9 +175,6 @@ export default function Login() {
setError('로그인에 실패했습니다. 다시 시도해주세요.');
}
} catch (error) {
// 입력창 비우기
setValue('student', '');
setValue('password', '');
// 에러 처리
// console.error('Error:', error);
setError('로그인에 실패했습니다. 다시 시도해주세요.');
Expand Down Expand Up @@ -206,13 +205,9 @@ export default function Login() {
placeholder="2024000000"
{...register('student', {
required: '학번을 입력해주세요.',
minLength: {
value: 10,
message: '학번은 10자리 숫자여야 합니다.',
},
pattern: {
value: /^[0-9]{10}$/,
message: '학번은 10자리 숫자여야 합니다.',
message: '올바른 학번을 적어주세요.',
},
})}
/>
Expand All @@ -229,16 +224,6 @@ export default function Login() {
placeholder="비밀번호"
{...register('password', {
required: '비밀번호를 입력해주세요',
minLength: {
value: 8,
message: '비밀번호는 8자리 이상이여야 합니다. ',
},
pattern: {
value:
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,20}$/,
message:
'비밀번호는 숫자, 영문 대문자·소문자, 특수문자를 포함해야 합니다.',
},
})}
/>
{errors.password && (
Expand All @@ -258,4 +243,4 @@ export default function Login() {
</LoginBox>
</Container>
);
}
}
Loading