diff --git a/src/assets/icons/ic_back.svg b/src/assets/icons/ic_back.svg index 9989dee1..eb81b631 100644 --- a/src/assets/icons/ic_back.svg +++ b/src/assets/icons/ic_back.svg @@ -1,3 +1,3 @@ - - + + diff --git a/src/assets/icons/index.ts b/src/assets/icons/index.ts index 56eb3664..2452d084 100644 --- a/src/assets/icons/index.ts +++ b/src/assets/icons/index.ts @@ -6,6 +6,7 @@ export { default as icBookmarkSelected } from './ic_bookmark_selected.svg'; export { default as icBookmarkUnselected } from './ic_bookmark_unselected.svg'; export { default as icSearch } from './ic_search.svg'; export { ReactComponent as IcBack } from './ic_back.svg'; +export { default as icBack } from './ic_back.svg'; export { ReactComponent as IcDelete } from './ic_delete.svg'; export { default as icMemberAdd } from './ic_member_add.svg'; export { default as icMemberAdded } from './ic_member_added.svg'; diff --git a/src/presentation/components/common/CommonNavigation/index.tsx b/src/presentation/components/common/CommonNavigation/index.tsx new file mode 100644 index 00000000..5e284efc --- /dev/null +++ b/src/presentation/components/common/CommonNavigation/index.tsx @@ -0,0 +1,25 @@ +import { useNavigate } from 'react-router-dom'; + +import { icBack } from '@assets/icons'; +import { StBack, StCommonNavigation, StSubmitButton, StTitle } from './style'; + +interface CommonNavigationProps { + isBack?: boolean; + onClickBack?: () => void; + title?: string; + submitButton?: { content: string; onClick: () => void }; +} + +export default function CommonNavigation(props: CommonNavigationProps) { + const { isBack = true, onClickBack, title, submitButton } = props; + const navigate = useNavigate(); + return ( + + {isBack && navigate(-1)} />} + {title && {title}} + {submitButton && ( + {submitButton.content} + )} + + ); +} diff --git a/src/presentation/components/common/CommonNavigation/style.ts b/src/presentation/components/common/CommonNavigation/style.ts new file mode 100644 index 00000000..cdade016 --- /dev/null +++ b/src/presentation/components/common/CommonNavigation/style.ts @@ -0,0 +1,37 @@ +import { COLOR } from '@styles/common/color'; +import { FONT_STYLES } from '@styles/common/font-style'; +import styled from 'styled-components'; + +export const StCommonNavigation = styled.div` + width: 100%; + height: 44px; + position: relative; + & > * { + position: absolute; + } +`; + +export const StBack = styled.img` + margin-left: 14px; +`; + +export const StTitle = styled.div` + top: 14px; + left: 50%; + transform: translate(-50%, 0%); + ${FONT_STYLES.SB_17_TITLE} + line-height: 100%; + letter-spacing: -0.01em; + color: ${COLOR.GRAY_8}; +`; + +export const StSubmitButton = styled.button` + top: 14.33px; + right: 0; + margin-right: 14.33px; + ${FONT_STYLES.M_15_TITLE} + line-height: 100%; + letter-spacing: -0.01em; + color: ${COLOR.CORAL_MAIN}; + background-color: transparent; +`; diff --git a/src/presentation/pages/Team/Register/index.tsx b/src/presentation/pages/Team/Register/index.tsx index 9ad7ee07..77906df5 100644 --- a/src/presentation/pages/Team/Register/index.tsx +++ b/src/presentation/pages/Team/Register/index.tsx @@ -20,6 +20,7 @@ import { useLoginUser } from '@hooks/useLoginUser'; import { api } from '@api/index'; import { useState } from 'react'; import { useEffect } from 'react'; +import CommonNavigation from '@components/common/CommonNavigation'; function TeamRegister() { const [isMemberSelectMode, setIsMemberSelectMode] = useState(false); @@ -53,46 +54,49 @@ function TeamRegister() { return ( {isMemberSelectMode && } - - 팀 등록하기 - - - - - {!image && } - - - setName(name)} - /> - - ) => setDescription(e.target.value)} - /> - - setIsMemberSelectMode(true)} - /> - { - submitTeamInfo(); - navigate('/home/team'); - }} - isActive={name.length > 0} - > - 완료 - - + <> + + + 팀 등록하기 + + + + + {!image && } + + + setName(name)} + /> + + ) => setDescription(e.target.value)} + /> + + setIsMemberSelectMode(true)} + /> + { + submitTeamInfo(); + navigate('/home/team'); + }} + isActive={name.length > 0} + > + 완료 + + + ); } diff --git a/src/presentation/pages/Team/Register/style.ts b/src/presentation/pages/Team/Register/style.ts index 1bc56178..942dd768 100644 --- a/src/presentation/pages/Team/Register/style.ts +++ b/src/presentation/pages/Team/Register/style.ts @@ -24,7 +24,7 @@ export const StTitle = styled.div` font-weight: 600; font-size: 24px; color: ${COLOR.GRAY_8}; - margin-top: 42px; + margin-top: 68px; margin-bottom: 30px; `;