Skip to content

Commit

Permalink
chore(ui): Day, Week 컴포넌트 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
ghdtjgus76 committed Jul 16, 2023
1 parent fab1412 commit e14827a
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 39 deletions.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
import styled from "@emotion/styled";
import { theme } from "@styles/theme";

import dayLeftDownDayAfterImgUrl from "../../../assets/day_leftdown_dayafter.svg";
import dayLeftDownDayBeforeImgUrl from "../../../assets/day_leftdown_daybefore.svg";
import dayLeftDownSelectedImgUrl from "../../../assets/day_leftdown_selected.svg";
import dayRightUpDayBeforeImgUrl from "../../../assets/day_rightup_daybefore.svg";
import dayRightUpSelectedImgUrl from "../../../assets/day_rightup_selected.svg";
import dayRightUpDayAfterImgUrl from "../../../assets/day_rightup_dayafter.svg";
import { DaysKeyType } from "../WeekGroup/Week";

export type DaysKeyType = 'M' | 'T' | 'W' | 'T' | 'F' | 'S' | 'S';
import dayLeftDownDayAfterImgUrl from "../../../../assets/day_leftdown_dayafter.svg";
import dayLeftDownDayBeforeImgUrl from "../../../../assets/day_leftdown_daybefore.svg";
import dayLeftDownSelectedImgUrl from "../../../../assets/day_leftdown_selected.svg";
import dayRightUpDayBeforeImgUrl from "../../../../assets/day_rightup_daybefore.svg";
import dayRightUpSelectedImgUrl from "../../../../assets/day_rightup_selected.svg";
import dayRightUpDayAfterImgUrl from "../../../../assets/day_rightup_dayafter.svg";

interface DayPropsType {
children: DaysKeyType;
variant: 'dayBefore' | 'selected' | 'dayAfter';
leftDown: boolean;
onClick: () => void;
}

const TEXT_COLOR_TYPE = {
Expand All @@ -22,9 +23,15 @@ const TEXT_COLOR_TYPE = {
'dayAfter': `${theme.palette.gray_500}`,
}

export const Day = ({ children, variant, leftDown }: DayPropsType) => {
export const Day = ({ children, variant, leftDown, onClick }: DayPropsType) => {
const handleClick = () => {
if (onClick) {
onClick();
}
}

return (
<StyledDay variant={variant}>
<StyledDay variant={variant} onClick={handleClick}>
<img
src={
variant === 'dayBefore'
Expand Down Expand Up @@ -56,6 +63,7 @@ const StyledDay = styled.div<{
position: relative;
width: 32px;
height: 32px;
cursor: pointer;
`;

const StyledDayChild = styled.div`
Expand Down
File renamed without changes.
41 changes: 41 additions & 0 deletions src/components/atoms/DayWeek/WeekGroup/Week/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import styled from "@emotion/styled";

import { useState } from 'react';

import { Day } from "../../Day";
import { TodayKeyType } from "..";

export type DaysKeyType = 'M' | 'T' | 'W' | 'T' | 'F' | 'S' | 'S';

interface WeekPropsType {
today: TodayKeyType;
}

export const Week = ({ today }: WeekPropsType ) => {
const week: DaysKeyType[] = ['M', 'T', 'W', 'T', 'F', 'S', 'S'];
const [selectedDay, setSelectedDay] = useState(today);

const handleDayClick = (index: TodayKeyType) => {
setSelectedDay(index);
};

return (
<Wrapper>
{week.map((day, idx) =>
<Day
key={idx}
children={day}
variant={selectedDay === idx ? 'selected' : selectedDay > idx ? 'dayBefore' : 'dayAfter'}
leftDown={idx % 2 === 1}
onClick={() => handleDayClick(idx as TodayKeyType)}
/>
)}
</Wrapper>
);
};

const Wrapper = styled.div`
display: flex;
width: fit-content;
gap: 12px;
`;
13 changes: 13 additions & 0 deletions src/components/atoms/DayWeek/WeekGroup/WeekGroup.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Meta, StoryObj } from "@storybook/react";
import { WeekGroup } from ".";

const meta = {
title: 'Atom/WeekGroup',
component: WeekGroup,
tags: ['autodocs'],
} satisfies Meta<typeof WeekGroup>;

export default meta;
type Story = StoryObj<typeof meta>;

export const weekGroup: Story = {}
27 changes: 27 additions & 0 deletions src/components/atoms/DayWeek/WeekGroup/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import styled from "@emotion/styled";
import { Week } from "./Week";

export type TodayKeyType = 0 | 1 | 2 | 3 | 4 | 5 | 6;

const todayList: TodayKeyType[] = [0, 1, 2, 3, 4, 5, 6];

export const WeekGroup = () => {
return (
<Wrapper>
<WeekWrapper>
{todayList.map((today) => (
<Week key={today} today={today} />
))}
</WeekWrapper>
</Wrapper>
);
};

const Wrapper = styled.div`
display: inline-grid;
`;

const WeekWrapper = styled.div`
display: grid;
gap: 20px;
`;
30 changes: 0 additions & 30 deletions src/components/atoms/Week/index.tsx

This file was deleted.

0 comments on commit e14827a

Please sign in to comment.