-
+
+
+ setValue("clockInTime", val, {
+ shouldValidate: true,
+ shouldDirty: true,
+ })
+ }
+ error={!!errors.clockInTime}
+ />
~
-
+
+ setValue("clockOutTime", val, {
+ shouldValidate: true,
+ shouldDirty: true,
+ })
+ }
+ error={!!errors.clockOutTime}
+ />
{(errors.clockInTime || errors.clockOutTime) && (
diff --git a/src/pages/schedule/boss/AttendanceEditForm.tsx b/src/pages/schedule/boss/AttendanceEditForm.tsx
index 32a9a02..d8a4ec8 100644
--- a/src/pages/schedule/boss/AttendanceEditForm.tsx
+++ b/src/pages/schedule/boss/AttendanceEditForm.tsx
@@ -12,24 +12,17 @@ import {
updateAttendance,
deleteAttendance,
} from "../../../api/boss/schedule.ts";
-import { useEffect } from "react";
import { DailyAttendanceRecord } from "../../../types/calendar.ts";
import { parseDateStringToKST } from "../../../libs/date.ts";
import { toast } from "react-toastify";
import { showConfirm } from "../../../libs/showConfirm.ts";
+import TimeInput from "../../../components/common/TimeInput.tsx";
-const schema = z.discriminatedUnion("clockInStatus", [
- z.object({
- clockInStatus: z.literal("ABSENT"),
- clockInTime: z.literal(null),
- clockOutTime: z.literal(null),
- }),
- z.object({
- clockInStatus: z.enum(["NORMAL", "LATE"]),
- clockInTime: z.string().min(1, "출근 시간을 입력해주세요"),
- clockOutTime: z.string().min(1, "퇴근 시간을 입력해주세요"),
- }),
-]);
+const schema = z.object({
+ clockInStatus: z.enum(["NORMAL", "LATE", "ABSENT"]),
+ clockInTime: z.string().min(1, "출근 시간을 입력해주세요"),
+ clockOutTime: z.string().min(1, "퇴근 시간을 입력해주세요"),
+});
type FormData = z.infer;
@@ -43,7 +36,6 @@ const AttendanceEditForm = ({
const storeId = selectedStore?.storeId;
const {
- register,
handleSubmit,
setValue,
watch,
@@ -51,36 +43,30 @@ const AttendanceEditForm = ({
} = useForm({
resolver: zodResolver(schema),
mode: "onChange",
- defaultValues:
- attendance?.clockInStatus === "ABSENT"
- ? {
- clockInStatus: "ABSENT",
- clockInTime: null,
- clockOutTime: null,
- }
- : {
- clockInStatus: attendance?.clockInStatus ?? "NORMAL",
- clockInTime: attendance?.clockInTime?.slice(11, 16) ?? "",
- clockOutTime: attendance?.clockOutTime?.slice(11, 16) ?? "",
- },
+ defaultValues: {
+ clockInStatus: attendance?.clockInStatus ?? "NORMAL",
+ clockInTime:
+ attendance?.clockInStatus === "ABSENT"
+ ? "00:00"
+ : (attendance?.clockInTime?.slice(11, 16) ?? ""),
+ clockOutTime:
+ attendance?.clockInStatus === "ABSENT"
+ ? "00:00"
+ : (attendance?.clockOutTime?.slice(11, 16) ?? ""),
+ },
});
const clockInStatus = watch("clockInStatus");
- useEffect(() => {
- if (clockInStatus === "ABSENT") {
- setValue("clockInTime", null);
- setValue("clockOutTime", null);
- }
- }, [clockInStatus, setValue]);
-
const onSubmit = async (data: FormData) => {
if (!storeId) return;
try {
await updateAttendance(storeId, schedule.scheduleId, {
clockInStatus: data.clockInStatus,
- clockInTime: data.clockInTime ?? null,
- clockOutTime: data.clockOutTime ?? null,
+ clockInTime:
+ data.clockInStatus === "ABSENT" ? "00:00" : data.clockInTime,
+ clockOutTime:
+ data.clockInStatus === "ABSENT" ? "00:00" : data.clockOutTime,
});
const dateKey = formatFullDate(parseDateStringToKST(schedule.workDate));
await useScheduleStore.getState().syncScheduleAndDot(storeId, dateKey);
@@ -142,24 +128,22 @@ const AttendanceEditForm = ({
-
-
+ {}}
disabled
/>
~
- {}}
disabled
/>
@@ -186,23 +170,34 @@ const AttendanceEditForm = ({
{clockInStatus !== "ABSENT" && (
-
-
+
+ setValue("clockInTime", val, {
+ shouldValidate: true,
+ shouldDirty: true,
+ })
+ }
+ error={!!errors.clockInTime}
/>
~
-
+ setValue("clockOutTime", val, {
+ shouldValidate: true,
+ shouldDirty: true,
+ })
+ }
+ error={!!errors.clockOutTime}
/>
+ {(errors.clockInTime || errors.clockOutTime) && (
+
+ {errors.clockInTime?.message || errors.clockOutTime?.message}
+
+ )}
)}
diff --git a/src/pages/schedule/boss/Schedule.tsx b/src/pages/schedule/boss/Schedule.tsx
index d505c8f..f5db1c3 100644
--- a/src/pages/schedule/boss/Schedule.tsx
+++ b/src/pages/schedule/boss/Schedule.tsx
@@ -2,7 +2,7 @@ import { useEffect, useState } from "react";
import Calendar from "react-calendar";
import "react-calendar/dist/Calendar.css";
import ArrowIcon from "../../../components/icons/ArrowIcon.tsx";
-import { formatFullDate } from "../../../utils/date.ts";
+import { formatFullDate, formatKRDate } from "../../../utils/date.ts";
import useBottomSheetStore from "../../../stores/useBottomSheetStore.ts";
import useStoreStore from "../../../stores/storeStore.ts";
import SingleScheduleAddForm from "./SingleScheduleAddForm.tsx";
@@ -25,6 +25,7 @@ const Schedule = () => {
const [selectedDate, setSelectedDate] = useState(getKSTDate());
const [calendarViewDate, setCalendarViewDate] = useState(getKSTDate());
const dateKey = formatFullDate(selectedDate);
+ const displayDate = formatKRDate(selectedDate);
const { scheduleMap, dotMap, fetchDailySchedule, fetchDotRange } =
useScheduleStore();
@@ -201,29 +202,25 @@ const Schedule = () => {
}}
/>
-
-
-
{dateKey}
+
+
+
{displayDate}
{isPast ? (
-
-
+
-
+
{
diff --git a/src/pages/schedule/boss/SingleScheduleAddForm.tsx b/src/pages/schedule/boss/SingleScheduleAddForm.tsx
index eef75f5..c419d21 100644
--- a/src/pages/schedule/boss/SingleScheduleAddForm.tsx
+++ b/src/pages/schedule/boss/SingleScheduleAddForm.tsx
@@ -1,4 +1,4 @@
-import { useForm } from "react-hook-form";
+import { Controller, useForm } from "react-hook-form";
import { z } from "zod";
import { zodResolver } from "@hookform/resolvers/zod";
import { useEffect, useState } from "react";
@@ -11,10 +11,10 @@ import useStoreStore from "../../../stores/storeStore.ts";
import useScheduleStore from "../../../stores/useScheduleStore.ts";
import { formatFullDate } from "../../../utils/date.ts";
import { getDefaultScheduleTimes } from "../../../utils/time.ts";
-import TextField from "../../../components/common/TextField.tsx";
import Button from "../../../components/common/Button.tsx";
import { formatDateToKSTString, getKSTDate } from "../../../libs/date.ts";
import { toast } from "react-toastify";
+import TimeInput from "../../../components/common/TimeInput.tsx";
interface SingleScheduleAddFormProps {
defaultDate?: Date;
@@ -50,7 +50,7 @@ const SingleScheduleAddForm = ({ defaultDate }: SingleScheduleAddFormProps) => {
const { startTime, endTime } = getDefaultScheduleTimes("half");
const {
- register,
+ control,
handleSubmit,
setValue,
watch,
@@ -116,32 +116,36 @@ const SingleScheduleAddForm = ({ defaultDate }: SingleScheduleAddFormProps) => {
*
-
- {staffList.map((staff) => (
- -
- setValue("staffId", staff.staffId, { shouldValidate: true })
- }
- >
-
+
+ {staffList.map((staff) => (
+
- {staff.name}
-
- ))}
-
+ onClick={() =>
+ setValue("staffId", staff.staffId, { shouldValidate: true })
+ }
+ >
+

+
{staff.name}
+
+ ))}
+
+
+
{errors.staffId && (
{errors.staffId.message}
)}
@@ -166,21 +170,29 @@ const SingleScheduleAddForm = ({ defaultDate }: SingleScheduleAddFormProps) => {
-
-
+ (
+
+ )}
/>
~
- (
+
+ )}
/>
{(errors.startTime || errors.endTime) && (
diff --git a/src/pages/schedule/boss/SingleScheduleEditForm.tsx b/src/pages/schedule/boss/SingleScheduleEditForm.tsx
index c26bced..80b6b3c 100644
--- a/src/pages/schedule/boss/SingleScheduleEditForm.tsx
+++ b/src/pages/schedule/boss/SingleScheduleEditForm.tsx
@@ -2,7 +2,6 @@ import { useForm } from "react-hook-form";
import { z } from "zod";
import { zodResolver } from "@hookform/resolvers/zod";
import SingleDatePicker from "../../../components/common/SingleDatePicker.tsx";
-import TextField from "../../../components/common/TextField.tsx";
import Button from "../../../components/common/Button.tsx";
import useBottomSheetStore from "../../../stores/useBottomSheetStore.ts";
import useStoreStore from "../../../stores/storeStore.ts";
@@ -19,6 +18,7 @@ import {
} from "../../../libs/date.ts";
import { toast } from "react-toastify";
import { showConfirm } from "../../../libs/showConfirm.ts";
+import TimeInput from "../../../components/common/TimeInput.tsx";
interface SingleScheduleEditFormProps {
schedule: DailyAttendanceRecord["schedule"];
@@ -43,7 +43,6 @@ const SingleScheduleEditForm = ({
const storeId = selectedStore?.storeId;
const {
- register,
handleSubmit,
setValue,
watch,
@@ -58,6 +57,9 @@ const SingleScheduleEditForm = ({
},
});
+ const startTime = watch("startTime");
+ const endTime = watch("endTime");
+
const onSubmit = async (data: FormData) => {
if (!storeId) return;
@@ -149,21 +151,27 @@ const SingleScheduleEditForm = ({
-
-
+
+ setValue("startTime", val, {
+ shouldValidate: true,
+ shouldDirty: true,
+ })
+ }
+ error={!!errors.startTime}
/>
~
-
+ setValue("endTime", val, {
+ shouldValidate: true,
+ shouldDirty: true,
+ })
+ }
+ error={!!errors.endTime}
/>
{(errors.startTime || errors.endTime) && (
diff --git a/src/pages/schedule/boss/StaffScheduleList.tsx b/src/pages/schedule/boss/StaffScheduleList.tsx
index 1656849..dba8f68 100644
--- a/src/pages/schedule/boss/StaffScheduleList.tsx
+++ b/src/pages/schedule/boss/StaffScheduleList.tsx
@@ -98,19 +98,23 @@ const StaffScheduleList = ({ records, onClick, emptyMessage }: Props) => {
{/* 퇴근 상태 */}
- {attendance?.clockInStatus !== "ABSENT" && (
-
+ {attendance?.clockInStatus &&
+ attendance?.clockOutStatus !== "NORMAL" && (
- {clockOutLabel} {extraLabel}
-
- )}
+ >
+
+ {clockOutLabel} {extraLabel}
+
+ )}
diff --git a/src/pages/schedule/staff/ScheduleStaff.tsx b/src/pages/schedule/staff/ScheduleStaff.tsx
index 8e4de80..f4298b5 100644
--- a/src/pages/schedule/staff/ScheduleStaff.tsx
+++ b/src/pages/schedule/staff/ScheduleStaff.tsx
@@ -2,7 +2,7 @@ import { useEffect, useState } from "react";
import Calendar from "react-calendar";
import "react-calendar/dist/Calendar.css";
import ArrowIcon from "../../../components/icons/ArrowIcon.tsx";
-import { formatFullDate } from "../../../utils/date.ts";
+import { formatFullDate, formatKRDate } from "../../../utils/date.ts";
import useBottomSheetStore from "../../../stores/useBottomSheetStore.ts";
import "../../../styles/schedulePageCalendar.css";
import { getClockInStyle } from "../../../utils/attendance.ts";
@@ -26,6 +26,7 @@ const ScheduleStaff = () => {
const [selectedDate, setSelectedDate] = useState
(getKSTDate());
const [calendarViewDate, setCalendarViewDate] = useState(getKSTDate());
const dateKey = formatFullDate(selectedDate);
+ const displayDate = formatKRDate(selectedDate);
const { scheduleMap, dotMap, fetchDailySchedule, fetchDotRange } =
useStaffScheduleStore();
@@ -181,12 +182,15 @@ const ScheduleStaff = () => {
}}
/>
-
-
+
+
+
-
+
{
diff --git a/src/pages/schedule/staff/StaffAttendanceEditForm.tsx b/src/pages/schedule/staff/StaffAttendanceEditForm.tsx
index d5e4f3d..200a959 100644
--- a/src/pages/schedule/staff/StaffAttendanceEditForm.tsx
+++ b/src/pages/schedule/staff/StaffAttendanceEditForm.tsx
@@ -12,6 +12,7 @@ import { parseDateStringToKST } from "../../../libs/date.ts";
import { toast } from "react-toastify";
import { requestAttendanceEdit } from "../../../api/staff/attendance.ts";
import useStaffStoreStore from "../../../stores/useStaffStoreStore.ts";
+import TimeInput from "../../../components/common/TimeInput.tsx";
const schema = z
.object({
@@ -136,24 +137,22 @@ const StaffAttendanceEditForm = ({
- {}}
disabled
/>
~
- {}}
disabled
/>
@@ -182,24 +181,27 @@ const StaffAttendanceEditForm = ({
-
+ setValue("clockInTime", val, {
+ shouldValidate: true,
+ shouldDirty: true,
+ })
+ }
+ error={!!errors.clockInTime}
disabled={!isEditMode}
/>
-
~
-
+ setValue("clockOutTime", val, {
+ shouldValidate: true,
+ shouldDirty: true,
+ })
+ }
+ error={!!errors.clockOutTime}
disabled={!isEditMode}
/>
diff --git a/src/pages/schedule/staff/StaffScheduleEditForm.tsx b/src/pages/schedule/staff/StaffScheduleEditForm.tsx
index 94dbd64..3d807ff 100644
--- a/src/pages/schedule/staff/StaffScheduleEditForm.tsx
+++ b/src/pages/schedule/staff/StaffScheduleEditForm.tsx
@@ -16,6 +16,7 @@ import {
import { DailyAttendanceRecord } from "../../../types/calendar.ts";
import { SubstituteCandidate } from "../../../types/schedule.ts";
import useStaffStoreStore from "../../../stores/useStaffStoreStore.ts";
+import TimeInput from "../../../components/common/TimeInput.tsx";
const schema = z.object({
targetStaffId: z.number({ required_error: "대타 근무자를 선택해주세요" }),
@@ -101,31 +102,35 @@ const StaffScheduleEditForm = ({ schedule, staff }: Props) => {
근무자
{isEditMode ? (
-
- {candidates.map(({ staff: s }) => (
- -
- setValue("targetStaffId", s.staffId, { shouldValidate: true })
- }
- className={`flex flex-col items-center cursor-pointer my-1 ${
- selectedStaffId === s.staffId
- ? "font-bold text-yellow-500"
- : ""
- }`}
- >
-
+
+ {candidates.map(({ staff: s }) => (
+
-
+ setValue("targetStaffId", s.staffId, {
+ shouldValidate: true,
+ })
+ }
+ className={`flex flex-col items-center cursor-pointer my-1 ${
selectedStaffId === s.staffId
- ? "ring-yellow-400"
- : "ring-transparent"
+ ? "font-bold text-yellow-500"
+ : ""
}`}
- />
- {s.name}
-
- ))}
+ >
+

+
{s.name}
+
+ ))}
+
) : (
@@ -150,18 +155,16 @@ const StaffScheduleEditForm = ({ schedule, staff }: Props) => {
-
-
+ {}}
disabled
/>
~
- {}}
disabled
/>
diff --git a/src/pages/signup/SignupStep2.tsx b/src/pages/signup/SignupStep2.tsx
index eb709a2..01ddea3 100644
--- a/src/pages/signup/SignupStep2.tsx
+++ b/src/pages/signup/SignupStep2.tsx
@@ -108,13 +108,8 @@ const SignupStep2 = ({ role, onBack }: SignupStep2Props) => {
try {
const { accessToken, refreshToken } = await signup(data.role);
useAuthStore.getState().setTokens(accessToken, refreshToken);
- if (role === "BOSS") {
- navigate("/boss");
- } else if (role === "STAFF") {
- navigate("/staff");
- } else {
- navigate("/");
- }
+ toast.success("가입이 완료되었습니다!");
+ navigate("/login", { replace: true });
} catch (error: any) {
if (error.response?.status === 409) {
toast.error("이미 가입된 사용자입니다.");
diff --git a/src/pages/store/boss/AddressSearchPopup.tsx b/src/pages/store/boss/AddressSearchPopup.tsx
index d8f5c51..5ec69cb 100644
--- a/src/pages/store/boss/AddressSearchPopup.tsx
+++ b/src/pages/store/boss/AddressSearchPopup.tsx
@@ -3,8 +3,12 @@ import { useLayout } from "../../../hooks/useLayout.ts";
const AddressSearchPopup = () => {
useLayout({
- headerVisible: false,
+ title: "주소 검색",
+ theme: "plain",
+ headerVisible: true,
bottomNavVisible: false,
+ onBack: () => window.close(),
+ rightIcon: null,
});
const handleComplete = (data: any) => {
@@ -20,7 +24,6 @@ const AddressSearchPopup = () => {
return (
-
주소 검색
);
diff --git a/src/types/payroll.ts b/src/types/payroll.ts
index 1676a0a..009d915 100644
--- a/src/types/payroll.ts
+++ b/src/types/payroll.ts
@@ -19,7 +19,7 @@ export interface PayrollSettingsRequest {
commutingAllowance: number;
}
-export interface PayrollSettingsResponse {
+export interface BossPayrollSettingsResponse {
account: {
bankName: string;
accountNumber: string;
@@ -188,7 +188,7 @@ export interface PayslipDownloadResponse {
expiresAt: string; // ISO datetime 문자열
}
-export interface PayrollSettingsResponse {
+export interface StaffPayrollSettingsResponse {
autoTransferEnabled: boolean;
transferDate: number | null;
deductionUnit: DeductionUnit;
diff --git a/src/utils/date.ts b/src/utils/date.ts
index 52a6977..77ec7ff 100644
--- a/src/utils/date.ts
+++ b/src/utils/date.ts
@@ -14,6 +14,12 @@ import { getKSTDate, getKSTISOString } from "../libs/date";
export const formatFullDate = (date: Date): string =>
dayjs(date).tz("Asia/Seoul").format("YYYY-MM-DD");
+/**
+ * Date를 'YYYY년 MM월 DD일' 형식의 문자열로 변환하는 함수 (KST 기준)
+ */
+export const formatKRDate = (date: Date): string =>
+ dayjs(date).tz("Asia/Seoul").format("MM월 DD일");
+
/**
* Date를 '2024년 1월 1일 월요일 오전 9시 30분' 형식의 문자열로 변환 (로컬 기준이지만 한국어 표기 목적)
*/
@@ -69,7 +75,7 @@ export const getStartAndEndDates = (ym: string): [string, string] => {
*/
export const getRemainingDays = (transferDate: number): number => {
const today = getKSTDate();
- return transferDate - today.getDate();
+ return today.getDate() - transferDate;
};
/**
From 0d29249151849511890d88f5331aec1c4e0dc3d3 Mon Sep 17 00:00:00 2001
From: Yoon seokchan
Date: Tue, 3 Jun 2025 20:05:40 +0900
Subject: [PATCH 05/23] =?UTF-8?q?hotfix:=20=EB=B9=8C=EB=93=9C=20=EC=98=A4?=
=?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- import 시 파일 확장자 오류 수정
---
src/pages/payroll/staff/StaffPayslipPage.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/payroll/staff/StaffPayslipPage.tsx b/src/pages/payroll/staff/StaffPayslipPage.tsx
index be35656..29b1869 100644
--- a/src/pages/payroll/staff/StaffPayslipPage.tsx
+++ b/src/pages/payroll/staff/StaffPayslipPage.tsx
@@ -11,7 +11,7 @@ import {
} from "../../../api/staff/payroll.ts";
import DownloadIcon from "../../../components/icons/DownloadIcon.tsx";
import ErrorIcon from "../../../components/icons/ErrorIcon.tsx";
-import { useTooltip } from "../../../hooks/useTooltip.ts";
+import { useTooltip } from "../../../hooks/useTooltip.tsx";
const StaffPayslipPage = () => {
const { selectedStore } = useStaffStoreStore();
From e0e7a8d6f828f505d11df90722a3c80eae04d13e Mon Sep 17 00:00:00 2001
From: Yoon seokchan <72729277+PaleBlueNote@users.noreply.github.com>
Date: Wed, 4 Jun 2025 01:04:37 +0900
Subject: [PATCH 06/23] =?UTF-8?q?[#57]=204=EC=B0=A8=20QA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix: 알바생 출근 KST 기반 현재시간 fetching 오류 해결 (#57)
* design: 푸터 너비 안 차는 UI 오류 수정 (#57)
* fix: store 관련 dto 수정 및 함수 Early Return 처리 개선 (#57)
* refactor: 사용자 이용 경험 향상을 위한 toast와 자동선택기능 추가 (#57)
---
dev-dist/sw.js | 2 +-
src/components/layouts/Footer.tsx | 2 +-
.../attendance/staff/StaffAttendancePage.tsx | 5 +-
src/pages/contract/boss/ContractCard.tsx | 6 +-
.../document/boss/BossDocumentEtcCard.tsx | 4 +-
.../document/boss/BossDocumentEtcPage.tsx | 4 +-
.../document/boss/RequiredDocumentSheet.tsx | 2 +-
src/pages/home/boss/HomeBoss.tsx | 5 +-
src/pages/home/staff/StaffAttendanceCard.tsx | 7 +-
.../home/staff/StaffAttendanceContainer.tsx | 30 ++++---
.../staff/StaffDocumentRequestContainer.tsx | 2 +-
src/pages/landing/Landing.tsx | 2 +-
.../mypage/boss/AttendanceSettingPage.tsx | 2 +-
.../mypage/staff/StaffDocumentContainer.tsx | 4 +-
.../boss/autoTransfer/BossAutoTransferTab.tsx | 13 ++-
.../boss/history/BossPayrollHistoryTab.tsx | 86 +++++++++++--------
.../staff/StaffAttendanceRecordContainer.tsx | 12 ++-
src/pages/schedule/boss/AttendanceAddForm.tsx | 6 +-
.../schedule/boss/AttendanceEditForm.tsx | 4 +-
.../schedule/boss/SingleScheduleAddForm.tsx | 6 +-
.../staff/StaffAttendanceEditForm.tsx | 4 +-
.../schedule/staff/StaffScheduleEditForm.tsx | 6 +-
src/pages/store/boss/BossStoreCard.tsx | 4 +-
src/pages/store/staff/StaffStoreCard.tsx | 6 +-
src/types/store.ts | 6 +-
25 files changed, 131 insertions(+), 99 deletions(-)
diff --git a/dev-dist/sw.js b/dev-dist/sw.js
index 1089c87..db54271 100644
--- a/dev-dist/sw.js
+++ b/dev-dist/sw.js
@@ -82,7 +82,7 @@ define(['./workbox-86c9b217'], (function (workbox) { 'use strict';
"revision": "3ca0b8505b4bec776b69afdba2768812"
}, {
"url": "index.html",
- "revision": "0.0lcpnv60u9o"
+ "revision": "0.3s9r775v73o"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
diff --git a/src/components/layouts/Footer.tsx b/src/components/layouts/Footer.tsx
index cf394d7..421d807 100644
--- a/src/components/layouts/Footer.tsx
+++ b/src/components/layouts/Footer.tsx
@@ -9,7 +9,7 @@ const Footer: FC = () => {
};
return (
-