Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React + TS</title>
<link
rel="stylesheet"
as="style"
crossorigin
href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css"
/>
<link rel="preload" href="/src/assets/images/lamp.png" as="image" />
</head>
<body>
<div id="root"></div>
Expand Down
Binary file modified src/assets/images/envelope.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/assets/images/lamp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/assets/images/light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 8 additions & 6 deletions src/containers/Main/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ interface HeaderProps {

export default function Header({ onClick }: HeaderProps) {
return (
<header className="max-w-600 fixed left-1/2 top-0 z-40 mb-1 flex -translate-x-1/2 items-center justify-between bg-[#14192F] px-5 py-3">
<h1 className="text-white">로고</h1>
<button type="button" onClick={onClick}>
<HamburgerIcon className="h-6 w-6 text-white" />
</button>
</header>
<div className="fixed left-0 top-0 z-40 mb-1 w-full bg-[#14192F]">
<header className="max-w-600 flex items-center justify-between px-5 py-3">
<h1 className="text-white">로고</h1>
<button type="button" onClick={onClick}>
<HamburgerIcon className="h-6 w-6 text-white" />
</button>
</header>
</div>
)
}
6 changes: 3 additions & 3 deletions src/containers/Register/NicknameComplete.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Header from '@/components/Header'
import SolidButton from '@/components/SolidButton'
import LampImage from '@/assets/images/lamp.png'
import LampImagePng from '@/assets/images/lamp.png'

interface NicknameCompleteProps {
nickname: string
Expand All @@ -16,12 +16,12 @@ export default function NicknameComplete({
return (
<>
<Header onClick={prevButtonOnclick} />
<main className="content-padding flex w-full grow flex-col items-center justify-between">
<main className="content-padding flex w-full grow flex-col items-center justify-between gap-10">
<section className="w-full text-center">
<h2 className="headline-small mb-4 text-white">반가워요, {nickname} 님!</h2>
<h3 className="body-large text-neutral-30">메시지를 작성해 거리를 환하게 밝혀주세요</h3>
</section>
<img src={LampImage} alt="램프 이미지" className="h-auto w-[177px]" />
<img src={LampImagePng} alt="램프 이미지" />
<SolidButton
variant="primary"
size="large"
Expand Down
7 changes: 4 additions & 3 deletions src/containers/Register/WriteNickname.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ export default function WriteNickname({ nextButtonOnClick }: WriteNicknameProps)
if (currentValue.length > MAX_NICKNAME_LENGTH)
currentValue = currentValue.slice(0, MAX_NICKNAME_LENGTH)
setNickname(currentValue)

console.log(currentValue)
}

const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {
Expand All @@ -45,7 +43,10 @@ export default function WriteNickname({ nextButtonOnClick }: WriteNicknameProps)

return (
<main className="content-padding flex grow flex-col">
<form className="flex h-full w-full grow flex-col justify-between" onSubmit={handleSubmit}>
<form
className="flex h-full w-full grow flex-col justify-between gap-10"
onSubmit={handleSubmit}
>
<section>
<h1 className="headline-small mb-12 text-white">
메시지 작성 전<br />
Expand Down
6 changes: 1 addition & 5 deletions src/containers/Write/BottomSheet/WriteFinish.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,7 @@ export default function WriteFinish() {
<CancelIcon />
</button>
)}
{isShareVisible ? (
<img src={Light} alt="가로등 아이콘" className="h-auto w-[102px]" />
) : (
<img src={Envelope} alt="편지 아이콘" className="h-auto w-[102px]" />
)}
<img src={isShareVisible ? Light : Envelope} alt="아이콘" className="h-auto w-[102px]" />
<section className="mt-1 h-[76px] text-center text-white">
<p className="title-large mb-2">{title}</p>
<p className="body-medium whitespace-pre-wrap text-center">{body}</p>
Expand Down
6 changes: 3 additions & 3 deletions src/containers/Write/Funnel/SelectTarget.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import OutlinedButton from '@/components/OutlinedButton'
import SolidButton from '@/components/SolidButton'
import OutlinedButton from '@/components/OutlinedButton';
import SolidButton from '@/components/SolidButton';

interface SelectTargetProps {
buttonList: { text: string; value: string }[]
Expand All @@ -15,7 +15,7 @@ export default function SelectTarget({
onClickNextStep,
}: SelectTargetProps) {
return (
<div className="flex grow flex-col justify-between">
<div className="flex grow flex-col justify-between gap-10">
<section>
<h2 className="headline-small mb-4 text-white">
경찰관, 소방관 분들에게
Expand Down
2 changes: 1 addition & 1 deletion src/containers/Write/Funnel/WriteMessage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export default function WriteMessage() {
}

return (
<div className="flex grow flex-col justify-between">
<div className="flex grow flex-col justify-between gap-10">
<section>
<h2 className="headline-small mb-2 text-white">
감사의 메시지를
Expand Down
2 changes: 1 addition & 1 deletion src/containers/Write/Funnel/WriteTargetInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export default function WriteTargetInfo({ onSearch, onClickNextStep }: WriteTarg
}

return (
<div className="flex grow flex-col justify-between">
<div className="flex grow flex-col justify-between gap-10">
<section className="">
<div className="mb-8 flex flex-col gap-4">
<h2 className="headline-small text-white">
Expand Down
13 changes: 9 additions & 4 deletions src/layouts/NonRegisteredRoute.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
import useAuthStore from '@/stores/authStore'
import { Navigate, Outlet } from 'react-router-dom'
import { useEffect } from 'react'
import { Outlet, useNavigate } from 'react-router-dom'

export default function NonRegisteredRoute() {
const isLoggedIn = useAuthStore((state) => state.isLoggedIn)
const user = useAuthStore((state) => state.user)
const navigate = useNavigate()

if (isLoggedIn && user?.nickname) {
return <Navigate to="/" replace />
}
useEffect(() => {
console.log('teststest')
if (isLoggedIn && user?.nickname) {
navigate('/', { replace: true })
}
}, [])

return <Outlet />
}
2 changes: 1 addition & 1 deletion src/pages/EditSetting.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export default function EditSetting() {
<>
<Header title="닉네임 변경" />
<main className="content-padding flex grow flex-col">
<form className="flex w-full grow flex-col justify-between" onSubmit={handleSubmit}>
<form className="flex w-full grow flex-col justify-between gap-10" onSubmit={handleSubmit}>
<fieldset className="flex flex-col gap-1">
<label className="title-small text-white">닉네임</label>
<TextField
Expand Down
4 changes: 2 additions & 2 deletions src/pages/Withdraw.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export default function Withdraw() {
return (
<>
<Header title="탈퇴하기" />
<main className="content-padding flex grow flex-col justify-between">
<main className="content-padding flex grow flex-col justify-between gap-10">
<section>
<div className="text-white">
<p className="label-large mb-1">탈퇴 후, 계정 복구는 불가능해요 🥺</p>
Expand All @@ -66,7 +66,7 @@ export default function Withdraw() {
<Dropdown
options={WITHDRAW_OPTIONS}
selected={selected}
className="h-sm:my-2 my-5"
className="my-5 h-sm:my-2"
handleSelected={handleSelected}
/>
<TextareaField
Expand Down
15 changes: 14 additions & 1 deletion src/pages/Write.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,26 @@ import SelectIsSpecific from '@/containers/Write/Funnel/SelectIsSpecific'
import SelectHeroType from '@/containers/Write/Funnel/SelectHeroType'
import CollectionIntro from '@/containers/Write/BottomSheet/CollectionIntro'
import WriteFinish from '@/containers/Write/BottomSheet/WriteFinish'
import { useNavigate } from 'react-router-dom'
import useWriteBottomStore from '@/stores/writeBottomStore'

export default function Write() {
const { Funnel, Step, setPrevStep, setNextStep, currentStep } = useFunnel(WRITE_STEPS[0])
const targetType = useWriteMessageStore((state) => state.targetType)
const clearTargetType = useWriteMessageStore((state) => state.clearTargetType)
const preventShow = useWriteBottomStore((state) => state.preventShow)
const navigate = useNavigate()
useBodyBackgroundColor('neutral-90')

const handlePrevStep = () => {
preventShow()
if (currentStep === WRITE_STEPS[0]) {
navigate(-1)
} else {
setPrevStep()
}
}

useEffect(() => {
clearTargetType()
}, [])
Expand All @@ -31,7 +44,7 @@ export default function Write() {
title={HEADER_TITLE[currentStep]}
className="bg-neutral-90"
icons={currentStep === WRITE_STEPS[4] && <WriteMessageHeader setNextStep={setNextStep} />}
onClick={setPrevStep}
onClick={handlePrevStep}
/>
<CollectionIntro />
<WriteFinish />
Expand Down
3 changes: 3 additions & 0 deletions src/stores/writeBottomStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ interface WriteBottomAction {
toggleCollectionIntro: () => void
toggleWriteFinish: () => void
toggleShareVisible: () => void
preventShow: () => void
}

const useWriteBottomStore = create<WriteBottomState & WriteBottomAction>((set) => ({
Expand All @@ -20,6 +21,8 @@ const useWriteBottomStore = create<WriteBottomState & WriteBottomAction>((set) =
set((state) => ({ showCollectionIntro: !state.showCollectionIntro })),
toggleWriteFinish: () => set((state) => ({ showWriteFinish: !state.showWriteFinish })),
toggleShareVisible: () => set((state) => ({ isShareVisible: !state.isShareVisible })),
preventShow: () =>
set({ showCollectionIntro: false, showWriteFinish: false, isShareVisible: false }),
}))

export default useWriteBottomStore
1 change: 0 additions & 1 deletion src/styles/tailwind.css
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
@import url('https://cdn.jsdelivr.net/gh/fonts-archive/Pretendard/Pretendard.css');
@tailwind base;
@tailwind components;
@tailwind utilities;