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(apply): implement the function to preview the application form before final submission #649

Merged
merged 36 commits into from
Oct 13, 2022

Conversation

greenblues1190
Copy link
Contributor

@greenblues1190 greenblues1190 commented Oct 2, 2022

Resolves #614

해결하려는 문제가 무엇인가요?

  • 최종 제출 전에 지원서를 미리 볼 수 있는 기능을 기획하고 구현한다.
    • dimmer를 클릭하거나 ESC 키를 누르면 모달창을 닫는다.
  • Storybook에서 MemoryRouter 버그를 수정한다.

어떻게 해결했나요?

최종 제출 전에 지원서를 미리 볼 수 있는 기능을 기획하고 구현한다.

ModalWindow

  • ModalPortal을 통해 div#modal-root에 리액트 포탈 생성
  • ModalProviderModalPortalopenModal, closeModal 함수 전달
  • ModalWindow에서 useModalContext로 함수를 전달받아 비어있는 모달창 구현
  • ModalWindow를 이용하여 ApplicationPreviewModalWindow와 같은 다양한 모달창을 구현할 수 있도록 했습니다.

ApplicationPreviewModalWindow 동작 데모

demonstration

mobile demonstration

ESC로 모달창 닫기

대화 상자에는 키보드 포커스를 관리하는 방법에 대한 특정 요구 사항이 있습니다.

  • 대화 상자에는 항상 포커스 가능한 컨트롤이 하나 이상 있어야 합니다. 많은 대화 상자에는 "닫기", "확인" 또는 "취소"와 같은 버튼이 있습니다. 필요한 컨트롤 외에도 대화 상자에는 전체 양식 또는 탭과 같은 기타 컨테이너 위젯과 같은 포커스 가능한 요소가 포함될 수 있습니다.
  • 대화 상자가 화면에 나타나면 키보드 포커스(대화 상자의 목적에 따라 제어가 다름)는 대화 상자 내부의 기본 포커스 가능 컨트롤로 이동해야 합니다. 기본 메시지만 제공하는 대화 상자의 경우 "확인" 버튼이 될 수 있습니다. 양식이 포함된 대화 상자의 경우 양식의 첫 번째 필드가 될 수 있습니다.

MDN에 따르면 dialog 요소는 항상 autofocus 속성을 가지는 컨트롤 요소(input, button)이 있어야 한다고 합니다. 모달창의 베이스가 되는 컴포넌트인 ModalWindow에는 재사용성을 위해 아무런 버튼도 배치하지 않았기 때문에 실제로 사용되는 모달을 구현할 경우에는 항상 모달 내부에 autofocus 속성을 가지는 요소를 배치해야 합니다. (이는 ModalPortal에서 ESC 키다운 이벤트를 받기 위해서도 필수적입니다.)

ApplicationPreviewModalWindow에 포함된 Checkbox의 예

<CheckBox
  name="confirm-submit"
  label="제출한 뒤에는 수정할 수 없음을 확인했습니다."
  checked={isChecked}
  onChange={(e: ChangeEvent) => {
    setIsChecked((e.target as HTMLInputElement).checked);
  }}
  autoFocus
  required
/>

Storybook에서 MemoryRouter 버그를 수정한다.

  • preview.js의 전역 데코레이터에서 MemoryRouter 제거
  • 각 컴포넌트 스토리 데코레이터에서 Route 제거

어떤 부분에 집중하여 리뷰해야 할까요?

  • 모달의 기능이 적절한지
  • 글자 수 세기를 미리보기에서 보여줘야 하는지
  • 컴포넌트 타입 정의가 컨벤션에 맞는지
  • 구조가 너무 복잡하여 가독성이 낮은지
  • css 클래스 네이밍이 적절한지
  • storybook-addon-react-router-v6를 추가하는 대신 MemoryRouter와 Route를 조금 수정하였습니다.

RCA 룰

r: 꼭 반영해 주세요. 적극적으로 고려해 주세요. (Request changes)
c: 웬만하면 반영해 주세요. (Comment)
a: 반영해도 좋고 넘어가도 좋습니다. 그냥 사소한 의견입니다. (Approve)

