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

강제 업데이트 네비게이션 생성 #61

Merged
merged 20 commits into from
Nov 10, 2024

Conversation

Gwak-Seungju
Copy link
Contributor

@Gwak-Seungju Gwak-Seungju commented Nov 6, 2024

ISSUE #60

강제 업데이트를 어드민 페이지에서 가능하게 하고자 페이지를 구현했습니다.

  • CustomTable propsonClick이 없을 시 상세 페이지로 이동하는 것 같은데 구현하고자하는 테이블에서는 상세 페이지 이동이 불필요해서 상세 페이지 이동을 막기 위해 () => {} 을 주었는데, 맞는 방법인지 궁금합니다..!

  • 추가로 목록 관리 페이지에서 date가 오름차순으로 정렬되어 있는데, api 수정 요청을 통해 내림차순으로 변경하도록 할 예정입니다!

Screenshot

  • SideNav 내 네베게이션 이미지
    image

  • 업데이트 관리 페이지(드롭다운은 클릭한 상태)
    image

  • 목록 관리 페이지(드롭다운은 클릭한 상태)
    image

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Code review by ChatGPT

src/App.tsx Show resolved Hide resolved
src/components/common/SideNav/index.tsx Show resolved Hide resolved
src/constant/index.ts Show resolved Hide resolved
src/model/forceUpdate.model.ts Show resolved Hide resolved
src/model/updateList.model.ts Show resolved Hide resolved
src/pages/Update/components/AppTypeDropdown.style.tsx Outdated Show resolved Hide resolved
src/pages/Update/components/AppTypeDropdown.tsx Outdated Show resolved Hide resolved
src/store/api/forceUpdate/index.ts Outdated Show resolved Hide resolved
src/store/api/updateList/index.ts Show resolved Hide resolved
src/store/index.ts Show resolved Hide resolved
@ChoiWonBeen
Copy link
Member

레쓰고

@ChoiWonBeen
Copy link
Member

구현하고자하는 테이블에서는 상세 페이지 이동이 불필요해서 상세 페이지 이동을 막기 위해 () => {} 을 주었는데, 맞는 방법인지 궁금합니다..!

수정 & 삭제가 불필요한게 맞는거져?

Comment on lines 69 to 95
{version && (
<S.UpdateInfo>
<S.Title>현재 업데이트 상황</S.Title>
<S.Content>
<S.Theme>version :</S.Theme>
{version.version}
</S.Content>
<S.Content>
<S.Theme>title :</S.Theme>
{version.title}
</S.Content>
<S.Content>
<S.Theme>content :</S.Theme>
{version.content}
</S.Content>
</S.UpdateInfo>
)}
<S.UpdateInfo>
<S.Title>수정 문구는 아래에 입력해서 수정해주세요.</S.Title>
<S.Content>
<S.Theme>version :</S.Theme>
<S.Input
placeholder="ex) 3.4.0"
value={appVersion}
onChange={(e) => setAppVersion(e.target.value)}
/>
</S.Content>
Copy link
Member

Choose a reason for hiding this comment

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

이 페이지도 하나의 Form이고, 각각의 요소가 상태이므로 다른 페이지처럼 바꿔서 쓰는게 디자인적 통일 & 시간적 이득을 볼 수 있었을 것 같아요.

<CustomForm.Input /> 으로 구조화하는건 어려웠을까요?

Copy link
Contributor Author

@Gwak-Seungju Gwak-Seungju Nov 8, 2024

Choose a reason for hiding this comment

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

말씀해주신 부분을 반영해서 전체적으로 CustomForm을 사용하여 구조를 변경했습니다!
다만, 주요 변경 사항이 있습니다!

  1. content의 길이가 한 줄 이상으로 길어지는 경우 CustomForm.Input을 사용하면 antd의 Input 특성 때문에? 한 줄로만 보여줘서 모든 text를 보여주지 못 하더라고요. 따라서 CustomForm.TextArea를 사용하고자 했습니다.
    기존 CustomFormCustomTextArea에서는 글자 수를 보여주는 showCount와 행 수에 따른 size를 자동으로 조절해주는 autoSize속성이 없어 추가했습니다. style 속성도 변경하고 싶어 아래와 같이 추가했습니다..!
// src\components\common\CustomForm\index.tsx
interface CustomTextAreaProps {
  maxLength?: number;
  showCount?: boolean;
  **style?: React.CSSProperties;**
  autoSize?: AutoSizeProps;
}

function CusctomTextArea({
  label, name, maxLength, disabled, rules, showCount, autoSize, style,
}: CustomFormItemProps & CustomTextAreaProps) {
  return (
    <S.FormItem label={label} name={name} rules={rules}>
      <Input.TextArea
        showCount={showCount}
        maxLength={maxLength}
        disabled={disabled}
        autoSize={autoSize}
        **style={style}**
      />
    </S.FormItem>
  );
}
  1. UI를 변경하고 싶어서 아래처럼 style 변수를 선언하고 컴포넌트에 추가하는 식으로 했는데 공통 컴포넌트에 style을 줄 수 있는 방법이 이것밖에 생각나지 않아 이런 방식을 사용했습니다. 더 좋은 방법이 있는지 궁금합니다..!
const titleStyle = {
  fontSize: '20px',
  fontWeight: '700',
};

<Divider
  orientation="left"
  orientationMargin="0"
  style={titleStyle}
>

Copy link
Member

Choose a reason for hiding this comment

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

  1. 좋네요!
  2. 선택자 접근으로 하위 요소에 대한 css로 처리도 가능할거같긴한데, 위 방법도 괜찮아보여욤

@Gwak-Seungju
Copy link
Contributor Author

구현하고자하는 테이블에서는 상세 페이지 이동이 불필요해서 상세 페이지 이동을 막기 위해 () => {} 을 주었는데, 맞는 방법인지 궁금합니다..!

수정 & 삭제가 불필요한게 맞는거져?

"그냥 목록만 보여주면서 업데이트에 대한 히스토리만 파악하면 될 것 같아서 디테일 화면은 필요없을 것 같다"는 요구사항?이 있었습니다. propsonClick을 주지 않으면 navigate로 인해 페이지 이동이 되는데, 이것을 막고자 내용없는 함수를 전달하게 되었습니다.

// src\components\common\CustomTable\index.tsx
onRow={(record) => ({
    onClick: () => {
      if (onClick) {
        onClick(record.id);
      } else navigate(`${record.id}`);
    },
})}

@ChoiWonBeen
Copy link
Member

좋네요~ 이해했어요

Copy link
Member

@ChoiWonBeen ChoiWonBeen left a comment

Choose a reason for hiding this comment

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

훨씬 깔끔하죰? ㅎㅎㅎ

@Gwak-Seungju Gwak-Seungju merged commit 91b74cf into develop Nov 10, 2024
1 check passed
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.

2 participants