Skip to content

Commit

Permalink
feat: 포스트 로직 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
urimeee committed Feb 19, 2025
1 parent 461245a commit 6bafd89
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 11 deletions.
11 changes: 7 additions & 4 deletions src/components/ScheduleCard/ScheduleCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@ import { useEffect, useState } from 'react';
import ScheduleDetail from '../ScheduleDetail/ScheduleDetail'; // ScheduleDetail 컴포넌트 경로에 맞게 수정
import BottomSheet from '../BottomSheet/BottomSheet'; // BottomSheet 컴포넌트 불러오기
import * as S from './ScheduleCard.style';
import useSchedules from '../../hooks/useSchedule';
import { Schedule } from '../../types/schedule';

const ScheduleCard = () => {
interface ScheduleCardProps {
deleteSchedule: (scheduleId: number) => Promise<void>;
scheduleList: Schedule[];
}

const ScheduleCard = ({ deleteSchedule, scheduleList }: ScheduleCardProps) => {
const [isSheetOpen, setSheetOpen] = useState<boolean>(false);
const [clickedSchedule, setClickedSchedule] = useState<number | null>(null);

const { deleteSchedule, scheduleList, getSchedules } = useSchedules();

const handleSheet = () => {
setSheetOpen(!isSheetOpen);
setClickedSchedule(null);
Expand Down
16 changes: 12 additions & 4 deletions src/components/TextField/TextField.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,19 @@ import React from 'react';

import * as S from './TextField.style';

import useSchedules from '../../hooks/useSchedule';

const TextField: React.FC = () => {
const { postSchedule, setSchedule, schedule } = useSchedules();
interface TextFieldProps {
postSchedule: (
e: React.FormEvent<HTMLFormElement> | React.MouseEvent<HTMLButtonElement>,
) => void;
schedule: string;
setSchedule: (e: string) => void;
}

const TextField: React.FC<TextFieldProps> = ({
postSchedule,
setSchedule,
schedule,
}: TextFieldProps) => {
return (
<S.Form onSubmit={postSchedule}>
<S.Input
Expand Down
3 changes: 2 additions & 1 deletion src/hooks/useSchedule.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import React, { createContext, useContext, useEffect, useState } from 'react';
import { api } from '../utils/axios';
import { Schedule } from '../types/schedule';

// const ScheduleContext = createContext(null);

const useSchedules = () => {
const [scheduleList, setScheduleList] = useState([]);
const [scheduleList, setScheduleList] = useState<Schedule[]>([]);
const [schedule, setSchedule] = useState<string>('');

useEffect(() => {
Expand Down
14 changes: 12 additions & 2 deletions src/pages/SchedulePage/SchedulePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ import TextField from '../../components/TextField/TextField';
import ScheduleCard from '../../components/ScheduleCard/ScheduleCard';

import * as S from './SchedulePage.style';
import useSchedules from '../../hooks/useSchedule';

const SchedulePage = () => {
const { postSchedule, setSchedule, deleteSchedule, scheduleList, schedule } =
useSchedules();
useEffect(() => {
if (
window.webkit &&
Expand Down Expand Up @@ -38,8 +41,15 @@ const SchedulePage = () => {
return (
<S.Container>
<S.SchedulePageContent>
<TextField />
<ScheduleCard />
<TextField
postSchedule={postSchedule}
schedule={schedule}
setSchedule={setSchedule}
/>
<ScheduleCard
deleteSchedule={deleteSchedule}
scheduleList={scheduleList}
/>
</S.SchedulePageContent>
</S.Container>
);
Expand Down
7 changes: 7 additions & 0 deletions src/types/schedule.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export type Schedule = {
scheduleId: number;
month: number;
day: number;
dayOfWeek: string;
title: string;
};

0 comments on commit 6bafd89

Please sign in to comment.