Copy link
Contributor

@lokba lokba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요 우디~
코드 보면서 많이 공들였다는 느낌 받았습니다.
인상 깊은 점은 ModalProvider입니다. Modal(빵 틀), openModal(밀가루), closeModal(우유)을 Provider 값으로 내려줘서 언제 어디서든 빵을 먹을 수 있게 해주는 느낌이었습니다.

코멘트 확인해주시면 될 것 같습니다.

</ScrollToTop>
</main>
<Footer />
<div id="modal-root" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c : portal을 이용해서 렌더링하는 경우, 가장 바깥쪽에 있는 계층에 위치하지 않나요? Docs 뿐만 아니라, react portal을 설명하는 대부분의 예제들에서 가장 바깥쪽 계층에 <div id="modal-root"></div>을 선언하네요.

공식문서 예제
Vallista 개인 블로그 - onInitialClientRender함수

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c: 저도 portal 영역을 여기 둔 이유가 있는지 궁금해요.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lokba @soyi47 최상위로 이동했습니다 911a243

overflow-y: auto;
font-size: 0.875rem;
line-height: 1.4rem;
text-align: justify;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a : justify(양쪽 정렬) 새롭게 알아가고, 디테일에 감탄합니다.

margin-bottom: 0.5rem;
}

.application-item-description {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a : description과 answer-length가 딱 붙어 있어서, descriptionanswer의 구분이 명확하지 않는 것 같네요. 약간 띄우는 거는 어떨까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

description에 margin bottom 0.5rem 추가했습니다. 1b76f94

}

.application-item-answer {
white-space: pre-line;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a : 줄바꿈 디테일 좋네요👍

display: flex;
flex-direction: column;
gap: 2.5rem;
overflow-y: auto;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c : 스크롤 바와 컨텐츠가 겹치는데 살짝 띄우는 건 어떨까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

스크롤바 숨김처리 했습니다. 93272f5

import classNames from "classnames";
import styles from "./ModalWindow.module.css";

interface ModalWindowProps
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r : interface 🚨

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다 😓 4f623bb

className={classNames(styles.box, className)}
{...props}
>
<h2 id="dialogTitle" className={styles.title}>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r : 저는 title이 옵셔널 타입이어야 된다고 생각하고, title 유무에 따라서 title 영역이 렌더링되어야 한다고 생각합니다. 그 이유는 모달 컨텐츠 UI에 title이 없는 경우도 존재할 것 같습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

모달창에서 title 제거했습니다 31b121d

import { ModalContext } from "../hooks/useModalContext";

export type ModalContextValue = {
Modal: (props: { children: NonNullable<React.ReactNode> }) => JSX.Element | null;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r : 해당 children 타입과 ModalPortal의 children prop의 타입이 동일해야 되지 않나요?

해당 children 타입
: NonNullable<React.ReactNode>

ModalPortal children 타입
: React.ReactNode

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

..!! d567def

closeModal: () => void;
};

const ModalProvider = ({ children }: { children: React.ReactNode }) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r : ModalProvider도 컴포넌트이기에 type을 분리해주세요!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

분리했습니다. 0cf7ff6

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NonNullable 😎

};

return (
<ModalContext.Provider value={{ Modal, openModal, closeModal }}>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a : 궁금한거 있는데요. Modal을 두 개 띄워야하는 상황이 온다면, 어떤 식으로 하실 생각이신지 궁금합니다. 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

모달은 대화형 UI이기 때문에 한번에 하나씩만 등장해야 유저가 혼란스럽지 않고 태스크를 간단하게 유지할 수 있다고 생각합니다. 애플의 휴먼 인터페이스 가이드에서도 best practice로 모달 뷰 위에 다른 모달 뷰를 보여주는 것을 지양하도록 되어있습니다.

Avoid presenting a modal view on top of another modal view.

Copy link
Contributor

@soyi47 soyi47 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요, 우디!
깔끔하게 잘 작성해주셔서 재미있게 잘 읽었습니다. 고생하셨어요! 👍
@lokba가 먼저 꼼꼼한 리뷰 남겨주셔서, 저는 소소하게 남겼습니다.

답변 주시고 록바 리뷰 반영되면 approve 할게요.

Comment on lines 28 to 36
Default.args = {
recruitmentItems: [
{
recruitmentId: 1,
title: "프로그래밍 학습 과정과 현재 자신이 생각하는 역량은",
position: 1,
maximumLength: 1000,
description:
"우아한테크코스는 프로그래밍에 대한 기본 지식과 경험을 가진 교육생을 선발하기 때문에 프로그래밍 경험이 있는 상태에서 지원하게 됩니다. 프로그래밍 학습을 어떤 계기로 시작했으며, 어떻게 학습해왔는지, 이를 통해 현재 어느 정도의 역량을 보유한 상태인지를 구체적으로 작성해 주세요.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a: 여기 데이터들 mock/dummy에 있어도 좋을 것 같아요.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

서버 데이터에 해당하는 recruitmentItems를 dummy.js로 이동했습니다. 2fd5ff2
answers와 다른 사용자 입력 데이터는 예시의 느낌으로 넣었기에 dummy.js로 이동시키지 않았습니다.

</ScrollToTop>
</main>
<Footer />
<div id="modal-root" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c: 저도 portal 영역을 여기 둔 이유가 있는지 궁금해요.

Copy link
Contributor

@woowapark woowapark left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

록바 & 소피아가 잘 리뷰해주셔서 🙂 코멘트 없는 부분에 대해서만 추가로 의견 남겨두었습니다.

추가 request changes 한가지는 디자인에 대한 부분이 있는데요.

  • 모달의 '취소' 버튼이 Figma에서는 흰색 배경+테두리만 있는 버튼인데, 구현된 내용은 회색 배경이더라구요. 다른 영역들에서 이미 secondary 역할의 버튼을 테두리만 있는 스타일로 가져가고 있어, Figma와 스타일을 맞추는 게 어떨까요?
  • 버튼의 너비도 Figma와 다르게 모달의 너비를 자동으로 채우게 구현해주셨는데, 요건 의도하신 부분이 맞을까요? 맞다면 Figma도 같이 업데이트 부탁드릴게요! (데일리에서 이야기해주셨던 것도 같은데 헷갈려서요)
  • '제출한 뒤에는 수정할 수 없음을 확인했습니다' 체크박스는 가운데 정렬하는 것으로 논의했던 것 같은데 아닐까요?
  • 모달에서의 '제출' -> '최종 제출'로 텍스트 변경하는 게 어떨까요? Figma에도 그렇게 되어 있기도 하고, 의미상으로도 제출 버튼을 클릭한 뒤 > 모달에서 또한번 제출하는 것이니 '최종으로' 제출한다는 의미가 될 것 같아서요

[Figma]
스크린샷 2022-10-08 오후 4 07 59

[구현]
스크린샷 2022-10-08 오후 3 56 47

@@ -5,6 +5,8 @@
--pc-main-width: 800px;
--pc-main-width-narrow: 512px;

--modal-window-z-index: 1020;
--modal-portal-z-index: 1010;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c: 아래의 --header-z-index, --tooltip-dimmed-z-index, --tooltip-z-index는 1씩 찔끔찔끔 올라오고 있었는데요! ㅋㅋㅋ 크게 문제될 건 아니지만 특별히 다른 이유가 없다면 이 파일 내에서 z-index 증가시키는 단위도 동일하게 가져가면 어떨까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다. 78dcd52

}

.application-item-answer-length {
color: #999999;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r: 그레이스케일 색상으로 보이는데, color.css 의 색상 중 하나로 선택해서 활용하는 게 어떨까요? 위의 #666666도 마찬가지입니다!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다 6d3dfb8

onClickConfirmButton: React.MouseEventHandler<HTMLButtonElement>;
};

const ApplicationPreviewModalWindow = ({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a: -Window까지 붙은 이유가 궁금합니당! ModalPortal이 있어서 쌍을 맞추기 위함일까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ModalProvider에서 Modal이라는 컴포넌트를 내려주고있어 UI 적인 요소입을 나타내기 위해 window라는 이름을 붙였습니다.

name="confirm-submit"
label="제출한 뒤에는 수정할 수 없음을 확인했습니다."
checked={isChecked}
onChange={(e: ChangeEvent) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c: 아래의 다른 handler들은 이미 따로 선언해두고 사용하고 있는데 요건 여기에서 직접 쓰신 이유가 있을까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

놓친 부분이네요..! 반영했습니다 e9019cc

</Button>
<Button
type="submit"
variant="contained"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r: 여기에서 쓰이는 버튼들도 Button 내의 VARIANT 상수를 사용하도록 수정이 필요해보입니다 🙂

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다. 9fd2363

justify-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.4);
animation: dissolve 0.3s forwards;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a: 애니메이션 깨알같네요ㅋㅋ

<div
className={styles.box}
onKeyDown={(e) => {
if (e.key === "Escape") closeModal();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r: 현재 코드 베이스에서는 대부분 한 줄이더라도 괄호를 쓰고 줄바꿈을 하고 있는 것으로 알고 있는데요! 요것도 스타일 맞추는 게 어떨까요~?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 스타일 수정했습니다 0f3fee4

@@ -5,6 +5,8 @@
--pc-main-width: 800px;
--pc-main-width-narrow: 512px;

--modal-window-z-index: 1020;
--modal-portal-z-index: 1010;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c: 아래는 쫌쫌따리로 1씩 올라오고 있었는데 추가해주신 부분에서는 갑자기 10씩 올라가게 되는데요! ㅋㅋ 같은 파일이니 이 안에서는 z-index 증가시키는 단위를 맞추면 어떨까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다. 78dcd52


return null;
};
export default ModalPortal;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c:

  • ModalPortal, ModalWindow는 충분히 @common 하위에 있어도 될 것 같은데 어떠신가요?
components/
- @common/
  - Modal
    - ModalPortal
    - ModalWindow 
- ApplicationPreviewModal/
  -   
  • 이건 추가로 의견이 궁금한 부분인데, 만약 @common 하위로 옮겨서 공용 컴포넌트로 사용한다면, Provider도 해당 컴포넌트 하위에 두는 건 어떻게 생각하시나요? 디렉토리 구조상 'provider/' 가 따로 있다보니 컨벤션에 어긋나 보일 수는 있을 것 같은데... 역할로 보자면 최상위의 provider/ 하위에 있는 것들은 실제로 앱 전체에 걸쳐서 필요할 수 있는 값인 반면 ModalContext는 Modal이라는 컴포넌트를 위해 필요한 것이면서 & Modal 컴포넌트를 쓰기 위해서는 반드시 같이 사용해야 하는 것이니 Modal쪽에서 제공해주도록 하는 것도 괜찮을 것 같아서요 🙂

Copy link
Contributor Author

@greenblues1190 greenblues1190 Oct 10, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

모달 구조 수정했습니다. f778095

  • ModalPortal과 ModalWindow를 @common으로 이동했습니다.
  • ModalProvider를 hook 상단으로 이동시켰습니다.
  • ModalWindow와 ModalPortal을 ModalProvider 내부에서 합쳐 Modal이라는 컴포넌트로 내려주도록 했습니다.
  • ApplicationPreviewModal을 component 바로 하위로 이동시켰습니다.

greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
add margin bottom 0.5rem to description

Refs: #649 (comment)
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
- add dim color variable
- change order of keyframes
- remove border bottom of modal window in mobile media query
- set max-height of modal window

Refs: #649 (comment) #649 (comment) #649 (comment) #649 (comment)
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
- create modal root at initial rendering
- set ref initial value as null

Refs: #649 (comment) #649 (comment)
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
- remove scroll bar
- change padding, size in mobile media query

Refs: #649 (comment)
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
- move ModalPortal and ModalWindow to @common
- move provider to hook
- combine ModalWindow and ModalPortal in ModalProvider

Refs: #649 (comment)
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
@greenblues1190
Copy link
Contributor Author

greenblues1190 commented Oct 10, 2022

추가 request changes 한가지는 디자인에 대한 부분이 있는데요.

  • 모달의 '취소' 버튼이 Figma에서는 흰색 배경+테두리만 있는 버튼인데, 구현된 내용은 회색 배경이더라구요. 다른 영역들에서 이미 secondary 역할의 버튼을 테두리만 있는 스타일로 가져가고 있어, Figma와 스타일을 맞추는 게 어떨까요?
  • 버튼의 너비도 Figma와 다르게 모달의 너비를 자동으로 채우게 구현해주셨는데, 요건 의도하신 부분이 맞을까요? 맞다면 Figma도 같이 업데이트 부탁드릴게요! (데일리에서 이야기해주셨던 것도 같은데 헷갈려서요)
  • '제출한 뒤에는 수정할 수 없음을 확인했습니다' 체크박스는 가운데 정렬하는 것으로 논의했던 것 같은데 아닐까요?
  • 모달에서의 '제출' -> '최종 제출'로 텍스트 변경하는 게 어떨까요? Figma에도 그렇게 되어 있기도 하고, 의미상으로도 제출 버튼을 클릭한 뒤 > 모달에서 또한번 제출하는 것이니 '최종으로' 제출한다는 의미가 될 것 같아서요
  • 피그마와 동일한 형태로 버튼 사이즈 변경했습니다. rem 설정이다보니 살짝 차이가 있는데 피그마에 반영하도록 하겠습니다.
  • 모달 취소 버튼을 피그마와 동일한 형태로 변경했습니다.
  • 제출 동의 문구는 좌측 정렬이 안정되보인다는 의견이 나와 좌측 정렬했습니다.
  • 최종 제출로 버튼 문구 변경했습니다.

스크린샷 2022-10-10 오후 8 24 39

fcb80a0

greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 added a commit that referenced this pull request Oct 10, 2022
greenblues1190 and others added 23 commits October 11, 2022 10:09
- add dim color variable
- change order of keyframes
- remove border bottom of modal window in mobile media query
- set max-height of modal window

Refs: #649 (comment) #649 (comment) #649 (comment) #649 (comment)
- create modal root at initial rendering
- set ref initial value as null

Refs: #649 (comment) #649 (comment)
- remove scroll bar
- change padding, size in mobile media query

Refs: #649 (comment)
- move ModalPortal and ModalWindow to @common
- move provider to hook
- combine ModalWindow and ModalPortal in ModalProvider

Refs: #649 (comment)
- nest block
- declare handler function

Refs: #649 (comment)
@greenblues1190 greenblues1190 force-pushed the feature/application-form-preview branch from a547e86 to fc98c15 Compare October 11, 2022 02:42
@greenblues1190
Copy link
Contributor Author

greenblues1190 commented Oct 11, 2022

지원서 미리보기에서 답변 paragraph에 긴 문자가 있는 경우를 위해 word-break: break-all 적용

5ad7d64

영어

스크린샷 2022-10-11 오후 12 01 36

한글

스크린샷 2022-10-11 오후 12 01 50

text-align: justify 무시됨

break-all을 적용하면 justify 정렬이 무시된다고 합니다... 일단 content class의 text-align: justify 속성은 그대로 두었습니다.

스크린샷 2022-10-11 오후 12 02 03

@woowahan-pjs woowahan-pjs changed the title feat: show application preview modal prior to submit feat(apply): implement the function to preview the application form before final submission Oct 13, 2022
Copy link
Contributor

@woowahan-pjs woowahan-pjs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다. 👍

@woowahan-pjs woowahan-pjs merged commit e37d882 into develop Oct 13, 2022
@woowahan-pjs woowahan-pjs deleted the feature/application-form-preview branch October 13, 2022 04:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants